查看所有数据库 | show databases; |
创建数据库 | create database 数据库名称; |
查看数据库详情 | show create database 数据库名称; |
创建数据库指定字符集 | create database 数据库名称 character set utf8/gbk; |
删除数据库 | drop database 数据库名称; |
使用数据库 | use 数据库名称; |
创建表 | create table 表名(字段1名 字段1类型,.....); |
查询所有表 | show tables; |
查看表详情 | show create table 表名; |
创建表时指定引擎和字符集 | create table 表名(字段1名 字段1类型,.....) engine=innodb charset=utf8/gbk; |
查看表字段信息 | desc 表名; |
删除表 | drop table 表名; |
修改表名 | rename table 原名 to 新名 |
修改表引擎和字符集 | alter table 表名 engine=innodb/myisam charset=utf8/gbk; |
添加表字段 | alter table 表名 add 字段名称 字段类型;(默认最后,可first或after 字段名) |
删除表字段 | alter table 表名 drop 字段名称; |
修改表字段的名称和类型 | alter table 表名 change 原字段名 新字段名 新字段类型; |
修改表字段的类型和位置 | alter table 表名 modify 字段名 新类型 first/after xxx; |
指定字段插入 | insert into 表名 (id,name) values(值1,值2); |
批量插入数据 | insert into person values(10,'悟空',500),(11,'八戒',250); |
查询数据 | select 字段信息 from 表名 where id<5; |
修改数据 | update 表名 set age=10 where id=2; |
删除数据 | delete from 表名 where id=2;(如果不写条件则删除表内所有数据) |
主键约束
- 什么是主键:用于表示数据唯一性的字段称为主键。
- 约束:是给表字段添加的限制条件。
- 主键约束:限制主键字段的值,唯一并且非空。
- 格式: create table t1(id int primary key,name varchar(10));
###主键约束+自增 primary key auto_increment 自增数值只增不减,从历史最大值基础上+1
###删除表并且创建新表truncate table t2; //自增数值清零
- 外键:用于建立关系的字段称为外键
事务
事务是数据库中执行同一业务多条sql语句的工作单元,可以保证多条sql语句要么全部执行成功,要么全部执行失败。
- 创建用户表:
create table user(id int,name varchar(10),money int,state varchar(5));
- 插入数据:
insert into user values(1,'超人',50,'冻结'),(2,'蝙蝠侠',2000,'正常');
- 蝙蝠侠给超人转账200块钱 无事务保护:
update user set money=money-200 where id=2 and state='正常';
update user set money=money+200 where id=1 and state='正常';
- 有事务保护: 转账失败
begin; //开启事务
update user set money=money-200 where id=2 and state='正常';
update user set money=money+200 where id=1 and state='正常';
rollback; //回滚
- 有事务保护:转账成功
insert into user values(3,'海王',10,'正常');
-蝙蝠侠给海王转账500
begin;
update user set money=money-500 where id=2 and state='正常';
update user set money=money+500 where id=3 and state='正常';
commit; //提交
- 保存回滚点 savepoint 标识;
begin;
update user set money=money-10 where id=2;
savepoint s1;
update user set money=money-50 where id=2;
update user se