這周把藕顺耄客網(wǎng)關(guān)于數(shù)據(jù)庫的一個題庫的題目做完了诵竭,小結(jié)一下:
1.創(chuàng)建表,視圖,索引
create table亩进,view,index(unique index)
插入新的數(shù)據(jù): ALTER TABLE ... ADD ... 語句可以向已存在的表插入新字段
外鍵約束 foreign key ..reference ...
修改表名 alter table_name rename to new_name
2.最基礎(chǔ)的查詢語句
select...from table where(條件語句case 變量 when 變量值 then ...when 變量值 then...else ...end)
限制輸出的行數(shù):方法一: 利用 LIMIT 和 OFFSET 關(guān)鍵字缩歪。LIMIT 后的數(shù)字代表返回幾條記錄归薛,OFFSET 后的數(shù)字代表從第幾條記錄開始返回(第一條記錄序號為0),也可理解為跳過多少條記錄后開始返回匪蝙。
方法二:只利用 LIMIT 關(guān)鍵字主籍。在 LIMIT X,Y 中,Y代表返回幾條記錄逛球,X代表從第幾條記錄開始返回(第一條記錄序號為0)千元,切勿記反。
3. 關(guān)于排序
命令order by (desc是降序颤绕,asc是升序)幸海;
4.分組
命令group by
5.連接
inner join:返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄
left join:返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄
right join:只返回兩個表中聯(lián)結(jié)字段相等的行
舉例如下
表A記錄如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B記錄如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
1.left join
sql語句如下:
select * from A
left join B
on A.aID = B.bID
結(jié)果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影響的行數(shù)為 5 行)
結(jié)果說明:
left join是以A表的記錄為基礎(chǔ)的,A可以看成左表,B可以看成右表,left join是以左表為準的.
換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示符合搜索條件的記錄(例子中為: A.aID = B.bID).
B表記錄不足的地方均為NULL.
2.right join
sql語句如下:
select * from A
right join B
on A.aID = B.bID
結(jié)果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影響的行數(shù)為 5 行)
結(jié)果說明:
仔細觀察一下,就會發(fā)現(xiàn),和left join的結(jié)果剛好相反,這次是以右表(B)為基礎(chǔ)的,A表不足的地方用NULL填充.
3.inner join
sql語句如下:
select * from A
innerjoin B
on A.aID = B.bID
結(jié)果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
結(jié)果說明:
很明顯,這里只顯示出了 A.aID = B.bID的記錄.這說明inner join并不以誰為基礎(chǔ),它只顯示符合條件的記錄.
參考鏈接: https://www.cnblogs.com/assasion/p/7768931.html
6.觸發(fā)器 trigger
構(gòu)造觸發(fā)器時注意以下幾點:
1祟身、用 CREATE TRIGGER 語句構(gòu)造觸發(fā)器,用 BEFORE或AFTER 來指定在執(zhí)行后面的SQL語句之前或之后來觸發(fā)TRIGGER
2物独、觸發(fā)器執(zhí)行的內(nèi)容寫出 BEGIN與END 之間
3袜硫、可以使用 NEW與OLD 關(guān)鍵字訪問觸發(fā)后或觸發(fā)前的employees_test表單記錄
7.統(tǒng)計函數(shù)count()
count()函數(shù)不可用于WHERE語句中,應使用HAVING語句來限定條件