@LYY
命令的执行顺序
- from
- on
- join
- where
- group by
- having
- select
- distinct
- order by
10.limit
聚合函数
无分组只聚合(select的时候) 一般Group by 字段 select 字段,聚合函数 聚合函数一般有 count avg max min sum where 在筛选条件中不可以出现聚合函数,having可以 limit 2(数量) offset 2含义:第3,4行 limit 9,4(数量) 第10,11,12,13行
索引
普通索引
- 当表的字段不常更新并且总查询的时候,适合建立索引(普通索引)
已经存在的表建立普通索引:create index 索引名 on 表明(字段名)
create table 表明(字段名 数据类型,字段名 数据类型,index(字段名),index(字段名)) 标志 MUL
drop index 索引名 on 表明
show index on 表明 (查看索引的详细信息)
- 唯一索引
已经存在的表建立唯一索引:create unique index 索引名 on 表明(字段名)
create table 表明(字段名 数据类型,字段名 数据类型,unique(字段名)) 标志 UNI
3.主键索引
已经存在的表建立主键索引:alter table 表明 add primary key(字段名)
复合索引: primary key(字段名1,字段2名2)
这里的复合索引一般是多对多关系表中间表 ,引用的索引类型。
删除主键索引 :alter table 表明 drop primary key
标志 PRI
4.外键索引
已经存在的表建立外键索引(创建表后接下面语句):,[constraint 外键名](可写可不写) foreign key (需要建立的本表字段名) references table_name(关联的表字段名)[ON DELETE RESTRICT |CASCADE | SET NULL | NO ACTION} ] + [ON UPDATE RESTRICT |CASCADE | SET NULL | NO ACTION} ]
存在得表:alter table 表明 [constraint 外键名](可写可不写) foreign key (需要建立的本表字段名) references table_name(关联的表字段名)[ON DELETE RESTRICT |CASCADE | SET NULL | NO ACTION} ] + [ON UPDATE RESTRICT |CASCADE | SET NULL | NO ACTION} ]
级联动作: restrict(默认) 从表有记录,主表无法删更新相关数据;
CASCADE 跟随主表的数据更新而更新 删除而删除;
set null 主表相关联的数据删除/修改 从表的数据变成null
NO ACTION 同默认;
建立外键会增加查询时间,建立一个MUL普通索引标识
删除外键
alter table 表明 drop foreign key 外建名字 (但是仍然存在索引,MUL)
视图:select full views in 数据库名 where table_type like 'VIEW';
- 如何设置一对一:从表设置 字段名 int uniq foreign key reference 主表(主键字段)
如何设置一对多:从表设置 字段名 int foreign key reference 主表(主键字段)父是一 子是多 子引用 父的某一列作为外键。 如何设置多对多:设置中间表,引用主键符合复核索引,然后分别设置外键即可。
联合索引
- 联合索引 最左匹配原则,当遇到都适合做索引时候,区分度最高的在最前面
|