MySQL基础笔记
指令
在cmd管理员模式下
功能 | 指令 |
---|---|
启动mysql服务 | net start mysql |
停止mysql服务 | net stop mysql |
查看数据库版本号 | select version(); |
查看当前使用的数据库 | select database(); |
显示所有数据库 | show databases; |
添加数据库 | create database 数据库名; |
使用某数据库 | use 数据库名; |
查看数据库中所有表 | show tables; |
查看表的结构 | desc 表名;(describe) |
退出 | exit |
mysql不见分号不执行
SQL语句的分类
DQL
数据查询语言 select
DML
数据操作语言
insert/update/delete
DDL
数据定义语言
create/alter/drop
TCL
事物控制语言
事物回滚rollback/事物提交commit
DCL
数据控制语言
授权grant/撤销权限revoke
SQL
所有sql语句以分号结尾
不区分大小写
单表查询
简单查询
select 字段名 from 表名;
字段可以使用数学表达式
查询多个字段
使用逗号隔开
select 字段名1,字段名2 from 表名;
查询所有字段
- 方式1:写出所有字段
- 方式2:使用*
select * from dept;
这种方法效率较低,会先将*转化为字段,可读性差,在实际开发不建议。
查询列别名
关键字as,只是修改了查询结果,而未更改表。
select 字段名1,字段名2 as 别名 from 表名;
起别名时别名有空格/中文:别名使用单引号/双引号(oracle中只能用单引号)
select sno,sname ‘student name’ from students;
条件查询
select … from … where 条件;
条件 | 含义 |
---|---|
= | 等于 |
<>或!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
between…and… | 介于2值之间(闭区间) |
is (not) null | 空 |
and | 并且 |
or | 或者 |
(not) in | 包含 |
not | 取非 |
like | 模糊查询,支持%和下划线 |
%匹配任意个字符 | |
一个下划线匹配一个字符 |
and优先级比or高
例题:查询sal>2500且部门编号为10或20的员工
查询结果为‘工资大于2500且部门编号为10’或‘部门编号为20’的员工
查询结果为‘工资大于2500且部门为10或20的员工’
in是具体值而非区间
like
当表中数据本身就有下划线,需要使用转义字符‘\’
排序
order by
多字段排序
薪资升序,薪资一样按照名字升序排
补充
不健壮,列顺序容易改变,不建议在开发中使用。
函数
单行处理/数据处理函数
一个输入对应一个输出(表中的记录一行一行处理)
函数名 | 功能 |
---|---|
lower | 转换小写 |
upper | 转换大写 |
substr(str,begin,length) | 取子串 |
length | 长度 |
trim | 去除空格 |
str_to_date | 字符串转换成日期 |
date_format | 格式化日期 |
round | 四舍五入 |
rand | 生成随机数 |
ifnull | 将null转换成具体值 |
concat | 字符串拼接 |
case…when…then…when…then…else…end |
lower
substr
起始下标从1开始
concat
拼接
例:首字母大写
trim
去除前后空白
str_to_date
将字符串varchar转换为date类型
语法格式:
str_to_date(‘字符串日期’,‘日期格式’)
mysql的日期格式
符号 | 含义 |
---|---|
%Y | 年 |
%m | 月 |
%d | 日 |
%h | 时 |
%i | 分 |
%s | 秒 |
date_format
将date类型转换成一定格式的varchar字符串类型
round
四舍五入
保留两位小数
rand
生成0~1的随机数
ifnull
空处理函数
在数据库中,只要有NULL参与的数学运算,结果就是NULL
ifnull(数据,value):若数据为null,取value
例:计算年薪
case
例:将查询结果的manager工资上调10%,salesman的工资上调50%
多行处理/分组函数
多个输入对应一个输出(对整列处理)
分组函数必须先分组再使用,若未分组,整张表默认为一组。
函数 | 功能 |
---|---|
COUNT | 计数 |
SUM | 求和 |
AVG | 平均值 |
MAX | 最大值 |
MIN | 最小值 |
注意事项
- 分组函数自动忽略null