数据库|想要年薪20W+?吃透这份清华教授整理的MySQL笔记,面试大厂稳了


数据库|想要年薪20W+?吃透这份清华教授整理的MySQL笔记,面试大厂稳了
文章图片
数据库|想要年薪20W+?吃透这份清华教授整理的MySQL笔记,面试大厂稳了
文章图片
今日分享开始啦 , 请大家多多指教~
这篇文章给大家分享的是MySQL的基本操作和一部分的CRUD内容 , 正文开始~
数据库操作创建数据库1.相关参数
CHARACTER SET:指定数据库采用的字符集 , 如果不指定字符集 , 默认utf8
COLLATE :指定数据库字符集的校对规则

  • utf8_bin:区分大小写
  • utf8_general_ci:不区分大小写
  • 默认使用utf8mb4_general_ci
2.创建数据库sql
CREATE DATABASE db CHARACTER SET utf8 COLLATE utf8_general_ci
查看、删除数据库1.查看所有数据库
SHOW DATABASES
2.查看数据库创建语句
SHOW CREATE DATABASE db
3.数据库删除语句
DROP DATABASE db
备份恢复数据库1.备份数据库
  • 需要在DOS执行
  • mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > d:\\\\文件名.sql
  • 将db数据库备份到D盘下的bak.sql文件
mysqldump -u root -p -B db db01 db02 > d:\\\\bak.sql
2.恢复数据库
  • 需要在MySQL命令行执行
  • source d:\\\\文件名.sql
  • 将D盘下的bak.sql文件恢复到数据库
source d:\\\\bak.sql
3.备份数据库中的指定表
  • mysqldump -u 用户名-p 密码 数据库 表1 表2 表n > d:\\\\文件名.sql
mysqldump -u root -proot db user > d:\\\\bak.sql
数据表操作创建表1.相关参数
  • CHARACTER SET:字符集 , 如果不指定则为所在数据库字符集
  • COLLATE:校对规则 , 如不指定则为所在数据库校对规则
  • ENGINE:存储引擎
2.sql语句
添加表
  • ALTER TABLE修改指定表
  • ADD添加新字段
  • AFTER在哪列之后添加
ALTER TABLE `user` ADD sex int AFTER name
修改表
  • MODIFY修改指定字段
ALTER TABLE `user` MODIFY pwd VARCHAR(255)
  • RENAME TABLE 修改指定表
  • to 新表名
RENAME TABLE stu to student
  • 修改字符集
ALTER TABLE `user` CHARACTER SET utf8
  • 修改存在列名成新列名
ALTER TABLE `user` CHANGE `name` username VARCHAR(50)
删除表
  • DROP删除指定字段
ALTER TABLE `user` DROP sex
  • 删除表
DROP TABLE `user`
数据库常用字段类型数据类型分类
UNSIGNED
UNSIGNED表示无符号 , 没有指定表示默认有符号
DECIMAL[M , D

  • 如果希望小数精度高 , 推荐使用decimal
  • 可以支持更加精确的小数位 , M是小数位数(精度)的总数 , D是小数点(标度)后面的位数
  • 如果D是0 , 则表示没有小数点或分数部分
  • M最大是65 , D最大是30
  • 如果D被省略 , 默认是0 。 如果M被省略 , 默认是10
CHAR(size)
  • 固定长度字符串 最大255字符
  • 不区分字符是汉字还是字母 , 都不能超过size个
  • 如果插入的数据长度没有达到size , 也会分配size长度的字符空间
  • 查询速度 char>varchar
VARCHAR(size)
  • 0~65535 可变长度字符串 最大65532字节(utf8编码最大21844字符 1-3个字节用于记录大小)
  • VARCHAR(size)的size代表的是字符不是字节
  • 如果插入的数据长度没有达到size , 实际占用空间大小按插入的数据长度来分配
  • varchar本身还需要占用1-3个字节来记录存放内容长度
  • 查询速度 char>varchar
  • 存放文本时 , 可以使用text代替varchar , 如果varchar不够用 可以考虑使用mediumtext或者longtext
时间类型
  • Date 保存年月日
  • DATEIME 保存年月日时分秒
  • TIMESTAMP会使用时间戳自动更新保存的年月日时分秒
CRUDInsert