SQL 從入門到 DBA 刪庫跑路sql
人員信息表:學習
ID | 姓名 | 性別 | 出生 | 婚否 | 學歷 | 工資 | 工會 |
---|---|---|---|---|---|---|---|
35009449 | 孫xx | 男 | 1978-2-17 | 未婚 | 中專 | 3000 | TRUE |
35000149 | 吳x | 女 | 1972-8-11 | 已婚 | 高中 | 6283 | FALSE |
35000269 | 魏xx | 女 | 1974-5-5 | 已婚 | 技校 | 7374 | TRUE |
35000281 | 蘇xx | 男 | 1972-9-15 | 未婚 | 高中 | 7883 | FALSE |
35002528 | 姜xx | 男 | 1958-11-21 | 已婚 | 大學 | 8902 | TRUE |
35002560 | 房xx | 男 | 1972-10-3 | 已婚 | 中專 | 9268 | TRUE |
35002566 | 劉x | 女 | 1975-11-1 | 已婚 | 中專 | 9999 | FALSE |
35002584 | 賈x秋 | 女 | 1960-8-24 | 已婚 | 初中 | 1626 | TRUE |
35002635 | 李x | 女 | 1974-4-20 | 已婚 | 大學 | 2880 | FALSE |
35002680 | 李x慶 | 男 | 1964-12-7 | 已婚 | 技校 | 2880 | FALSE |
35001025 | 王國x | 男 | 1970-7-8 | 已婚 | 初中 | 3716 | TRUE |
35001123 | 劉x忠 | 男 | 1960-12-9 | 已婚 | 高中 | 4552 | TRUE |
35001448 | 樊ss | 女 | 1971-10-7 | 已婚 | 大學 | 5388 | FALSE |
35001787 | 李as | 男 | 1974-6-28 | 已婚 | 技校 | 6224 | TRUE |
35001790 | 王zxc | 女 | 1972-3-29 | 已婚 | 技校 | 7060 | TRUE |
35002049 | 張da | 女 | 1965-4-2 | 已婚 | 高中 | 7896 | FALSE |
35002089 | 趙asd | 男 | 1958-3-3 | 已婚 | 高中 | 8732 | TRUE |
35002223 | 韓zz | 女 | 1969-2-10 | 已婚 | 大學 | 9568 | FALSE |
35002237 | 李! | 男 | 1955-9-20 | 已婚 | 初中 | 1404 | TRUE |
35002258 | 許=z | 女 | 1974-9-6 | 已婚 | 大學 | 2240 | TRUE |
注意:爲了本表格僅用於學習SQL語法爲目的,請勿非法使用,後果自負! |
[root@BenLam-vm_0 ~]# Mysql> SELECT * FROM 人員信息表 SELECT DISTINCT 學歷 FROM 人員信息表 SELECT * FROM 人員信息表 WHERE 工資 > 3000 SELECT * FROM 人員信息表 WHERE 工資 > 3000 and 出生 = '1978-2-17' SELECT * FROM 人員信息表 WHERE 工資 > 3000 and 出生 = '1978-2-17' order by ID desc --降序排序 SELECT * FROM 人員信息表 WHERE 工資 > 3000 and 出生 = '1978-2-17' order by ID asc --升序排序 SELECT * FROM 人員信息表 WHERE 工資 > 3000 and 姓名 LIKE '李%' INSERT INTO 人員信息表 (ID, 姓名, 性別, 出生, 婚否, 學歷, 工資, 工會) VALUES (35002258, '許=z', '女', '1974-9-6', '已婚', '大學', '2240', 'TRUE') UPDATE 人員信息表 SET 工資='10000' WHERE 姓名='許=z' DELETE FROM 人員信息表 WHERE 姓名='許=z'
[root@BenLam-vm_0 ~]# Mysql> SELECT * FROM 人員信息表 WHERE 職稱 IS NULL SELECT * FROM 人員信息表 WHERE 職稱 IS NOT NULL SELECT * FROM 人員信息表 WHERE 婚否<>"已婚" SELECT min(工資) FROM 人員信息表 SELECT max(工資) FROM 人員信息表 SELECT * FROM 人員信息表 where 工資 > ( SELECT AVG(工資) FROM 人員信息表 ) SELECT count(工資) FROM 人員信息表 where 工資 > ( SELECT AVG(工資) FROM 人員信息表 )
人員學歷表:unix
ID | 姓名 | 大學 | 專業 |
---|---|---|---|
35009449 | 孫xx | 油田職工大學 | 採油工程 |
35000149 | 吳x | 石油大學(函授) | 採油工程 |
35000269 | 魏xx | 東北大學(函) | 機電一體化 |
35000281 | 蘇xx | 浙江工學院 | 管理工程 |
35002528 | 姜xx | 山東省委黨校 | 經濟管理 |
35002560 | 房xx | 省交通專科學校 | 汽車運輸管理 |
35002566 | 劉x | 交通部中等專業學 | 汽車運輸 |
35002584 | 賈x秋 | 山東教育學院 | 教育管理 |
35002635 | 李x | 山東廣播電視大學 | 管理工程 |
35002680 | 李x慶 | 山東大學 | 行政管理 |
35001025 | 王國x | 石油大學 | 石油加工 |
35001123 | 劉x忠 | 勝利油田石油學校 | 採油工程 |
35001448 | 樊ss | 山東省委黨校 | 經濟管理 |
35001787 | 李as | 中央黨校 | 歷史 |
35001790 | 王zxc | 中央黨校函院 | 經濟管理 |
35002049 | 張da | 西安石油學院 | 礦機 |
35002089 | 趙asd | 石油大學 | 石油加工 |
35002223 | 韓zz | 勝利石油學校 | 採油工程 |
35002237 | 李! | 石油大學 | 石油儲運 |
35002258 | 許=z | 石油大學 | 石油儲運 |
注意:爲了本表格僅用於學習SQL語法爲目的,請勿非法使用,後果自負! |
[root@BenLam-vm_0 ~]# Mysql> SELECT * FROM 人員信息表, 人員學歷表 WHERE (崗位工資>8999 AND 人員信息表.id=人員學歷表.id) SELECT * FROM 人員信息表,人員學歷表 WHERE 人員信息表.性別='女' AND (人員信息表.id=人員學歷表.id) SELECT * FROM 人員信息表,人員學歷表 where (人員信息表.姓名='孫xx' or 人員學歷表.姓名='吳x') AND (人員信息表.id=人員學歷表.id) # TRUE \ FALSE 查詢 SELECT * FROM 人員信息表 WHERE 工會 = TRUE /* 或者經過「 -1 」表示 */ SELECT * FROM 人員信息表 WHERE 工會 = -1 SELECT * FROM 人員信息表 WHERE 工會 = FALSE /* 或者經過「 0 」表示 */ SELECT * FROM 人員信息表 WHERE 工會 = 0 /* 隨機取 5 條記錄 */ SELECT * FROM tb_user ORDER BY RAND() LIMIT 5
[root@BenLam-vm_0 ~]# Mysql> SELECT * FROM 人員信息表 WHERE ID IN(SELECT ID FROM 人員信息表 WHERE 工資=9999) SELECT * FROM 人員信息表 WHERE ID NOT IN(SELECT ID FROM 人員信息表 WHERE 工資=9999) SELECT * FROM 人員信息表 WHERE id IN(SELECT id FROM 人員信息表 WHERE (工資>=7000 AND NOT(姓名 LIKE'孫%'))) SELECT * FROM 人員信息表 WHERE 工資標準=(SELECT 工資 FROM 人員信息表 WHERE 工資=9999) /* (工資<3000) AND (工資>6000) */ SELECT * FROM 人員信息表 WHERE 工資 BETWEEN 3000 AND 6000 SELECT * FROM 人員信息表 WHERE 工資 NOT BETWEEN 3000 AND 6000
ID | 姓名 | 性別 | 入職 | 婚否 | 學歷 | 工資 | 工會 |
---|---|---|---|---|---|---|---|
35009449 | 孫xx | 男 | 1315011466 | 未婚 | 中專 | 3000 | TRUE |
35000149 | 吳x | 女 | 1325011466 | 已婚 | 高中 | 6283 | FALSE |
35000269 | 魏xx | 女 | 1395011466 | 已婚 | 技校 | 7374 | TRUE |
35000281 | 蘇xx | 男 | 1295011366 | 未婚 | 高中 | 7883 | FALSE |
35002528 | 姜xx | 男 | 1295011363 | 已婚 | 大學 | 8902 | TRUE |
35002560 | 房xx | 男 | 1295011216 | 已婚 | 中專 | 9268 | TRUE |
35002566 | 劉x | 女 | 1295021366 | 已婚 | 中專 | 9999 | FALSE |
35002584 | 賈x秋 | 女 | 1235011366 | 已婚 | 初中 | 1626 | TRUE |
[root@BenLam-vm_0 ~]# Mysql> /* 打印前 30 天,帶時分秒 */ select date_sub(now(),interval 30 day) /* 打印前 30 天之前 */ select date_sub(date(now()),interval 30 day) /* 打印當前時間戳 */ select unix_timestamp(now()) /* 打印前 30 天之前時間戳 */ select select unix_timestamp(date_sub(now(), interval 30 day)) /* 指定一個查詢區間 */ select * from 人員信息表 where 入職 >= unix_timestamp('2018-12-01 00:00:01') and 入職 <= unix_timestamp('2019-01-01 23:59:59') order by ID desc limit 10; /* 指定時間區間,並將時間戳轉換成正常時間 */ select ID, from_unixtime(入職) from 人員信息表 where 入職 >= unix_timestamp('2018-12-01 00:00:01') and 入職 <= unix_timestamp('2019-01-01 23:59:59') order by ID desc limit 5; /* 結果:*/ | ID | 入職 | |---|---| | 35002584 | 2018-12-21 13:20:42 | | 35000149 | 2018-12-12 13:10:42 | /* 查詢接30天入職的人,並按照 ID 降序排序 */ select * from 人員信息表 where date_sub(curdate(),interval 30 day) <= from_unixtime( 入職 ) order by ID desc limit 10;
暫時未開放code