【文件属性】:
文件名称:数据库相关的知识点!
文件大小:17KB
文件格式:DOCX
更新时间:2023-07-30 04:31:01
数据库
一、约束:作用是保证数据的完整性和一致性
not null 表示该字段数据不能为空
default 表示该字段的默认值
unique 唯一(列唯一,组合唯一)
primary key 主键 一张列表中只允许出现一个主键(not null + unique)
auto-increment 自增长
foregin key 外键 建立两个表之间的联系
语法 constraint fk_dep foreign key(关联列名) references 被关联表(被关联列)
on delete cascade 同步删除
on update cascade 同步更新
二、Mysql基本介绍
操作文件夹(库):
增加一个库:create database db1 charset utf8;
查看所有库: show databases;
查看特定库: show create database db1;
删库跑路: drop database db1;
操作文件(表):
切换进数据库:use db1;
查看当前所在文件夹;select database( );
增加表:create table t1(id int,name char(6));
查看特定表:show create table t1;
查看所有表:show tables;或者desc t1;
改:
alter table t1 modify name char(10);name字段改为10字节;
alter table t1 modify name NAME char(10);name字段名改成NAME
复制表
即复制表数据也复制表结构:create table t1 select * from db1.t1;
只复制表结构create table a1 like db1.t1;
清空表
delete from t1;但是这种方法会保留自增的ID
truncate table t1;这种方法不会保留自增ID
操作文件内容
增加内容:insert into (id,name) values(1,'aa'),(2,'bb'),(3,'cc');
查看内容:select * from db1.t1;
删除内容:delete from t1 where id =1;
查看用户权限:select * from mysql.user where user='root'\G;
三、SQL数据类型
SQL之中没有bool值,tinyint[1]表示true;tinyint[0]表示fasle.
int数据类型后面存储的是显示宽度,而不是存储宽度,其他的数据类型则表示的是存储宽度
now()sql中的内置函数,根据数据类型生成相对应的时间模式
char( )定长字符串,存储速度快,但是浪费空间
varchar( )变长字符串,存储速度慢,可是节省空间
enum() 表示枚举 多选一
set( )表示集合 多选多
七、索引
索引的作用:约束和加速查找
无索引的时候一般会 从前至后一条条查找
有索引的时候:创建索引的本质就是创造额外的文件,查询时先去额外的文件找,定好位置,再去原始表直接查询,提高查询速度,但是增删改的速度依然慢,创建索引后必须命中索引才有效
索引的分类
1、普通索引:加速查询
加入索引:create index 索引名 on 表名(列名)
删除索引: drop index 索引名 on 表名
查看索引:show index from 表名
2、唯一索引:加速查找和唯一约束(可含null)
加入索引:create unique index 索引名 on 表名(列名)
删除:drop index 索引名 on 表名
3、主键索引
加入索引:alter table 表名 add primary key(列名)
删除索引:alter table 表名 drop primary key(列名)和alter table 表名 modify 列名 int,drop primary key
4、组合索引:将多个列组合成一个索引
创建组合索引:create iindex 索引名 on 表名(列1,列2)
在使用组合索引时,若组合索引为(name,email),单独索引email时不走索引,这称为最左前缀匹配原则,最左匹配原则中,mysql会一直向右匹配知道遇到(< > between like)这一类的范围查询时停止
explain + sql查询语句,用于查询sql执行信息参数
在使用关键字‘like’查询时:like ‘n%’ 走索引;但是like ‘%n%’不走索引,即有且仅只有后面带上%时走索引
使用函数时索引不生效