数据库常用命令及关键字
-
查看所有数据库
- show databases
-
查看当前数据库下所有表
- show tables;
-
切换数据库
- use 数据库名;
-
创建数据库
- create database 数据库名;
-
删除数据库
- drop database 数据库名;
-
创建数据表
- create table 表名(字段名 数据类型 字段特征,(可多行))
-
删除数据表
- drop table 表名;
-
修改数据表
- 对表重命名:alter table 旧表名 rename to 新表名;
- 添加新字段:alter table 表名 add column 字段名 数据类型 字段特征;
- 修改字段:alter table 表名 change 旧字段名 新字段名 字段特征;
- 删除字段:alter table 表名 drop 字段名;
-
添加非空约束
- alter table 表名 change 旧字段名 新字段名 数据类型 not null;
-
添加主键约束
- alter table 表名 add primary key (字段名);
-
添加唯一约束
- alter table 表名 add unique(字段名);
-
添加默认值约束
- alter table 表名 alter 字段名 set default ‘默认值’;
-
添加外键约束
- alter table 从表名 add foreign key(从表外键字段) references 主表名(主表主键字段);
建表的同时添加约束
-- 创建一个数据库
gamedb drop database if exists gamedb;
create database gamedb;
-- 切换数据库
use gamedb;
-- 创建英雄表(编号:主键自增非空,姓名:唯一非空,性别:默认男,非空,定位:允许为空,价格:允许 为空)
create table hero(
-- 字段名 数据类型 非空约束 主键约束 自增
id int not null primary key auto_increment, -- 唯一约束
name varchar(20) not null unique, -- 默认值约束
sex char(1) not NULL default '男',
position varchar(10) ,
price int
)
-- 创建战斗表(编号:参考hero表中的id字段,昵称,位置)
create table battle(
id int not null primary key ,
nickname varchar(20) ,
postion varchar(20) not null,
-- 给battle表的id设置外键,参考hero表中的id字段
foreign key (id) references hero(id)
)
关键字
对于数据的操作,是指数据的增加(create)、删除(delete)、修改(update)和查询(read)。
数据添加insert
数据修改update
条件修改:where
模糊查询:字段 like ’ %好_’
% : 未知长度字符串,
_ : 一个未知字符串
数据删除delete
数据查询select
-
查询所有字段
- select * from 表名;
-
查询指定字段
- select 字段1,字段2… from 表名;
-
字段重命名
- select 字段1 as ‘重命名’,字段2 ‘重命名’,字段3 重命名 from 表名;
-
查询指定条数(分页)limit
- 查询前N条记录 :select * from 表名 limit N;
- 查询从索引N开始的M条记录:select * from 表名 limit N,M;
-
排序:order by
select * from 表名 where 条件 order by 排序字段1 [asc/desc],排序字段2 [asc/desc]...
- asc:升序
- desc:降序
-
统计(聚合)函数
- count:统计数量
- sum:求和
- avg:平均
- max:最大
- min:最小
-
分组group by
- select * from 表 group by 分组字段
连接查询(多表)join on
select * from 表1 inner join 表2 on 表1.字段=表2.字段;
内连接:inner join
左连接:left join
右连接:right join
自连接:同一张表使用两次,自己和自己关联,a和b对其重命名
视图view
创建视图,写在查询语句前面,修改视图中的数据,会修改原始表中的数据
create view 视图名 as
使用视图
select * from 视图名;
删除视图
drop view 视图名;
查看事务隔离级别
select @@transaction_isolation
设置事务隔离级别
set [session|global] transaction isolation level [Read Uncommitted|Read Committed|Repeatable Read|Serializable]
触发器trigger
存储过程procedure