数据库管理系统 DBMS
数据库/仓库 DB
SQL 结构化查询语言
登录 mysql -uroot(用户名) -p(密码)
退出 exit 、 quit 、 \q
登录前查询版本 mysql --version / mysql -V
登录之后查询版本 select version(); (大部分语句以“;”结尾)
查看 show (名称)
使用 use (名称)
行 数据库记录
列 字段
创建数据库 create database (数据库名称);
SQL分类:
DQL语句 数据查询语言 select
DML语句 数据操作语言 insert() delete() update()
DDL语句 数据库定义语言 create(创建) drop(删除) alter()
TCL语句 事务控制语言 commit() rollback()
简单查询:
查询单个或者多个字段
select (字段名称多个字段查询,用“,”隔开) from (目标表格); (中间有空格)
查询全部字段
select * from (目标目录); (实际效率比较低,语言不明确,可读性不强,不建议使用)
(字段名是可以进行数学计算的,字段可以通过as关键字起别名(可以省略as,但不建议)。)
条件查询:
where关键字 可支持一些运算符
"=" 在mysql中有自动转换类型,不过尽量写明确其他不支持 (既能比较数字,也能比较字符串)
在mysql中单引号,双引号都可以,单引号是标准写法
<>或!=(不等于) 第一种是标准写法 (既能比较数字,也能比较字符串)
between...and... 在什么之间 [闭区间]
and 优先级高于 or
select deptno,ename,sal from emp where (sal > 1800) and (deptno = 20 or deptno = 30);
select ename,comm from emp where comm is null; (null既不是数字,也不是字符串,所以用 is )
like(模糊查询) ‘%’ 通配符; ‘_’ 占位符
in('****','*****') 这两个值or 是这两个其中一个
not in('****','*****') 这两个值and 既不是这个也不是那个
数据排序asc、desc:
order by 字段名称(默认升序(asc)),有where,放在where后面
字段可以有多个,进行优先排序,并且可以指定字段加排序
也可以通过字段的下标排序(要显示出来的字段的下标,不是整个表的下标)。不建议使用
数据处理函数:
单行处理
Lower 转换小写
upper 转换大写
substr 截取字符串(substr(被截取的字符串,起始下标,截取长度))
length 取长度
trim 去空格
*str_to_data 将字符串转化为日期
*date_format 格式化日期
format 设置千分位
round 四舍五入
rand() 生成随机数
*Ifnull 可以将null转换成一个具体的值
case
when '条件' then '执行'
....
end
多行处理函数 (多行处理会自动忽略空值)
sum 求和
avg 取平均值
max 取最大值
min 取最小值
count 取得记录数
distinct 去重
group by 分组查询
having (和where一样,where用在前,having用在后)
一个完整的SQL语句
select (显示)
***
from (来自)
***
where (条件)
*