mysql数据库设计

表字段类型

  • 数值
int 整型
float 浮点型
  • 字符串
char 小字符串
varchar 大字符串
text 文本

数据字段属性

1. unsigned 无符号
2. zerofill 默认设置无符号,不够位数可以在前面添加零补齐
3. auto_increment 自增长(前提是必须是主键)
4. null 允许为空
5. not null 不允许为空
6. default 默认值
7. commit 注释

表索引

  • 索引的作用是提高检索的速度
  1. 主键索引
    //增加主键索引
    primary key(字段);
    //删除主键索引
    //先删除自增
    alter table 表名 modify 字段 int unsigned not null;
    //再删除索引
    alter table 表名 drop primary key;
    
  2. 唯一索引
    //增加唯一索引
    alter table 表名 add unique 别名(字段名);
    //删除唯一索引
    alter table 表名 drop index 别名;
    
  3. 普通索引
    //增加普通索引
    alter table 表名 add index 别名(字段名);
    //删除普通索引
    alter table 表名 drop index 别名;
    

修改数据表字段

  1. 增加字段
alter table 表名 add 字段名 字段属性;
//加在某个字段后面
alter table 表名 add 字段名 字段属性 after 字段名;
//加在开头
alter table 表名 add 字段名 字段属性 first;
  1. 删除字段
alter table 表名 drop 字段名

3.修改字段

//改字段名
alter table 表名 change 原字段名 新字段名 字段属性;
//改字段属性
alter table 表名 modify 字段名 字段属性;

把表打印结果以行的形式显示

desc select *from 表名 where 条件\G

结构化语句

  1. 定义语言DDL
create,drop,alter
  1. 操作语言DML
insert,update,delete
  1. 查询语言DQL
select
  1. 控制语言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;

你可能感兴趣的:(mysql数据库设计)