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 删库跑路的更多相关文章

  1. 大数据开发从入门小白到删库跑路(一)- 获取Hadoop

    Hadoop是一个可以通过相对简单编程模型实现跨多台计算机集群分布式处理大型数据集的框架.它不是依赖于高额成本的硬件可靠性来提供高可用性,Hadoop的设计能从单个服务器扩展到数千台机器,每个机器提供 ...

  2. Oracle删库跑路

    --10g R2 startup mount exclusive restrict; alter system enable restricted session; drop database; -- ...

  3. 数据误操作,删库跑路?教你使用ApexSQLLog工具从 SQLServer日志恢复数据!

    前几天同事不小心误操作,将SQLServer库的一张表的一个状态字段给刷成了一个统一状态,由于是update执行所以原来的相关状态无法确定.发生这种事情的时候我的小伙伴背后 一凉,估计心里里面想这怕是 ...

  4. Mysql binlog备份数据及恢复数据,学会这个,我在也不怕删库跑路啦~

    导读 我一直都主张,技多不压身(没有学不会的技术,只有不学习的人),多学一项技能,未来就少求人一次.网上经常听到xxx删库跑路,万一真的遇到了,相信通过今天的学习,也能将数据再恢复回来~~~ 当然啦, ...

  5. 教你如何6秒钟往MySQL插入100万条数据!然后删库跑路!

    教你如何6秒钟往MySQL插入100万条数据!然后删库跑路! 由于我用的mysql 8版本,所以增加了Timezone,然后就可以了 前提是要自己建好库和表. 数据库test, 表user, 三个字段 ...

  6. P5270 无论怎样神树大人都会删库跑路

    题目地址:P5270 无论怎样神树大人都会删库跑路 第一眼看上去是模拟,似乎是 \(O(n)\) 的 水题 信心满满的写完: #include <bits/stdc++.h> using ...

  7. The Data Way Vol.3|做到最后只能删库跑路?DBA 能做的还有很多

    关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...

  8. 【巨杉数据库SequoiaDB】巨杉Tech | “删库跑路”又出现,如何防范数据安全风险?

    最近,又双叕有企业被“删库”了.来自微盟官网的消息,微盟的业务系统数据库(包括主备)遭遇其公司运维人员的删除,系统将停止运营超48小时. 频发的类似事件也让大家对于数据安全的关注不断提高.数据是一个科 ...

  9. 【值得收藏】C语言入门基础知识大全!从C语言程序结构到删库跑路!

    01 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,使小伙伴对c语言有个初步认识. 例1:计算两个整数之和的c程序: #include main() { ...

随机推荐

  1. MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite

    MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android.IPhone等智能手机的离线地图存储. ...

  2. springboot项目pom添加依赖

    在dependency 后面  ALt+/  可以打开编辑窗口.

  3. Linux 文件系统 的 学习

    学习参考大神:http://www.cnblogs.com/yyyyy5101/articles/1901842.html  总结:简介 http://linux.chinaunix.net/tech ...

  4. Oracle 体系结构四 逻辑和物理存储结构之间的关系

    Oracle数据库从物理存储中完全抽象出逻辑存储.逻辑数据存储采用“段”的形式.段的类型有很多种:典型的段是“表”.这些段以物理形式存储在数据文件中.通过表空间将逻辑存储从物理存储中抽象出来.逻辑结构 ...

  5. 【js】深拷贝和浅拷贝区别,以及实现深拷贝的方式

    一.区别:简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝. 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这 ...

  6. LeetCode 中级 - 重新排序得到的幂(105)

    从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零. 如果我们可以通过上述方式得到 2 的幂,返回 true:否则,返回 false. 示例 1: 输入:1 输出 ...

  7. 关于c++随机种子srand( time(NULL) )的设置问题

    设置随机种子srand( time(NULL) ) ,在程序中只需要设置一次就好,而且不能被调用多次,直接看列子. a:每次都重新设置随机种子 #include<iostream> #in ...

  8. ubuntu8.04下mysql更改用户和密码

    1.最近由于系统原因重装了mysql,但是发现安装过程中没有提示设置密码. 2.修改用户名和密码步骤 A.service mysql stop    #停止mysql服务 B.sudo vim /et ...

  9. Linux 实时查看进程网络的使用情况

    一行代码实现 linux 指定进程网络的使用情况 pid=4203;count=0;while true;do info2=`sed -n '4,100p' /proc/$pid/net/dev |a ...

  10. 使用Letsencrypt做SSL certificate

    为什么要使用Letsencrypt做SSL certificate? 最简单直接的原因是免费.但是免费存在是否靠谱的问题,尤其是对安全要求比较高的网站,需要考虑使用letsencrypt的安全性是否符 ...