SQL 从入门到 DBA 删库跑路
作者:互联网
SQL 从入门到 DBA 删库跑路
一.基础
人员信息表:
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语法为目的,请勿非法使用,后果自负! |
1. 基本功
[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'
2. 进阶功
[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 人员信息表 )
二.多表查询
人员学历表:
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语法为目的,请勿非法使用,后果自负! |
1. 基本功
[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
2. 嵌套功
[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
三.高级成就
暂时未开放
标签:DBA,TRUE,信息,删库,人员,已婚,SQL,WHERE,SELECT 来源: https://www.cnblogs.com/BenLam/p/10524156.html