数据库之 MySQL --- 数据处理 之 子查询 (二)
个人博客网:https://wushaopei.github.io/ (你想要这里多有)
一 、数据库语言定义及命令行查看数据库操作
-- SQL 语言可以分为三类
-- DML: 数据操纵语言。(对标的 - 增 删 改 查)
-- DDL:数据定义语言。(表的创建,删除,修改)
-- DCL: 数据控制语言。(commit,rollback)
命令行查看数据库 (也可以在客户端图形化界面操作)
-- 查看数据库
SHOW DATABASES;-- 选择数据库
USE test; -- test:数据库的名字-- 查看表
SHOW TABLES;
二、查看表结构

三 、 查询
- 查询
SELECT first_name -- select 表的列名(可以有多个,多个之间用","分开)
FROM employees; -- from 表名
- 查询所有人的薪水
SELECT first_name,salary
FROM employees
- 不区分大小写。(''中的内容是需要区分大小写的)
SELECT first_name,SALARY
FROM employees7t
- 查询表中所有的列
SELECT * -- 代表所有的列
FROM employees;
- 列的别名
- 第一种方式 列名 + 空格 + 别名
- 注意如果别名由多个单词组成,那么应该使用""引起来。
- ""是sql的规定,但是在mysql中''也可以。orcal中只能使用""
SELECT first_name "first name", salary ss
FROM employees
- 第二种方式 列名 as 别名
SELECT first_name AS fn
FROM employees
- 查询表结构
DESC employees;
注意:
【1 】语法:
SQL 语言大小写不敏感。
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写。
使用缩进提高语句的可读性。
【2】别名
- 列的别名:
重命名一个列。
便于计算。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
【3】关于字符串
日期和字符只能在单引号中出现。
每当返回一行时,字符串被输出一次。
四、运算
【1】比较运算

