sql是操作數據庫中數據的語句,在不同的數據庫中會略有不同,如mysql,postgreSQL,oracle,sqlserver,sqlite等等,但是sql的基礎select、insert、update、delete語句都是相同的,本文只是介紹如何在mysql中,利用navicat可視化工具學習sql語句的select、insert、update、delete基礎,這四種語句是sql基礎中的基礎了,但是萬變不離其中,其他復雜的語句也都是這四種語句的組合。
本文沒有介紹數據庫的函數、優化數據庫、優化sql語句等深層次只是,有sql基礎的自行繞過。。。。
select——查詢
insert——插入
update——更新
delete——刪除
from——從哪個表
where——查詢條件
join——表連接
- order by——排序
一、確保mysql安裝成功,下圖是mysql安裝成功,並啟動服務的標志:
<!--[if !supportLists]-->1、<!--[endif]-->計算機右鍵——管理——服務和應用程序——服務,查看mysql服務是否開啟
二、打開navicat軟件,將navicat與本地mysql服務連接:
點擊connection——選擇mysql,出現下圖界面:
按照自己安裝mysql中的信息,填好。出現下面的信息,證明連接成功:
三、創建數據庫
首先打開一個執行sql語句的窗口:
執行創建數據庫的sql語句
創建數據庫的sql執行后,要刷新,在下圖位置,右鍵,點擊refresh
然后就能看見新建的sqltest數據庫了
四、創建表的語句
首先打開sqltest數據庫執行sql的窗口,注意,剛才打開執行sql的窗口是執行整個數據庫的sql的窗口,現在我們要在sqltest數據庫中執行sql語句,那么就要打開sqltest的sql窗口。
在上圖紅箭處Querries右鍵新建一個query,就打開了執行sql的窗口,
然后執行創建表的sql語句:
(主鍵外鍵的知識沒有說明,,,)
利用軟件添加一條數據:
五:insert語句:
打開執行sql語句的窗口,寫入sql語句:
這條sql語句的意思是,向test表中,添加一條數據,id為2,name為test2,age為21,
刷新test表,就能查看到test表中多了一條剛剛insert進去的數據。
六、select語句
利用select語句查看表中的數據:
select * 意思是查詢所有屬性,
下面是帶查詢條件的sql語句:
這條sql語句的意思是,查詢在test表中,id為1的數據,將這條數據的name屬性和age屬性查詢出來。
七、update語句
八、delete語句
九、表連接查詢,
現在我們建立兩張表(我口述,讀者按上文的方式,自己建表吧。。。),學生表student,和 教師teacher
表,表結構和其中的數據如圖:
student表:id是主鍵(一條數據的標識,每條數據的主鍵肯定不同)
name:學生姓名
teacher_id:該學生所對應的教師的id(是個外鍵)
teacher表:
id:主鍵
name:姓名
現在我想知道”學生zhangsan的老師的名字是什么“。
在student表中,能夠看出,學生zhangsan所對應的教師的id,也就是teacher_id是1,在teacher表中,id為1的教師的那么是teacher1,那么就能得出學生zhangsan的老師的名字是teacher1,
那么用sql怎么實現呢,這就是表的連接:
上面圖中的sql語句就是一個最簡單的表連接,能夠看出就是最基本的select、from、where組合,
上圖中的sql首先去看括號中的語句,也就是 select teacher_id from student where name='zhangsan'
這條語句能夠查詢出名字為zhangsan的學生的teacher_id ,我們能在表中找出值為1,那么剩余的也就是括號外的sql語句就變成了 select name from teacher where id=1; 這樣,教師的名字就得到了
十、其他重要的sql語句,
select count(*) from test 查詢test表中共有多少條數據
select count(*) from test where age=21 查詢test表中age為21的數據一共有多少條,
select count(*) from test where age>21 查詢test表中age大於21的數據一共有多少條,數據庫中的int類型支持大於小於等比較。
select count(*) from test where age>21 and age<30 查詢test表中age大於21並且小於30的數據一共有多少條
select * from test order by id desc 按id降序排序
——還有一種查詢是查詢從第幾條到第幾條,也就是分頁查詢, 不同的數據庫sql語句不同,mysql數據庫用的是limit語句,oracle用rownum語句。。。
還有很多查詢方式,但都是select、from、where。。。。這些基礎的組合。。。。。。
在數據庫中自己會有一些運算的函數,比如求和的add函數等,還能自定義函數,函數就比較難了,,不再這基礎篇寫了。