mysql 父子维_数据库之 MySQL --- 数据处理 之 子查询 (二)

一 、数据库语言定义及命令行查看数据库操作

-- SQL 语言可以分为三类

-- DML: 数据操纵语言。(对标的 - 增 删 改 查)

-- DDL:数据定义语言。(表的创建,删除,修改)

-- DCL: 数据控制语言。(commit,rollback)

命令行查看数据库 (也可以在客户端图形化界面操作)

-- 查看数据库

SHOW DATABASES;

-- 选择数据库

USE test; -- test:数据库的名字

-- 查看表

SHOW TABLES;

二、查看表结构

3df3fb63f91bb334a12c244d744683f4.pngwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

三 、 查询

查询

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】比较运算

bc537bbcd4560ada716e22c3a0d8f15c.pngwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

【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 ‘$’] 即可。

ad53e590ca0893de42d0369a22641c19.pngwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

【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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值