MySQL数据处理之查询
- 数据库概述
-
- 数据库相关概念
- 数据库存储数据的特点
- MySQL的使用
-
- 启动退出
- MySQL常用命令
- MySQL语法规范
- 数据处理之查询
-
- 基础查询
-
- 小练习
- 条件查询
-
- 小练习
- 排序查询
-
- 小练习
- 常见函数
-
- 单行函数
-
- 小练习
- 分组函数
-
- 小练习
- 分组查询
-
- 小练习
- 连接查询
-
- sql92标准
-
- 等值连接
-
- 小结
- 非等值连接
- 自连接
- 练习
视频链接:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷.
数据库概述
数据库相关概念
- DB:数据库(database),存储数据的仓库,保存了一系列有组织的数据。
- DBMS:数据库管理系统(Datebase Management System), 又称为数据库软件或数据库产品,用于创建或管理DB
- SQL:结构化查询语言(Structure Query Language),用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
数据库存储数据的特点
- 将数据放到表中,表再放到库中
- 一个数据库可以有多张表,每个表都有一个名字,表名具有唯一性
- 表由列组成,也称为字段
- 表中的数据是按行存储的
- DML(Data Manipulation Language):数据操纵语言,用于添加、删除、修改、查询数据库记录,并查找数据完整性。
- DDL(Data Definition Language):数据定义语言,用于库和表的创建、修改、删除。
- DCL(Data Control Language):数据控制语言,用于定义用户的访问权限和安全级别。
MySQL的使用
启动退出
MySQL软件的服务器端必须先启动,客户端才可以连接和使用数据库。
启动MySQL:管理员身份运行命令提示符,输入(也可以通过”服务”开关)
停止:
客户端登录:命令行
例如:
注意:
- 与密码之间不能有空格,其他参数之间的空格可有可无
- 密码建议在下一行输入
- 如果是连本机:可以省略;如果端口 没改,也可以省,简写为:
连接成功后,会出现MySQL Server 服务版本的信息,还有第几次链接的id标识,也可通过命令行查看(没有登录MySQL服务端):
或者
或登录后,通过以下方式查看:
命令行以分 (;)结束
退出客户端: 或者
MySQL常用命令
- 显示有哪些数据库
- 进入某个库: sys库名
- 查看库内的表:
现在已经进入到库内,要查看另一个库内的表:,此时还在库
查看当前在哪个库:
- 创建表:
- 查看表的结构: desc+表名
- 查看表内数据:
- 插入数据:
- 修改:
- 删除:
MySQL语法规范
- 不区分大小写,但建议关键字大写,表名、列名小写
- 每条命令最好用分 结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释:
单行注释:
单行注释: 中间有空格
多行注释:
数据处理之查询
基础查询
语法:
特点:
- 查询列表可以是:表中的字段、常量值、表达式、函数,也可以是多个
- 查询的结果是虚拟的表格
先打开库:
- 查询表中的单个字段:
- 查询表中的多个字段:
- 查询表中所有的字段:用此方法可规定输出表的顺序
全选按F12可以格式化(我下的普通版,不能用)
或者
为区别关键字和字段,可使用着重 `
若这个字段名容易跟关键字混淆还可以使用着重 将其括起来
-
查询常量值:
不区分字符和字符串
注意:字符型和日期型的常量值必须用单引 引起来,数值型不需要 -
查询表达式:
-
查询函数:
select 函数名(实参列表); -
起别名:
①便于理解
②如果眼查询的字段有重名的情况,使用的别名可以区分开来
方式一:逗 是英文
方式二:省略as
案例:查询salary, 显示结果为 out put
out为关键字,将重命名用双引 括起来,着重 也可以
-
去重
只能查询一个信息
案例:查询员工表中涉及到的所有的部门编 -
+ 的作用:运算符(加法运算)
两个操作数都为数值型,则做加法运算
只要其中一方为字符型,试图将字符型转换为数值;如果转换成功,则继续做加法运算;若果转换失败,则将字符型转换为0. 返回90
只要其中一方为null,则结果肯定为null
案例 :查询员工名和姓连接成一个字段,并显示为 姓名
拼接:
小练习
- 以下语句可以执行成功:
- 查询表departments的结构,并查询其中的全部数据:
- 显示出表employees中的全部job_id(不能重复):
- 显示出表employees的全部列,各个列之间用逗 连接,列头显示out_put:
部分员工commission_pct为null,它与任何字符拼接后最终结果都为null,在此引入一个函数
ifnull函数:判断某字段或表达式是否为null,如果为null返回指定值,否则返回原本的值
第一个参数是可能显示null的变量,第二个参数为当它为null时要返回的值,则语句可以改成:
isnull函数:判断某字或表达式是否为null,如果是,则返回1;否则返回0
返回布尔值,是null返回1
条件查询
- 语法:
- 分类:
①. 按条件表达式筛选
条件运算符: <, >, =, 不等于<>,!=也支持 ,>=, <=,<=>安全等于
案例1:查询工资>12000的员工信息
案例2:查询部门编 不等于90 的员工名和部门编
②. 按逻辑表达式筛选
作用:用于连接条件表达式
逻辑运算符:
① 与 and(&&) 如果两个条件都为true,结果为true,反之为false,
② 或 or(| |),只要一个条件为true, 结果为true,反之为false,
③ 非 not(!), 如果连接的条件本身为false,结果为true,反之为false
案例1:查询工资在10000和20000之间的员工名、工资以及奖金
案例2:查询部门编 不是在90到110之间,或者工资高于15000的员工信息
③. 模糊查询
like, between and, in, is null, is not null
1)like一般和通配符搭配使用,可以判断字符型或数值型
通配符:
% 任意多个字符
_ 任意单个字符
案例1:查询员工名中包含字符a的信息
案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
案例3:查询出员工名中第二个字符为_的员工名
案例4:查询数值型,部门编 为100-199的(100多的)
2)between and
a. 使用between and 可以提高语句的简洁度
b. 包含临界值
c. between 小数 and 大数
案例1:查询员工编 在100到120之间的员工信息
或者使用between and
3)in
含义:判断某字段的值是否属于in列表中的某一项
特点:
a. 使用in提高语句简洁度
b. in列表中的值类型必须统一或兼容(‘123’可以转换为123)
c. 不支持通配符
案例:查询员工的工种编 是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编
4)is null
=或者<>不能用于判断null值
is null 或 is not null 可以判断null值
案例1:查询没有奖金的员工名和奖金率
安全等于:
可以查询null值;
可以查询数值
案例1:查询没有奖金的员工名和奖金率
案例2:查询工资为12000的员工信息
比较is null 和 <=>:
is null :仅仅可以判断null值,可读性较高,建议使用
<=>: 既可以判断null值,又可以判断普通的数值,可读性较差
小练习
例1:查询员工 为176的员工名和部门 和年薪
例2:查询没有奖金,且工资小于18000的salary, last_name
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!