表字段类型
- 数值
int 整型
float 浮点型
- 字符串
char 小字符串
varchar 大字符串
text 文本
数据字段属性
1. unsigned 无符号
2. zerofill 默认设置无符号,不够位数可以在前面添加零补齐
3. auto_increment 自增长(前提是必须是主键)
4. null 允许为空
5. not null 不允许为空
6. default 默认值
7. commit 注释
表索引
- 索引的作用是提高检索的速度
- 主键索引
//增加主键索引 primary key(字段); //删除主键索引 //先删除自增 alter table 表名 modify 字段 int unsigned not null; //再删除索引 alter table 表名 drop primary key;
- 唯一索引
//增加唯一索引 alter table 表名 add unique 别名(字段名); //删除唯一索引 alter table 表名 drop index 别名;
- 普通索引
//增加普通索引 alter table 表名 add index 别名(字段名); //删除普通索引 alter table 表名 drop index 别名;
修改数据表字段
- 增加字段
alter table 表名 add 字段名 字段属性;
//加在某个字段后面
alter table 表名 add 字段名 字段属性 after 字段名;
//加在开头
alter table 表名 add 字段名 字段属性 first;
- 删除字段
alter table 表名 drop 字段名
3.修改字段
//改字段名
alter table 表名 change 原字段名 新字段名 字段属性;
//改字段属性
alter table 表名 modify 字段名 字段属性;
把表打印结果以行的形式显示
desc select *from 表名 where 条件\G
结构化语句
- 定义语言DDL
create,drop,alter
- 操作语言DML
insert,update,delete
- 查询语言DQL
select
- 控制语言DDL
grant,commit,roolback
数据表操作
- 增
insert
insert into 表名(字段名1,字段名2) values(值1,值2);
- 删
delete
//不会改变自增顺序
delete from 表名 where 条件;
//清空自增顺序
truncate 表名;//清空表(慎用)
3.改
update
//如果不指定条件的话,则全部修改
update 表名 set 字段名=值 where 条件;
4.查
- 常规查询
select
//查询所有
select * from 表名;
//查询指定数据
select 字段 from 表名;
//查询指定条件下的指定字段
select 字段名 from 表名 where 条件;
//使用in方法指定条件
select * from 表名 where 字段名 in();
- 为查询字段起别名
select 字段 别名 from 表名;
select 字段 as 别名,字段 from 表名;
- distinct关键字的使用
//过滤重复的
select distinct 字段 from 表名;
- 查询空值
select * from 表名 where 字段 is null;
select * from 表名 where 字段 is not null;
- between and的使用
select * from 表名 where between 1 and 5;
- in的使用方法
select * from 表名 where id in(1,2,8);
//等价于
select * from 表名 id = 1 or id = 2 or id = 8;
- like的使用方法
//匹配所有 _ 匹配一个字符串
select * from 表名 where 字段名 "%匹配字符%";
//%在前,字段的索引会失效
//可以使用正则搜索(效率相对like低)
select * from 表名 where 字段名 regexp ".*匹配字符.*";
select * from 表名 where 字段名 regexp "匹配字符 | 匹配字符";
//以匹配条件开头的
select * from 表名 where 字段名 regexp "^匹配字符";
//以匹配条件结尾的
select * from 表名 where 字段名 regexp "匹配字符$";
- 使用order by对查询结果排序
//默认是升序,数字从小到大
select * from 表名 order by 字段名 asc;
//降序,数组从大到小
select * from 表名 order by 字段名 desc;