目的:任務做完發現sql基礎不好,反省之後,重新學習一下:
參考:
查詢:多表查詢
連線查詢:連線查詢是將兩個或兩個以上的表按照某個條件連線起來,從中選取需要的資料;
1、內連線查詢:
內連線查詢是一種最常用的連線查詢。內連線查詢可以查詢兩個或者兩個以上的表;
2、外連線查詢
外連線可以查出某一張表的所有資訊;
select 屬性名列表 from 表名 1 left|right join 表名 2 on 表名 1.屬性名 1=表名 2.屬性名 2;
模糊查詢 like:
模糊查詢 like:
select 字段 1,字段 2,字段 3...from 表名 where 字段 [not] like 『字串』;
「%」代表任意字元;
「_」 代表單個字元;
空值查詢 not null:
select 字段 1,字段 2,字段 3...from 表名 where 字段 is [not] null;
select 字段 1,字段 2,字段 3...from 表名 where 字段 [not] like 『字串』;
select * from test_01 t where t.user_name like '%李%'
排序 order by
select 字段 1,字段 2...from 表名 order by 屬性名 [asc|desc] //asc公升序(預設) desc降序
去重複查詢 distinct :
select distinct 欄位名 from 表名;
子查詢
1 、帶 in 關鍵字的子查詢
乙個查詢語句的條件可能落在另乙個 select 語句的查詢結果中。
2 、帶比較運算子的子查詢
子查詢可以使用比較運算子。
3 、帶 (not)exists 關鍵字的子查詢
假如子查詢查詢到記錄,則進行外層查詢,否則,不執行外層查詢;not exists表示內層沒有內容時才查詢外層
如:select * from t_book where exists(select * from t_booktype);//表示t_booktype中返回的有內容時才執行外層t_book的查詢
4 、帶 any 關鍵字的子查詢
any 關鍵字表示滿足其中任一條件;如:select * from t_book where price>= any (select price from t_pricelevel);//表示篩選**大於任意t_pricelevel表中選出的**的結果,即比最小的大的**就滿足條件
5 、帶 all 關鍵字的子查詢
all 關鍵字表示滿足所有條件;如:select * from t_book where price>= all (select price from t_pricelevel);//表示篩選**大於所有t_pricelevel表中選出的**的結果,即比最大的**大的才滿足條件
插入資料
格式:insert into 表名 values(值 1,值 2,值 3,...,值 n);
格式:insert into 表名(屬性 1,屬性 2,...,屬性 n) values(值 1,值 2,值 3,...,值 n);
insert into 表名 [(屬性列表)] values(取值列表 1),(取值列表 2) ..., (取值列表 n);
更新資料
update 表名 set 屬性名 1=取值 1,屬性名 2=取值 2, ..., 屬性名 n=取值 n where 條件表示式;
對SQL授權的認識
一 授權與收回 授權語句格式 grant 許可權列表 on 物件名 to 使用者 角色列表 with grant option 其中,許可權列表可以是 all priviliges,select,delete,insert 屬性列 updatee 屬性列 references 屬性列 收回授權語句格...
SQL語句 簡述對SQL注入的認識
官方的說法為 所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。即把惡意的 sql 語句插入到輸入引數中,然後通過在後台 sql 伺服器上解析 執行進行的攻擊,它目前黑客對資料庫進行攻擊的最常用手段之一。通俗點說,一般...
Mysql對SQL注釋的擴充套件
之前一直不明白mysql注釋中的嘆號是什麼東西,直到看了下邊的manual文件中的內容。mysql伺服器包含一些其他sql dbms中不具備的擴充套件。注意,如果使用了它們,將無法把 移植到其他sql伺服器。在某些情況下,你可以編寫包含mysql擴充套件的 但仍保持其可移植性,方法是用 注釋掉這些擴...