表操作
创建表
基本语法: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语句
示例如下:
使用视图
创建好的视图可以直接当做表来使用,如下:
删除视图
同删除表一样,如下: