MySQL是一个关系型数据库,查询的结果是一个虚拟的表格。
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。 用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。
- MySQL服务通过命令行的启动和停止
net start 服务名
net stop 服务名
- MySQL服务服务器的登录和退出
登录:mysql 【-h 主机名 -p 端口号】 -u 用户名 -p 密码
退出:exit
或ctrl + c
语法:
输入查询的数据库名:
USE 数据库名;
查询数据库下的表名:
SHOW TABLES;
查看表的结构:
DESC 表名;
获取表的字段名:
SHOW COLUMNS FROM 表名;
简单查询:
SELECT 查询列表 FROM 表名;
查询列表可以是字段、常量,表达式、函数,可以是多个
查询结果是一个虚拟的表
1.查询单个字段:
SELECT 字段名 FROM 表名;
2.查询多个字段
SELECT 字段名,字段名 FROM 表名;
3.查询所有字段
SELECT * FROM 表名;
4.常量查询
SELECT 常量值;
5.查询函数
SELECT 函数名(实参列表);
6.查询表达式
SELECT 100/1234;
7.起别名
(1)使用AS
(2)空格
起别名:①便于理解,②如果要查询的字段有重名的情况,使用别名可以区分
8.去重
SELECT DISTINCT 字段名 FROM 表名;
- "+"的作用
SELECT 数值+数值;
直接运算
MySQL中的'+'只起到运算符的作用
1.SELECT 字段+数值
先视图将字符串转换成数值,如果转换成功,则继续运算,否则转换成0,再做运算。
不可以转成数值:
可以转成数值:
2.SELECT NULL + 值
结果都为NULL (只要其中一方为NULL,结果为NULL)
条件查询:
SELECT 查询列表 FROM 表名 WHERE 筛选条件;
- 运算符:
1.简单条件运算符
">" , < , = , <> , != , >= , <= , <=>
其中'<>'符号为不等于,在SQL中"="和"<>"不能用来判断NULL值。
"<=>"符号为安全等于,可以用来判断NULL值,也可以用来判断普通的数值,可读性比较低。
2.逻辑运算符
&& , and , || , or , ! , not
模糊查询:
-
LIKE
:一般搭配通配符使用,可以判断字符型或数值型。
通配符:"%"表示任意多个字符,包含0个字符,"_"任意单个字符。
BETWEEN AND
使用
BETWEEN AND
可以提高语句的简洁度,包含临界值,两个临界值不要调换顺序,AND
两侧值的类型必须一致。
IN
用来判断某字段的值是否属于in列表中的某一项。
使用IN可以提高语句的简洁度,IN列表的值的类型必须兼容或一致,IN不支持通配符。
-
IS NULL / IS NOT NULL
:用于判断NULL值
IS NULL
与"<=>"比较:
IS NULL
不能判断普通类型的数值,可以判断NULL值,可读性比较高,建议使用。
"<=>" 可以判断普通类型的数值,可以判断NULL值,可读性比较低。
排序查询:
SELECT 查询列表 FROM 表 【WHERE 筛选条件】 ORDER BY 排序列表 【ASC | DESC】;
执行顺序:
FROM
表 ——> 【WHERE
筛选条件】 ——>SELECT
查询列表 ——>ORDER BY
排序列表 【ASC
|DESC
】
[图片上传中...(image.png-330582-1584855657934-0)]
ASC代表升序,DESC代表降序,默认升序
ORDER BY 子句中可以包含单个字段、多个字段、表达式、函数、别名
ORDER BY 子句一般是放在查询语句的最后面,LIMIT
子句除外