表的操作
创建表
表是用于结构化存储数据,表不能脱离字段单独存在,字段就是用来对数据类型进行约束。所以表就是对不同数据类型约束的一集合。
语法:
create table 表名(
字段名 字段类型 【附加属性】,
字段名 字段类型 【附加属性】,
....
)【表选项】
说明:
同一个字段内的相关信息之间使用空格,不同字段之间使用','最后一个字段后不需要使用','
创建一个表仅仅定义了字段类型,字段的附属属性,就是表结构(表头)
表选项:
charset 用于设置存储数据的字符集
collation 针对表的存储字符集的一种校验规则
engine 存储引擎,主要负责对数据的存储与读取
collation校验集:
查看检验集:
检验集一般是以ci、bin、cs结尾
bin 使用unicode码进行比较(可以理解为区分大小写)
ci 不区分大小写
cs 区分大小写
engine:存储引擎
innodb 支持事务
myisam 不支持事务
校验集示例:
如何使用校验集,在绝大多数情况下不需考虑校验集的问题,当对数据进行比较时要求区分大小写,那么才考虑校验集。
创建表磁盘表现:
1、在当前数据库对应磁盘目录中会创建一个.frm的文件,此文件表的结构文件。
2、数据存储在data目录中的idata1文件中,所有使用innodb存储引擎的数据表中的数据都存储在此文件。
查看表
查看所有的表
语法
show tables 【like '模糊匹配'】;
模糊匹配:
% 当前位置及其后的多个字符
_ 当前位置的一个字符
示例:
查看表结构
desc 表名 用于查看表的结构(字段相关信息,不显示数据)
示例:
说明:
field 是字段名
type 字段类型(列类型)
null 是否允许为null,默认(没有其他约束)的如果没有字段插入数据mysql会自动使用null作为值。
key 表示,索引信息,例如:主键索引、唯一键索引、普通索引、全文索引
defaul 表示,缺省值,当没为某个字段指定数据时,可以自定义一个默认值。
extra 表示其他信息,例如:auto_increment
示例:
查看表的创建语法:
show create table 表名;
示例:
修改表
分两部分:对表本身的修改(表选项:存储引擎、字符集、校验),另一部分是对表结构的修改(字段)
修改表选项:
alter 表名 表选项;
示例:
说明:
对charset的更改,表内数据不会自动转换为新的字段集
对collate的更改,表内原有数据不会应用新的校验规则
更改校验集示例:
使用utf8_general_ci检验创建表:
修改表结构:
添加字段
alter table 表名 add 【column】 字段名 字段类型 【附加属性】
示例:
删除字段
alter table 表名 drop 【column】字段名;
示例:
修改字段类型
alter table 表名 modify 字段名 字段类型 【附加属性】;
示例:
注意:modify只能修改字段类型
修改字段名
alter table 表名change 【column】 原字段名 新字段名
示例:
注意: change可以修改字段名也可以修改字段类型
修改字段位置
alter table 表名 modify 字段名1 字段类型 after 字段名2
将字段1的位置排列在字段2之后
或
alter table 表名 modify 字段名1 字段类型 first;
将字段1的位置排列在最前面
示例:
提示:after与first可以放在任何对表结构修改的语句之后
删除表
drop table 表名;
示例: