目录标题
入门概念
- DB:数据库 database
- DBMS:数据库关系系统 Database Management System
- SQL:结构化查询语言 Structure Query Language
- 数据库
- 数据表
- 字段
mysql安装成功后,比较常见的命令:
mysql [-h 主机ip -p 端口] -u 用户名 -p回车输入密码
登录shwo databases;
登录成功后显示所有数据库use 数据库名;
打开数据库show tables;
显示所有数据表- 。。。
DQL语言
基础查询
格式为:
SELECT 查询列表 FROM 数据表名;
查询列表:
- 常量
- 字段
- 函数
- 表达式
基础查询语句案例如下:
-- 查询常量
select 12;
-- 查询字段
select username,age from tab_user;
-- 查询函数
select now();
-- 查询表达式
select 100*2;
条件查询
就是在基础查询的基础上加上了where 条件 ,格式为:
select 查询字段 from 数据表名 where 查询条件;
查询条件可以分为:
- 条件表达式查询
< > >= <= = <>或者!=
- 逻辑表达式查询
and or not
- 模糊查询
like , between and , in , is null , is not null
条件表达式和逻辑表达式太简单,就不写案例了。接下来的案例主要是对模糊查询的一些说明
首先是like
-- 通配符 %表示任意多个字符 _表示任意一个字段
-- 比如我要查询用户表 姓名第二个字为尚的信息
select * from tab_user where username like '_尚%';
-- 如果查询条件出现了特殊符号 需要转义 有如下两种方式, 比如我要查询第二个字符为下划线的信息
select 查询列表 from 数据表名 where 字段名 like '_\_%'; -- 使用 \ 符号进行转义
select 查询列表 from 数据表名 where 字段名 like '_$_%' escape $; -- 也可以不用 \ 符号 自定义一个转义符号
接下来是between and
-- between and 的区间值是[n,m] 是包含临界值的
-- 我要查询工资在100到200之间的员工信息
SELECT * FROM empl WHERE sal>=100 AND sal<=200;
-- 上面是使用条件表达式查询 还可以使用模糊查询
SELECT * FROM empl WHERE sal BETWEEN 100 AND 200;
接下来是in
-- 需要注意的就是 in() 括号中需要是同一类型的值,或者是支持自动类型转换,比如 '123'---> 123
-- 查询部门编号为 10 20 的员工信息
SELECT * FROM empl WHERE 部门编号字段名 IN(10,20);
最后两个就是对null的判断了。
-- 我们不能这样写, = 不支持判断null
SELECT * FROM 表名 WHERE 字段名 = NULL;
-- 正确写法为:
SELECT * FROM 表名 WHERE 字段名 IS NULL;
补充一点——安全等于
写法为<=>
。 它可以用于判断null值,也可以用来判断普通类型的值
-- 比如我上面某个字段为null的信息
SELECT * FROM 表名 WHERE 字段名 IS NULL;
-- 使用安全等于也可以进行null的判断
SELECT * FROM 表名 WHERE 字段名 <=>NULL;
-- 查询普通类型的值 比如查询工资为12000的员工信息
SELECT * FROM empl WHERE sal <=> 12000;
排序查询
基本语法如下:
select 查询字段 from 数据表名 where 筛选条件