2023.10.19:文章周末更新,会把排版优化一下~
2023.10.16:更新sql ver1.0
数据库概念
操作者用SQL语言向数据库管理系统(DBMS)发出指令,系统在数据库(DB)里进行操作。
数据库存储特点
- 数据放进表(按行存储),表放进数据库
- 数据库有多个表,每个表只有一个名字
- 表中的每一列(也称字段)类似于java中对象的属性,每一行类似于java中的对象
配置文件
my.ini 文件位置:C:\ProgramData\MySQL\MySQL Server 8.0
SQL启动与停止
方式一:计算机 ——– 管理 ——-服务
方式二:命令行(管理员) net start/stop mysql端口
SQL登陆与退出
方式一:MySQL Command Line Client登陆(仅限于root)
方式二:命令行(管理员) mysql [-h主机名 -P端口号] -u用户名 -p密码
(仅限本地可以省略)
退出:exit或ctrl+c
SQL常见命令
show databases; //查看数据库
use 库名; //打开指定库
show tables //查看表
desc 表名 //查看表结构
查看版本:
select version();
mysql --version
SQL语法规范
- 不区分大小写
- 用分号结尾
- 可以换行
- 单行注释#或– + 空格
- 多行注释/* */
查询
基础查询
SELECT 列表 FROM 表名;
注意:1.查询的可以是字段、变量、表达式或函数;
2.返回的是虚拟表格。
3.SELECT * 会返回所有字段。
4.如果查询的列与SQL关键字冲突时,用反引号(``)包裹。
5.SELECT可以查询常量值(意义何在…)
去重直接在字段前加上DISTINCT
MySQL里的+号没有连接符的作用,只有运算符的作用
- 若一方是字符型,会自动隐式转换为数值型,失败会当做0
- 一方为NULL,最终值也为NULL
若要拼接字段,使用CONCAT(str1, str2, …),如果其中有NULL值最终也会变为NULL,使用ISNULL(字段,赋值) 来判断。
条件查询
SELECT 列表 FROM 表名 WHERE 条件;
- 按条件表达式筛选(> < = !=或<> >= <=)
- 按逻辑表达式筛选(& || ! and or not)
- 模糊查询(like between and in isnull)
ESCAPE ‘ ‘ 指定转义字符
用IN模糊查询时不能用通配符。
条件等于NULL值时 不能用=,用专门的IS NULL。
安全等于(<=>) 可以判断NULL值。
排序查询
SELECT 列表 FROM 表名 WHERE 条件 ORDER BY 排序列表 ASC|DESC;
ORDER BY 一般是放在查询语句的最后。
常用函数
LENGTH() 求长
CONCAT() 连接字段
UPPER() 大写化
LOWER() 小写化
SUBSTR(str1, index1, index2) 返回在str1 index1~index2 位置上的子字符串(索引从1开始)
INSTR(str1, str2) 返回在str2中第一次出现str1的索引,未查到返回0
TRIM(str1, str2) 在str2的头和尾上去除str1,未填str1默认为空格
L(R)PAD(str1, str2,length) 用str1在str2的左(右)边填充直到length长度
REPLACE(str1, str2, str3) 将str1中的str2全部替换为str3
数学函数
ROUND(x, y) //四舍五入,对x保留y位小数
CEIL(x) //向上取整
FLOOR(x) //向下取整
RTUNCATE(x, y) //截断,对y + 1位后的小数进行截断
MOD(x, y) //x对y取余
日期函数
NOW() //返回当前系统日期+时间
CURDATE() //返回当前系统日期
CURTIME() //返回当前时间
YEAR(time)、MONTH(time)... //可以获取指定时间的年、月等...(MONTHNAME可获得英文月份)
STR_TO_DATE() //将日期格式的字符转换成指定格式的日期
例:STR_TO_DATE('1998-3-2', '%Y-%c-%D');
DATE_FORMAT //将日期转换为字符
例:DATE_FORMAT(NOW(), '%y年%m月%d日')
其他函数
VERSION() //版本号
DATABASE() //查看当前库
USER() //查看当前用户
流程控制函数
IF的使用:
IF(exp1, exp2, exp3)
例: IF(10 < 5, '大', ‘小')
CASE的使用:
1.CASE 要判断的字段或表达式
WHEN 常量1 THEN 要显示的值或语句;
WHEN 常量2 THEN 要显示的值或语句;
WHEN 常量3 THEN 要显示的值或语句;
...
ELSE 要显示的值或语句;
END
2.CASE
WHEN 条件1 THEN 要显示的值或语句;
WHEN 条件2 THEN 要显示的值或语句;
WHEN 条件3 THEN 要显示的值或语句;
...
ELSE 要显示的值或语句;
END