数据 类型

字符串

        varchar

        char

数值

        int

        float

日期

        date

        datetime

增删改查

增:

insert into 表名( 字段 , 字段 , ... ) values( 数据1 , 数据2 , ... )

删:

drop table 表名

改:

update 表名 set 需要修改的字段=需要修改的数值 where 条件字段=条件

查:

基本查询:

select * from 表名

where条件查询:

单一条件:

select 字段 , 字段 , ... from 表名 where 条件字段 = 条件

多个条件:

select 字段 , 字段 , ... from 表名 where 条件字段1 = 条件1 and 条件字段2 = 条件 2

注解:and 条件必须全部满足
           or 条件满足其一即可

排序查询:

select * from 表名 where 条件字段 = 条件 order by 排序字段 排序方式

注解:排序方式:
           asc/desc 排序的方式默认为升序(asc)
           升序可以不写关键字asc,降序(desc)必须填写order by 子句必须放在整个SQL的最后

分组查询:

selec 分组字段 from 表名 group by 分组字段

去重查询:

全部去重:

select distinct * from table

单一条件去重:

select distinct 字段1 , 字段2 , ... from 表名

表关联查询

两表关联:

内连接 inner join

select * from 表1 备注1 inner join 表2 备注2 on 备注1.关联字段 = 备注2.关联字段;

左连接 left join

select * from 表1 备注1 left join 表2 备注2 on 备注1.关联字段 = 备注2.关联字段;

右连接 right join

select * from 表1 备注1 right join 表2 备注2 on 备注1.关联字段 = 备注2.关联字段;

全连接 
    左连接 union 右连接

select * from 表名 where gender='1'
union
select * from 表名 where gender='0'

解释:
union    结构相同,写法相同的两个结果集链接在一起

三表关联:

表一关联表二,在关联表三

select * from 表1 备注1
left join 表2 备注2 on  表1.关联字段 = 表2.关联字段
left join 表3 备注3 on  表1.关联字段 = 表3.关联字段

子查询

单个值

select* from 表1 where id = (select id from  表2 where 字段 =  ‘数值’)

多个值
    作为范围

select* from 表1 where id in ((select id from  表2 where 字段 =  ‘数值1’) , ...)


    作为中间结果

 select* from 表1 where id = (select id from  表2 where 字段 =  ‘数值1’) and (select id from  表2 where 字段 =  ‘数值2’)

视图

直接创建

create view 视图名 as select * from 表名

查看

describe 视图名

索引 

普通索引

alter table 表名 add index 索引名 ( 索引字段 )  using btree

复合索引

alter table 表名 add index 索引名 ( 索引字段1 , 索引字段2 , ... )

事务

开启

setautocommit=0
start transaction

提交

commit

回滚    

rollback

例子

#开启事务
setautocommit=0
start transaction
#编写一组事务的语句
update account set balance=500 where username='张无忌';
update account set balance=1500 where username='赵敏';
#结束事务
commit;
select * from account;

触发器

插入语句触发

delimiter 自定义结束符号
create trigger 触发器名字 触发时间 触发事件 on 表 for each row
begin
    -- 触发器内容主体,每行用分号结尾
end
自定义的结束符合

delimiter ;

存储过程

# 创建存储过程

CREATE PROCEDURE 名称()

BEGIN

语句

END$$

# 调用存储过程

CALL 名称()

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