sql是操作數(shù)據(jù)庫中數(shù)據(jù)的語句,在不同的數(shù)據(jù)庫中會(huì)略有不同,如mysql,postgreSQL,oracle,sqlserver,sqlite等等,但是sql的基礎(chǔ)select、insert、update、delete語句都是相同的,本文只是介紹如何在mysql中,利用navicat可視化工具學(xué)習(xí)sql語句的select、insert、update、delete基礎(chǔ),這四種語句是sql基礎(chǔ)中的基礎(chǔ)了,但是萬變不離其中,其他復(fù)雜的語句也都是這四種語句的組合。
本文沒有介紹數(shù)據(jù)庫的函數(shù)、優(yōu)化數(shù)據(jù)庫、優(yōu)化sql語句等深層次知識(shí),有sql基礎(chǔ)的自行繞過。。。。
select——查詢
insert——插入
update——更新
delete——?jiǎng)h除
from——從哪個(gè)表
where——查詢條件
join——表連接
order by——排序
一、確保mysql安裝成功,下圖是mysql安裝成功,并啟動(dòng)服務(wù)的標(biāo)志:
1、計(jì)算機(jī)右鍵——管理——服務(wù)和應(yīng)用程序——服務(wù),查看mysql服務(wù)是否開啟;

二、打開navicat軟件,將navicat與本地mysql服務(wù)連接:

點(diǎn)擊connection——選擇mysql,出現(xiàn)下圖界面:

按照自己安裝mysql中的信息,填好。出現(xiàn)下面的信息,證明連接成功:

三、創(chuàng)建數(shù)據(jù)庫
首先打開一個(gè)執(zhí)行sql語句的窗口:

執(zhí)行創(chuàng)建數(shù)據(jù)庫的sql語句

創(chuàng)建數(shù)據(jù)庫的sql執(zhí)行后,要刷新,在下圖位置,右鍵,點(diǎn)擊refresh

然后就能看見新建的sqltest數(shù)據(jù)庫了
四、創(chuàng)建表的語句

首先打開sqltest數(shù)據(jù)庫執(zhí)行sql的窗口,注意,剛才打開執(zhí)行sql的窗口是執(zhí)行整個(gè)數(shù)據(jù)庫的sql的窗口,現(xiàn)在我們要在sqltest數(shù)據(jù)庫中執(zhí)行sql語句,那么就要打開sqltest的sql窗口。
在上圖紅箭處Querries右鍵新建一個(gè)query,就打開了執(zhí)行sql的窗口,
然后執(zhí)行創(chuàng)建表的sql語句:
(主鍵外鍵的知識(shí)沒有說明,,,)

利用軟件添加一條數(shù)據(jù):

五:insert語句:
打開執(zhí)行sql語句的窗口,寫入sql語句:

這條sql語句的意思是,向test表中,添加一條數(shù)據(jù),id為2,name為test2,age為21,
刷新test表,就能查看到test表中多了一條剛剛insert進(jìn)去的數(shù)據(jù)。
六、select語句
利用select語句查看表中的數(shù)據(jù):

select * 意思是查詢所有屬性,
下面是帶查詢條件的sql語句:

這條sql語句的意思是,查詢?cè)趖est表中,id為1的數(shù)據(jù),將這條數(shù)據(jù)的name屬性和age屬性查詢出來。
七、update語句

八、delete語句

九、表連接查詢,
現(xiàn)在我們建立兩張表(我口述,讀者按上文的方式,自己建表吧。。。),學(xué)生表student,和 教師teacher
表,表結(jié)構(gòu)和其中的數(shù)據(jù)如圖:
student表:id是主鍵(一條數(shù)據(jù)的標(biāo)識(shí),每條數(shù)據(jù)的主鍵肯定不同)
name:學(xué)生姓名
teacher_id:該學(xué)生所對(duì)應(yīng)的教師的id(是個(gè)外鍵)

teacher表:
id:主鍵
name:姓名

現(xiàn)在我想知道”學(xué)生zhangsan的老師的名字是什么“。
在student表中,能夠看出,學(xué)生zhangsan所對(duì)應(yīng)的教師的id,也就是teacher_id是1,在teacher表中,id為1的教師的那么是teacher1,那么就能得出學(xué)生zhangsan的老師的名字是teacher1,
那么用sql怎么實(shí)現(xiàn)呢,這就是表的連接:

上面圖中的sql語句就是一個(gè)最簡(jiǎn)單的表連接,能夠看出就是最基本的select、from、where組合,
上圖中的sql首先去看括號(hào)中的語句,也就是 select teacher_id from student where name='zhangsan'
這條語句能夠查詢出名字為zhangsan的學(xué)生的teacher_id ,我們能在表中找出值為1,那么剩余的也就是括號(hào)外的sql語句就變成了 select name from teacher where id=1; 這樣,教師的名字就得到了
十、其他重要的sql語句,
select count( * ) from test 查詢test表中共有多少條數(shù)據(jù)
select count( * ) from test where age=21 查詢test表中age為21的數(shù)據(jù)一共有多少條,
select count( * ) from test where age>21 查詢test表中age大于21的數(shù)據(jù)一共有多少條,數(shù)據(jù)庫中的int類型支持大于小于等比較。
select count( * ) from test where age>21 and age<30 查詢test表中age大于21并且小于30的數(shù)據(jù)一共有多少條
select * from test order by id desc 按id降序排序
——還有一種查詢是查詢從第幾條到第幾條,也就是分頁查詢, 不同的數(shù)據(jù)庫sql語句不同,mysql數(shù)據(jù)庫用的是limit語句,oracle用rownum語句。。。
還有很多查詢方式,但都是select、from、where。。。。這些基礎(chǔ)的組合。。。。。。
在數(shù)據(jù)庫中自己會(huì)有一些運(yùn)算的函數(shù),比如求和的add函數(shù)等,還能自定義函數(shù),函數(shù)就比較難了,,不再這基礎(chǔ)篇寫了。
sql語句知識(shí)很多,這里只是總結(jié)了最基礎(chǔ)的一點(diǎn)點(diǎn)東西,其他的知識(shí)也有從這些基礎(chǔ)知識(shí)中演化出來的,多加練習(xí),會(huì)的東西會(huì)越來越多,
不同的數(shù)據(jù)庫的sql是會(huì)有不同,但是一個(gè)數(shù)據(jù)庫的sql會(huì)了,其他數(shù)據(jù)庫的sql也就會(huì)了,所以在剛學(xué)sql時(shí),沒必要特意挑選數(shù)據(jù)庫。