MySQL-语句进阶

  • Post author:
  • Post category:mysql



一/表单内复杂查询

limit #取前若干条
order by 字段名 asc/desc #按照字段名升序或降序排列
like '%西%'  #判断字符串是否包含西
逻辑运算符:
in 判断结果是否落在指定范围内
between 判断是否落在某个区间
and 
or
分组及分组后的筛选:
    group by 字段名 #按照字段名分组
    having #分组后的筛选条件
    PS:where是分组前的条件筛选
数据库函数:
    count(col)
    max(col),min(col)
    avg(col)
    sum(col)


二/多表联合查询

1.子表A union 子表B #整合字段数量相同的子查询

2.join:

* A (inner) join() B   查询范围:为左右二表的交集

* A left join() B   查询范围包含:交集+左表独有部分

* A right join() B   查询范围:交集+右表独有部分




三/表关系管理

外键管理:

一般来说都是从表应引用主表的字段,外键定义在从表中,因为一旦从表删除,外键也一并删除了,并不会给主表留下脏数据

定义外键:

foreign key(从表字段) references 主表(主表字段)
例:
foreign key(classid) references clazz(id)

追加外键:

方法一
alter table 从表 add foregin key 从表(从表字段) references 主表(主表字段);
例:
alter table student add foregin key temp(classid) references clazz(id);

方法二:
alter table 从表 add constraint  外键名称 foreign key 从表(从表字段) references 主表(主表字段);

删除外键:

show craete table student;   //据此找出classid对应的外键名称:
alter table student drop foreign key 外键名称;   //删除外键
alter table student drop classid;

删除外键定义:

show create table student; 据此找出classid对应的外键名称
alter table student drop foreign key student_ibfk_1; 删除这个奇奇怪怪的外键名称
alter table student drop classid;



版权声明:本文为lenovoa68e原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。