表操作
创建表
基本语法:create table [if not exists] tablename(字段列表[索引或约束列表]) [表选项列表] ;
字段设定形式
格式:字段名 数据类型 字段属性1 字段属性2 ……
- 字段名自定义,需遵守规范
- 数据类型就是前文介绍的数值型 字符串型 日期时间型
- 字段属性可以有一个或多个,主要有以下几个
- auto_increment:适用于整数类型,该字段自增,通常用于主键
- primary key:设定主键,该字段的值在表中确定唯一一行数据
- not null:不能为空,如果没有设定,默认为空的
- unique key:设定该字段是唯一性的,不重复,与primary key的区别为该字段可以为空
- default:如果没有设置该字段的值,则为默认值
- comment:该字段的注释说明
创建表示例
修改表
修改表,指修改表的结构,如同创建表时设定的表结构一样
创建表可以完成的,通过修改表这种方式也可以做到
比如可以对字段进行修改,添加删除修改,对索引进行修改,添加删除,对表选项进行修改,即使创建的时候不设置表选项值,一般也有其默认值
添加字段
- 语法:alter table table_name add column 新字段名 新字段类型 新字段属性
- 示例如下
修改字段(可改名)
- 语法:alter table 表明 change column 旧字段名 新字段名 新字段类型 新字段属性
- 示例如下
删除字段
- 语法:alter table 表名 drop column 字段名
- 示例如下
添加普通索引
- 语法:alter table 表名 add key索引名
- 示例如下
添加主键索引(约束)
- 语法:alter table 表名 add primary key(字段名)
- 示例如下
添加唯一索引(约束)
- 语法:alter table 表名 add unique key(字段名)
- 示例如下
修改表名
- 方式一:
- 语法:alter table 表名 rename to 新表明
- 示例如下
- 方式二:
- 语法:rename table 表名 to 新表名
- 示例如下
删除表
- 语法:drop table if exists 表名
- 示例如下
表相关其它操作
显示当前数据库所有表
- 语法:show tables;
- 示例如下
查看表结构
- 语法:desc 表名
- 示例如下
查看表的创建语句
- 语法:show create table 表名
- 示例如下
从已有表复制表结构
- 语法:create table if not exists 新表名 like 旧表名
- 示例如下
索引
索引可以理解为数据库内部维护的一张隐藏的表,我们可以为表中的某一个或多个字段创建索引,数据库会对这个字段的所有数据进行预先的某种 排序,这样会大幅提高查询效率,但要考虑增删改带来的负担。
数据库管理系统会创建并维护一个和当前表关联的“索引表”。
索引主要分为普通索引 主键索引 唯一索引 全文索引 外键索引五种
普通索引
形式:key(字段名)
就是一个索引,没有其他作用,加快查询速度
主键索引
形式:primary key(字段名)
是一个索引,同时该字段的值还能唯一确定表中的一行数据,不可重复
唯一索引
形式:unique key(字段名)
是一个索引,并且该字段的值是唯一的,允许为空
全文索引
形式:fulltext(字段名)
外键索引
形式:foreign key(字段名) reference 其他表中的字段名
外键就是表中的某个字段,其值必须为另一个表中的某个字段值,不可以随意插入
示例
表选项
表选项就是指创建表的时候对表的整体设定
主要有如下几个:
- charset:指定表中数据存储的字符集,默认情况使用数据库的编码集
- engine:数据存储引擎,也叫表类型
- 指将数据存储到硬盘上的机制,一般有两个大层面,一个尽可能速度快,另一个尽可能功能多
- 主要有InnoDB MyIsam BDM MEMORY等,默认是InnoDB
- auto_increment:指定表中字段为auto_increment的id值起始值
- comment:表的注释说明
约束
顾名思义,就是指数据满足指定的条件才可以被正确的写入
主要有如下几种约束:
- 主键约束:
- 形式:primary key(字段名)
- 释义同主键索引
- 外键约束:
- 形式:foreign key(字段名) references 其他表中的字段
- 释义同外键索引
- 唯一约束:
- 形式:unique key(字段名)
- 释义同唯一索引
- 默认约束:
- 形式:default 值
- 次约束只能创建表的时候写在字段属性上
- 非空约束:
- 形式:not null
- 指创建表时的not null属性
- 检查约束:
- 形式:check(判断语句)
- 如:create table user(id int , age int,check(age>10 and age<88))
主键约束 唯一约束 外键约束和其对应的索引,都是同一件事情,两个名字而已。
视图
视图含义
同函数的含义差不多,函数是指将一段代码封装起来,并为之命名,以后用的时候,直接使用该函数名即可
视图也如此,只不过他是将一个select语句封装起来,给其起一个名字,这个名字就是视图名,以后执行这段语句,直接使用视图就可以了
创建视图
语法:create view 视图名 [(字段名1,字段名2 ……)] as select语句
示例如下:
使用视图
创建好的视图可以直接当做表来使用,如下:
删除视图
同删除表一样,如下: