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. 关于最新版AFNetworking(3.0)上传多张图片的问题

    最新版的AF已经废弃了很多以前的类,所以很多以前的方法都不能用了,当然最主要还是为了适应ipV6所做的更改.楼主最近正在写多张图片上传,碰到了一些问题,解决之后直接封装了一个方法,废话有点多了,上代码 ...

  2. PAT——1007. 素数对猜想

    让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ...

  3. [转]Asp.Net url中文乱码

    一般有3种方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码.  传递 string Name = "中文参数"; Resp ...

  4. The App Life Cycle & The Main Function

    The App Life Cycle Apps are a sophisticated interplay between your custom code and the system framew ...

  5. 时钟晶振32.768KHz为什么是15分频?

    实时时钟晶振为什么选择是32768Hz的晶振,在百度上搜索的话大部分的答案都是说2的15次方是32768,使用这个频率的晶振,人们可以很容易的通过分频电路得到1Hz的计时脉冲.但是话有说回来了,2的整 ...

  6. Before start of result set

    ResultSet:在处理结果集的时候出现了问题. 解决办法:while(rs.next())

  7. iOS 文件下载及断点续传

    ios的下载我们可以使用的方法有:NSData.NSURLConnection.NSURLSession还有第三方框架AFNetworking和ASI 利用NSData方法和NSURLConnecti ...

  8. MySQL数据库修改数据表类型(引擎)的方法

    MySQL数据库使用事务,相关数据表必须为InnoDB引擎 查看数据表状态: SHOW TABLE STATUS FROM wawa WHERE NAME='ww_invite_code_temp'; ...

  9. 农民工自学java到找到工作的前前后后

    我是一名地地道道的农民工,生活在经济落后的农村,有一个哥哥和一个弟弟,父母都是地道的农民,日出而作,日落而息,我从小到大学习一直很好,从小学到高一都,成绩在全级一直名列前茅,这样我也顺利了考上省的重点 ...

  10. 大数据学习之Hadoop环境搭建

    一.Hadoop的优势 1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理. 2)高扩展性:在集群间分配任务数据,可方便的 ...