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
三.高级成就
| 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 |
1. 时间查询-基本功
[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;
暂时未开放
SQL 从入门到 DBA 删库跑路的更多相关文章
- 大数据开发从入门小白到删库跑路(一)- 获取Hadoop
Hadoop是一个可以通过相对简单编程模型实现跨多台计算机集群分布式处理大型数据集的框架.它不是依赖于高额成本的硬件可靠性来提供高可用性,Hadoop的设计能从单个服务器扩展到数千台机器,每个机器提供 ...
- Oracle删库跑路
--10g R2 startup mount exclusive restrict; alter system enable restricted session; drop database; -- ...
- 数据误操作,删库跑路?教你使用ApexSQLLog工具从 SQLServer日志恢复数据!
前几天同事不小心误操作,将SQLServer库的一张表的一个状态字段给刷成了一个统一状态,由于是update执行所以原来的相关状态无法确定.发生这种事情的时候我的小伙伴背后 一凉,估计心里里面想这怕是 ...
- Mysql binlog备份数据及恢复数据,学会这个,我在也不怕删库跑路啦~
导读 我一直都主张,技多不压身(没有学不会的技术,只有不学习的人),多学一项技能,未来就少求人一次.网上经常听到xxx删库跑路,万一真的遇到了,相信通过今天的学习,也能将数据再恢复回来~~~ 当然啦, ...
- 教你如何6秒钟往MySQL插入100万条数据!然后删库跑路!
教你如何6秒钟往MySQL插入100万条数据!然后删库跑路! 由于我用的mysql 8版本,所以增加了Timezone,然后就可以了 前提是要自己建好库和表. 数据库test, 表user, 三个字段 ...
- P5270 无论怎样神树大人都会删库跑路
题目地址:P5270 无论怎样神树大人都会删库跑路 第一眼看上去是模拟,似乎是 \(O(n)\) 的 水题 信心满满的写完: #include <bits/stdc++.h> using ...
- The Data Way Vol.3|做到最后只能删库跑路?DBA 能做的还有很多
关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...
- 【巨杉数据库SequoiaDB】巨杉Tech | “删库跑路”又出现,如何防范数据安全风险?
最近,又双叕有企业被“删库”了.来自微盟官网的消息,微盟的业务系统数据库(包括主备)遭遇其公司运维人员的删除,系统将停止运营超48小时. 频发的类似事件也让大家对于数据安全的关注不断提高.数据是一个科 ...
- 【值得收藏】C语言入门基础知识大全!从C语言程序结构到删库跑路!
01 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,使小伙伴对c语言有个初步认识. 例1:计算两个整数之和的c程序: #include main() { ...
随机推荐
- MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite
MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android.IPhone等智能手机的离线地图存储. ...
- springboot项目pom添加依赖
在dependency 后面 ALt+/ 可以打开编辑窗口.
- Linux 文件系统 的 学习
学习参考大神:http://www.cnblogs.com/yyyyy5101/articles/1901842.html 总结:简介 http://linux.chinaunix.net/tech ...
- Oracle 体系结构四 逻辑和物理存储结构之间的关系
Oracle数据库从物理存储中完全抽象出逻辑存储.逻辑数据存储采用“段”的形式.段的类型有很多种:典型的段是“表”.这些段以物理形式存储在数据文件中.通过表空间将逻辑存储从物理存储中抽象出来.逻辑结构 ...
- 【js】深拷贝和浅拷贝区别,以及实现深拷贝的方式
一.区别:简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝. 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这 ...
- LeetCode 中级 - 重新排序得到的幂(105)
从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零. 如果我们可以通过上述方式得到 2 的幂,返回 true:否则,返回 false. 示例 1: 输入:1 输出 ...
- 关于c++随机种子srand( time(NULL) )的设置问题
设置随机种子srand( time(NULL) ) ,在程序中只需要设置一次就好,而且不能被调用多次,直接看列子. a:每次都重新设置随机种子 #include<iostream> #in ...
- ubuntu8.04下mysql更改用户和密码
1.最近由于系统原因重装了mysql,但是发现安装过程中没有提示设置密码. 2.修改用户名和密码步骤 A.service mysql stop #停止mysql服务 B.sudo vim /et ...
- Linux 实时查看进程网络的使用情况
一行代码实现 linux 指定进程网络的使用情况 pid=4203;count=0;while true;do info2=`sed -n '4,100p' /proc/$pid/net/dev |a ...
- 使用Letsencrypt做SSL certificate
为什么要使用Letsencrypt做SSL certificate? 最简单直接的原因是免费.但是免费存在是否靠谱的问题,尤其是对安全要求比较高的网站,需要考虑使用letsencrypt的安全性是否符 ...