【2】其他运算
五、子查询
过滤和排序数据
【1】过滤
-- where + 过滤条件
-- 需求:查询90 好部门的所有员工
SELECT *
FROM employees
WHERE department_id=90 -- 注意:不是 ==
-- 需求:查询薪水大于5000的所有员工
SELECT first_name,salary
FROM employees
-- 注意: where 只能放在from 的后面
- 使用WHERE 子句,将不满足条件的行过滤掉。
WHERE salary>5000
-- 需求:查询薪水不等于5000的员工
SELECT salary
FROM employees
WHERE salary <> 5000
SELECT salary
FROM employees
WHERE salary!=5000
【2】between and (使用 BETWEEN 运算来显示在一个区间内的值)
-- 需求: 查询薪水在7000-8000的所有员工
SELECT *
FROM employees
WHERE salary BETWEEN 7000 AND 8000;
【3】 and (相当于java中的 与(&&) )or (相当于java中的或(||))
SELECT *
FROM employees
-- and 相当于java中的 与(&&)
WHERE salary <= 8000 AND salary>=7000
【4】 in (使用 IN运算显示列表中的值。)
-- 需求: 查询部门为70 或者 80 或者 90的员工
SELECT *
FROM employees
WHERE department_id = 70 OR department_id=80 OR department_id=90
SELECT *
FROM employees
WHERE department_id IN(70,80,90)
【5】like 用于模糊查询
使用 LIKE 运算选择类似的值
选择条件可以包含字符或数字:
% 代表零个或多个字符(任意个字符)。
_ 代表一个字符。
-- 需求: 查找员工姓名中包含a 字母的员工
SELECT first_name
FROM employees
WHERE first_name LIKE '%a%';
SELECT first_name
FROM employees
WHERE first_name LIKE 'a%';
-- 需求: 查找姓名中第二个字母为a的员工
SELECT first_name
FROM employees
WHERE first_name LIKE '_a%'
【6】ESCAPE 转义字符
回避特殊符号的:使用转义符。例如:将[%]转为[$%]、[_]转为[$_],然后再加上[ESCAPE ‘$’] 即可。
【7】NULL 使用 IS (NOT) NULL 判断空值。
-- 需求:查找奖金率为Null 的员工
SELECT commission_pct ,first_name
FROM employees
WHERE commission_pct IS NULL
-- 需求: 查找奖金率不为null的员工
SELECT commission_pct,first_name
FROM employees
WHERE commission_pct IS NOT NULL
【8】 排序: order by
- 使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。
-- 需求: 按照工资进行排序
SELECT salary
FROM employees
ORDER BY salary ASC -- 升序
SELECT salary
FROM employees
ORDER BY salary DESC -- 降序
-- 二级排序,在manager_id 相同的情况下,salary 进行降序
SELECT manager_id ,salary
FROM employees
ORDER BY manager_id,salary DESC
-- 需求: 将员工部门为90好部门的员工的薪水按照降序排序
SELECT department_id , salary
FROM employees
WHERE department_id = 90
ORDER BY salary DESC
-- 按照别名进行排序
SELECT salary s
FROM employees
ORDER BY s DESC
数据库之 MySQL --- 数据处理 之 子查询 (二)的更多相关文章
- MySQL里面的子查询
一.子查询定义 定义: 子查询允许把一个查询嵌套在另一个查询当中. 子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询. 子查询可以包含普通select可以包括的任何子句,比如:dis ...
- MySQL中IN子查询会导致无法使用索引
今天看到一个博客园的一篇关于MySQL的IN子查询优化的案例,一开始感觉有点半信半疑(如果是换做在SQL Server中,这种情况是绝对不可能的,后面会做一个简单的测试.)随后动手按照他说的做了一个表 ...
- MySQL中in子查询会导致无法使用索引问题(转)
MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time ...
- 数据库之 MySQL --- 数据处理 之 多行子查询(五)
[1]需求: 谁的工资比Abel 高?方式一: 第一步线查出Abel共子 第二部进行过滤 SELECT salary FROM employees WHERE last_name = 'Abel' ...
- 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询
MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...
- 数据库之 MySQL --- 数据处理 之多表查询 (三)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.多表查询 [1]什么是多表查询? 即,从多个表中获取数据. 注意: 在多表查询是,如果列明在两个表中 ...
- mysql 子句、子查询、连接查询
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)
注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...
- 【MySQL】02_子查询与多表查询
子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入. SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者 ...
随机推荐
- SpringCloudStream学习(三)RabbitMQ中的惰性队列
从RabbitMQ 3.6.0之后,有了 Lazy Queues 的概念-一个会尽早的将队列中的内容移动到磁盘的队列,并且只有当消费者需要的时候,才会将它们加载到内存中 惰性队列设计的一个主要 ...
- 201771010113 李婷华 《面向对象程序设计(java)》第九周总结
一.理论知识部分 第六章 接口与内部类 1.内部类(innerclass)是定义在一个类内部的类.外层的类成为外部类(outerclass).内部类主要用于事件处理. 2.使用内部类的原因有以下三个: ...
- 07_CSS入门和高级技巧(5)
超级链接美化 1.伪类 同一个超级链接,根据用户的点击情况,有自己样式: 超级链接根据用户点选情况,有4种状态: a:link 没有访问的超级链接 a:visited 已经访问的超级链接 a:hove ...
- 万盛酒店餐饮管理系统(SpringBoot,SSM,MySQL )
项目源码获取地址: 链接:https://pan.baidu.com/s/1ip0keQruE2crA8vm1n8ZXQ 提取码:kivb 复制这段内容后打开百度网盘手机App,操作更方便哦 [功能包 ...
- Nodejs异步编程
异步函数:异步函数是异步编程语法的终极解决方案,它可以把异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得更清晰. const fn = async () =>{}; async f ...
- OpenCV 3.4.2 Windows系统下的环境搭建(附带opencv_contrib-3.4.2)
前言 当前需要回到Windows平台下进行开发,在win10系统上搭建了编译opencv3.4.2的环境,并添加opencv_contrib-3.4.2的模块,以下是本文所需要的软件以及源码. 系统: ...
- OpenCV Error: Unspecified Error(The Function is not implemented)
Ubuntu 或者 Debian 系统显示窗口的时候遇到了这个问题 error: (-2:Unspecified error) The function is not implemented. Reb ...
- 第九章(二)DAG上的动态规划
DAG上的动态规划: 有向无环图上的动态规划是学习DP的基础,很多问题都可以转化为DAG上的最长路.最短路或路径计数问题. 1.没有明确固定起点重点的DAG模型: 嵌套矩形问题:有n个矩形,每个矩形可 ...
- [hdu3486]rmq+枚举优化
题意:给n个数,求最小的段数,使得每一段的最大值之和大于给定的k.每一段的长度相等,最后若干个丢掉. 思路:从小到大枚举段数,如果能o(1)时间求出每一段的和,那么总复杂度是O(n(1+1/2+1/3 ...
- 整理了最全的Python3数据类型转换方法,可以收藏当手册用
本文基于python3.8版本,总结了各种数据类型直接的转换规则和方法.算是比较全了,可以收藏当手册来查. 概述 数据类型转换,指的是通过某种方法,将一个数据由原来的类型转换为另外一个类型.比如,我们 ...
