1 数据库介绍
1.1 常见的数据库软件
常见的数据库软件:Mysql/Oracle/SqlServer等
这些都是关系型数据库
还有一些非关系型数据库,比如redis
1.2 存储结构
先安装数据库软件;
建数据库;
在数据库中建表;
通过客户端软件可以操作数据库,比如cmd,navicat等
1.3 SQL语言
SQL,结构化查询语言
可以大致分为四类:
DDL:数据定义语言
DML:数据操纵语言
DCL:数据控制语言
TCL:事务控制语言
2 数据库管理
2.1连接数据库
打开cmd,输入mysql -uroot -p
或者 mysql -uroot -proot
2.2 查看已有的数据库
2.3 数据库的创建
创建时,如果不指定,使用默认的编码方式
Utf8 /utf8mb4
2.3 数据库修改
2.4 删除数据库
2.5 查看数据库信息
2.6 切换数据库
3 表管理
3.1 查看所有表

3.2 新建表

Char和varchar的区别?
varchar 长度可变,比如定义为varchar(100),如果数据实际长度为10,name改字段只会分配10个字节
char 长度固定,不管数据实际占用几个字节,都会分配指定长度的字节
3.3 展示表结构

3.4 删除表

3.5修改表
1.增加
2.修改类型
3.改变名字
4.改表名
5.删除列
4 数据表的增删改操作 重点
CRUD
Create 添加 read 查询 update 更新 delete 删除
4.1 insert 插入数据
注意事项:
列数和值数保持一致,列的顺序和值的顺序、类型保持一致
如果插入所有列,列名可以不写,但是值的个数、顺序、类型要保持一致
如果插入多条记录 insert into 表(列。。。。) values(….),(….),…(….)


4.2 删除数据
删除全部数据
根据条件删除特定数据
清空数据还有另一种写法 truncate
delete与truncate不同?了解
启用事务情况下,delete支持回滚,truncate不支持
针对自增的数据,delete后不会清除表中记录的自增到的最大值,truncate相当于恢复到表的初始状态
4.3 更新数据



5 数据表查询
5.1查询指定列
5.2 列设置别名
5.3 列名可以参与运算

Gender列也是字符串类型,+1时,不会报错,表面上看也进行了运算,没有什么实际意义,如果要对字符串进行操作,一般需要借助mysql中提供的函数
5.4 去重
关键字 distinct
distinct 后面可以跟多个字段,多个字段都相同才会去重
5.5 条件查询
逻辑判断 and / or

条件判断


针对日期类型也可以使用

判断是否为null

模糊查询:针对字符串 like %匹配多个字符 _匹配一个字符
%XXX% 是否包含
%XXX 是否已XXX结尾
XXX% 是否以XXX开头


5.6聚合函数
count() 针对所有记录统计
count(列名), 针对指定列里非null的数据进行统计
count(1)作用和count() 相同






本例中查询id没有实际意义
一个语句中可以使用多个统计函数
5.7 排序
Order by 默认升序,可以根据多列排序


5.8 分组
Group by一般结合聚合函数使用,select 后出现字段要么来自分组的列名,要么时聚合函数

Having是对分组后的数据进行过滤
Having和where均可实现条件过滤,但having可以使用聚合函数,having跟在group by后,它作用于组
5.9 分页查询
limit
如何计算offset?
Offset = (page - 1) * pageSize

各个关键字的顺序:
6常用函数
Now() 获取当前日期时间
Date_format() 日期格式化
Concat() 字符串拼接
日期的格式化,转换为一个指定的样式
年-月-日 时:分:秒 2022-03-15 16:20:30
n年月日时分秒 20220315162030
