mysql语句

DDL:对数据库,表,列进行操作DDL:对数据库,表,列进行操作

                    关键字:create      创建表和数据库

                                 alter          修改表的字段

                                 alter语句的关键字有 add(增加),drop(删除),modify(修改字段类型),change(可修改字段名和字段类型),rename to(修改表名)

                               drop          删除表,数据库和一个字段

DML:对表中的数据进行增,删,改的操作

                     关键字:     insert into    向表中插入一条数据

                                     update          修改数据

                                      delete             删除数据

DQL:对表中的数据进行查询

                      关键字:  select    查询

查看建表语句: show create table 表名

基本语句:

alter语句:

向表中增加一个字段:         alter table 表名 add column 字段名 字段类型;

删除表中一个字段:            alter table 表名 drop column 字段名;

修改表中某一个字段类型: alter table 表名 modify column 字段名  新字段类型;

可修改的字段名和修改字段类型:

                   alter table 表名 change column 字段名 新字段名  字段类型(也可写新字段类型)

修改表名:   alter table 表名 rename to 表名;

给字段添加主键: 

  alter table 表名 change column 字段名 字段名 字段类型 primary key auto_increment

 auto_increment:   给主键自增     (一般用于编号)

drop语句

删除数据库:  drop 数据库名;

删除表:         drop 表名;

删除字段:     alter table 表名 drop column 字段名


DML语句

插入一条所有字段的数据:insert into 表名 values(按字段顺序写值);

插入一条部分字段的数据:insert into 表名 (字段名)values(值);

修改数据:    update 表名 set 属性名=值;       修改的是 属性名 那一列的数据全部为 值

按条件修改数据: update 表名 set 属性名=值 where 条件

删除表所有 数据 :   delete from 表名 ;

按条件删除数据:          delete from 表名 where 条件

DQL语句

查询所有数据: select * from 表名;

查询部分字段: select 字段名1,字段名2 from 表名;

查询去重数据: select distinct 字段名  from 表名;

条件查询:

1..逻辑:and和or

select * from 表名 where name='jack' and pwd ='123';

select * from 表名 where name=‘jack’or name='rose';

2..比较条件: >  <  >=  <=  =  between and(在某个区间范围内,首位都包含在内)

select * from 表名 where 字段>1;

select * from 表名 where 字段名 between 数字 and 数字;

3..判空条件:  =''  is null(判断空)  <>''(是不等于)  is not null(判断非空)

select * from 表名 where 字段名<>' ';

select * from 表名 where 字段名 is not null;

select * from 表名 where 字段名 is  null;

4..模糊查询  

   like关键字     _(表示一个字符)   %(表示多个字符  包括0个)

想查询名字包含jack的

select * from表名 where字段名 like '_jack';

匹配名字包含jack的或者包含rose的

select * from 表名 where 字段名 like '%jack%' or 字段名 like '%rose%';

5..聚合函数 max(列) min(列) avg(列) count(列)(不包含null) sum(列)总和

select  max(java) from student ;      不包含null

select min(java) from student;          不包含null

select sum(java) from student;          不包含null

select avg(java) from student;      不包含null

select count(*) from student;          不包含null

6..分页查询

  关键字:  limit   int , int 

select * from 表名  limit  3,4;

3 表示从3的下一条语句开始查询         4表示查询出四条语句

7..分组查询

关键字: group by         

select * from 表名 group by 分组的列名  ;

按条件分组  

   关键字  : having   分组的的条件      where 分组前的条件

select * from 表名  group by 分组的列名  having 条件;

select * from 表名  where 条件   group by 分组的列名 ;

8..排序查询

   关键字:order by   asc  升序   默认      可不许asc

              order  by    desc  降序

如果和分组一起用     先分组后排序

select * from 表名 group by 分组的列名 order by 排序的列名

9..多表查询

1) 隐式内连接查询     (按照条件进行显示)

select * from 表名1,表名2 where 表名1.(点) 主键=表名2.(点)   和主键有关系的列名

2)显示内连接

select * from 表名1 inner join 表名2 on  条件              inner 可省略

3)外连接

左外连接:   左边的表为主表       右边的表为副表

右外连接:   右边的表为主表       左边的表为副表

(1)左外连接:   select * from 表名1 left outer join 表名2 on 条件

(2)右外连接:  select * from 表名1 rigth outer join 表名2 on 条件

outer可省略

4)自连接:   (自己连接自己)

  select * from 表 join 表 on 条件

10..子查询      当一个sql语句需要用到另一个sql语句的结果集

    例:      1  查看用户为张三的订单详情

        select * from orders where user_id in(select id from user where username='张三')

你可能感兴趣的:(mysql语句)