前言:本次主要学习了一些数据库的基本用法以及一些基础语法,比较注意的是在使用图形化软件时,它没有区分大小写,这就导致看起来比较乱,所以为统一标准,一般会只用大写,或者只用小写;
一:基础查询;
1:格式:SELECT 查询列表 FROM 表名;(在图形化软件中结尾;可有可无,但是如果终端调用数据库的话,必须以;结尾这样才可以识别)
2:当需要查询多个字段时可以使用“,”将他们分开,当需要查询一张表格所有字段时,可以使用“*”代替不需要全部打进;
3:也可以查询一些基础常数(SELECT 100,'张三')或者一些计算;
4:起别名:可以对字段的名称进行一个起别名的操作
-- 方式一:使用AS关键字
SELECT 查询字段 AS 别名 FROM 表名;
-- 方式二:直接空格隔开
SELECT 查询字段 别名 FROM 表名;
5:去重,可以用于查询一个字段时过滤重复信息
-- 使用 DISTINCT 关键字
SELECT DISTINCT 要去重的字段,其他字段... FROM 表名;
6:加号“+”的用法,在数据库中+并不能将两个要查询的东西连接起来,只能单纯用作运算符,起到相加的作用,且在数据库中单引号(‘’)和双引号("")是一个用途都是用作修饰字符串
-
如果+号两边都是数值型,正常作加法运算。
-
如果两边有字符型,尝试将字符型数值转化成数值型,如果转换成功,则继续做加法运算,如果转换失败则转为0。比如:'11'会转为11,'1a'会转为1,'11a1'会转为11,'abc'会转为0,'abc11'会转为0。
-
null和任意类型数据作运算,结果都为null。
7:想要连接字符串需要用到一个新的语句
SELECT CONCAT(str1,str2,...)(str1表示一个字符串,str2表示第二个字符串,且没有数量限制)
8:IFNULL语句
IFNULL()函数,如果值为null,用什么替代。
SELECT IFNULL(字段名,替代值) FROM 表名;
二:条件查询(用于判断和筛选符合条件的信息)
SELECT 查询列表 --顺序3
FROM 表名 --顺序1
WHERE 筛选条件; --顺序2
1:一般的判断条件就是一些条件符号<,>,=,!=(<>)
2:还有一些逻辑运算符,||(OR),&&(AND),!(NOT)
3:模糊查询,一般配合通配符使用
-
like关键字通常与通配符一起使用。
通配符:%代表任意多个字符,包含0个;_代表任意单个字符。
案例一:查询姓名中包含【微】字的员工信息。
SELECT * FROM emplyees WHERE emplyee_name LIKE '%微%';
案例二:查询姓名中第二个字是【可】字的员工信息。
SELECT * FROM emplyees WHERE emplyee_name LIKE '_可%';
-
bwtween ... and
查询在某段范围值内的数据,包含临界值。
-
in
判断某字段的值是否属于in列表中的某一项。
案例:查询在部门2或者部门3的员工信息。
-
is null
查询值为空的数据,条件表达式不能用于判断null。
案例:查询没有部门的员工信息。
-- 错误×写法 SELECT * FROM emplyees WHERE department_id = null; -- 正确✔写法 SELECT * FROM emplyees WHERE department_id is null;
-
is not null
查询值不为空的数据。
案例:查询有部门的员工信息。
-- 错误×写法 SELECT * FROM emplyees WHERE department_id <> null; -- 正确✔写法 SELECT * FROM emplyees WHERE department_id is not null;
三:排序查询
SELECT 查询列表
FROM 表
[WHERE 筛选列表]
ORDER BY 排序列表 [ASC升序|DESC降序] -- ASC|DESC不写默认是ASC
使用多个字段排序
案例:查询员工信息,先按部门ID降序,再按工资升序。
SELECT * FROM emplyees ORDER BY department_id DESC,salary ASC;