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. java _this关键字的用法

    1:This关键字可以用于从一个构造方法调用另一个构造方法,可以用于避免重复代码 2:this的第二个用于this.xxx表示成员变量,成员变量的作用范围是  类   避免产生歧义 package c ...

  2. EF Core中Key属性相同的实体只能被跟踪(track)一次

    在EF Core的DbContext中,我们可以通过DbContext或DbSet的Attach方法,来让DbContext上下文来跟踪(track)一个实体对象,假设现在我们有User实体对象,其U ...

  3. react 之 ref

    react提供一个refs的安全口,做到‘接触’或调用 从render()返回的组件实例的方法.DOM节点. 用法:1. ref Callback属性 ref 属性可以是一个回调函数,此函数会在这个组 ...

  4. iOS-WebView(WKWebView)进度条

    一直以来,就有想通过技术博客来记录总结下自己工作中碰到的问题的想法,这个想法拖了好久今天才开始着手写自己的第一篇技术博客,由于刚开始写,不免会出现不对的地方,希望各位看到的大牛多多指教.好了,不多说了 ...

  5. nodejs的安装配置

    Node.js安装及环境配置   一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Node.js:v6.9.2LTS(64位) 二.安装Node.js步骤 1.下载对应你系统的N ...

  6. PHP封装CURL

    CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS ...

  7. Laravel 生成二维码

    (本实例laravel 版本 >=5.6, PHP版本 >=7.0) 1.首先,添加 QrCode 包添加到你的 composer.json 文件的 require 里: "re ...

  8. day2-exercise

    # Author: 刘佳赐-Isabelle October 22,2018 """ 1.有变量name = "aleX leNb" 完成如下操作: ...

  9. 一、Django初级

    创建项目,也就是网站 1.cmd,输入:pip3 install Django==2.1.2 2.>>>import django 3.cmd进入需要建项目的文件夹,django-a ...

  10. python逻辑判断 () not and or

    python逻辑判断 () not and or 优先级关系:()>not>and>or 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. or ...