数据操作

更新数据

基本语法:update  表名  set  字段 = 值  [where条件];

高级语法:update  表名  set  字段 = 值  [where条件]  [limit 更新数量];

例 :

update student  set  name = 'zhangsan' where name = 'lisi'  limit 3;

删除数据

    delete  from  表名 [where条件] [limit 数量];

清空表  重置自增长

    truncate  表名;   --先删除该表,后新增该表

查询数据

基本语法:select  字段列表 /* from 表名 [where条件];

完整语法:select  [select 选项]  字段列表 [字段别名]/* from  数据源  [where条件子句]  [group by子句]  [having 子句]  [order by子句]  [limit 子句];

select选项:select对查出来的结果的处理方式

all:默认的,保留所有的结果

distinct:去重,查出来的结果,将重复给去除

字段别名

    字段名 [as] 别名;

例 :

    select  id , number  as  学号,name  as 姓名,from  student;

数据源:单表数据源、多表数据源、查询语句

  单表数据源:select  *  from  表名;

多表数据源:select  * from 表名1,表名2, ...;

子查询:select  *  from  (select 语句)  as  别名;

where子句:返回结果0或1,0代表false,1代表true

select  * from 表名  where 1;  ------所有条件都满足

  判断条件

   比较运算符:>、<、>=、<=、!=、<>、=、like、between、and、in/not in

     逻辑运算符:&&(and)、||(or)、!(not)

group  by子句

基本语法:group by 字段名 [asc|desc];   ------desc (倒序)

        例:

            select * from 表名  group by sex;(分组,保留一男组女组)

统计函数:

count():统计分组后的记录数,每一组有多少记录

 max():统计每组中最大的值

min():统计最小值

avg():统计平均值

   sum():统计和

例:

     select  sex,count(*), max(height), min(height),avg(age),sum(age) from student group by sex desc;

rand 取得一个 0-1之间的随机数  floor 向下取整  , ceil 向下取整

多字段排序

group_concat(字段);

例:

    select c_id, sex,count(*),group_concat(name) from student group by c_id,sex;

回溯统计

    with  rollup;

having子句

    与where子句一样,是进行条件判断的

    having能够使用字段别名

order  by子句

    基本语法:order by 字段名 [asc|desc]  (分组,保留所有男生女生)

limit子句

   方案一:只用来限制长度,即数据量:limit数据量;

   方案二:限制起始位置,限制数量:limit起始位置,长度;

    limit  offset , length;

    length:每页显示的数据量,基本不变

    offset = (页码-1)*每页显示量

连接查询(join)分类:内连接、外连接、自然连接、交叉连接

 使用方式:左表  join  右表

交叉连接(cross  join)

 基本语法:左表 cross  join 右表;  --等价于:from 左表,右表;

内连接([inner]  join)

    基本语法:左表  join  右表  on  左表.字段 = 右表.字段;

    on表示连接条件

外连接(outer  join)

    left  join:左外连接(左连接),以左表为主表

    right  join:右外连接(右连接),以右表为主表

基本语法:左表  left/right  join 右表 on 左表.字段=右表.字段;

自然连接(natural  join)

    自然内连接:左表  natural   join  右表;

    自然外连接:左表  natural  left/right   join  右表;

    模拟自然连接:左表  left/right/inner  join  右表  using(字段名);

例:

select  * from  student  left  join  class  using(id)

增加外键

   创建表的时候增加外键:在所有的表字段之后,使用foreign  key(外键字段)  references 外部表(主键字段)

例  :

    create  table  student (id int  primary key  auto_increment, name  varchar(20) , c_id  int , foreign  key(c_id) references  class(id);

在新增表之后增加外键:修改表结构,使用alter table 表名 add [constraint 外键名字] foreign key(外键字段)  references 父表(主键字段);

例:

    alter  table  student  add

    --指定外键名

    constraint  sc1 

    --指定外键字段

    foreign key(c_id)

--引用父表主键

references  class(id)

修改外键&删除外键

    alter  table 表名 drop  foreign key 外键名;

你可能感兴趣的:(数据操作)