1. DDL (Data Definition Language)数据定义语言,用于操作数据库和表
create
alter
drop
truncate
auto_increment
自增
truncate
删除表并重新创建,而delete
是只删除表中的数据
#创建数据库
create databse 数据库名称;
#删除数据库
drop database 数据库名称;
#创建表(以user表为例)
create table user(id int primary key auto_increment,...);
#修改表名
alter table user rename to user2;
#添加表字段
alter table user add username varchar(20);
#修改表字段
alter table user change username name varchar(20);
#修改字段类型
alter table user modify name int;
#删除表字段
alter table user drop name;
#删除表
drop table user;
常用的命令
#切换数据库
use 数据库名称;
#显示数据库中所有表
show tables;
#查看表结构
desc user;
#查看表的建表语句
2. DML(Data Manipulation Language)数据操纵语言:适用范围:对数据库中的数据进行一些简单操作,如insert
,delete
,update
,select
等.
- 插入
#1.插入表中对应的所有字段
insert into user values(字段值...) ;
#2.插入指定的字段
insert into user(字段...) values(字段值...);
- 更新
update user set 字段=字段值 where 条件;
- 删除
delete from user where 条件;
- 查询
select ... from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段;
#分页查询
select ... limit m,n;(从索引m开始向后查找n条数据)
select ... limit n; (相当于上面的[0,n])
3.多表查询
-
内连接
-
显式
#a,b为表名 select a.*,b.* from a [inner] join b on 条件;
-
隐式
#a,b为表名 select a.*,b.* from [outer] a,b where 条件;
-
-
外连接
-
左外连接
select a.*,b.* from a left join b on 条件;
以a为主,展示所有数据,根据条件关联查询b表;满足条件展示,否则的话显示NULL;右外连接类似,只不过是以b为主。
-
子查询
一个查询依赖另一个查询。
4. MySQL事务
事务是一组不可被分割执行的SQL语句集合,如果有必要,可以撤销。 MySQL中事务默认是自动提交(见下图),每执行一条sql语句都会提交一次事务
- 关闭自动事务.
set autocommit = off;
- 手动开启一个事务
#开启事务
start transaction;
#事务提交(提交之前所执行的sql语句)
commit;
#事务回滚(清空之前的操作,撤销)
rollback;