目录
一、创建表
二、查看表
三、修改表
一、创建表
语法:
create table table_name(
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则会继承所在数据库的字符集
collate 校验规则,如果没有指定校验规则,则会继承所在数据库的校验规则
示例:
注意:这里if not exists 是一个选项,可有可无。
不自定义设置编码和校验规则,创建的表会默认采用数据库的编码和校验规则。
查看当前表的编码和校验规则:
关于创建表使用不同的存储引擎:
创建表user1使用的存储引擎是MyIsam,创建表user2使用的存储引擎是InnoDB.
我们在Linux中可以查看它们的文件有何差异:
使用不同的存储引擎,创建文件的类型和种类是不相同的。使用MyIsam,在数据目中有三个不同的文件,分别是:
user1.frm:存储表结构
user1.MYD:存储表数据
user1.MYI:存储表索引
使用InnoDB:
user2.frm:存储表结构
user2.ibd:存储表数据和表索引
也就是使用InnoDB会把表数据和表索引存储在一个.ibd类型的文件中。
二、查看表
语法:
desc table_name; //查看表结构
输入:
show tables; //查看当前数据库中的表有哪些
语法:
show create table table_name; // 显示创建表时的详细信息
这样查看很不方便,可以在查看时加上 \G 选项,可以格式化显示,把不需要的给屏蔽掉。
这是因为加上 \G 选项,mysqld会对我们写的指令进行词法语法分析,转化为标准的写法。
三、修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
语法:
alter table old_name rename to new_name;//修改表名
注:加粗和有颜色的字体为关键字。
old_name:表示之前表的名字
new_name: 表示修改后表的名字
to是可以省略的
语法:
alter table table_name change oldline_name newline_name properties;//更改列名
注: 加粗和有颜色的为关键字
table_name:表名
oldline_name:之前的列名
newline_name:更改后的列名
properties:更改后的列的属性
示例
对列名称做修改,不仅要修改列名称,还要对它的相关属性做修改。
语法:
insert into table_name (可指定列)values (根据表中的列一一对应填写数据); //插入数据
注:
values前可指定要插入哪一列,不指定插入哪一列时,默认是全部列插入。
示例
语法:
alter table table_name add line_name type 备注 位置; //新增列
注:
type:表示新增列的类型,大小
备注:comment备注
位置:在列中的位置,比如在哪一列后面添加
示例
语法:
alter table table_name modify line_name changedproperties;//修改某一列的属性
注:
changedproperties:修改后的列属性
修改时扩大列可允许数据大小是不影响存储数据的,但是这是一种覆盖式修改,之前的备注,也就是comment内容也就没有了。
语法:
alter table table_name drop line_name; //删除某一列
删之前:
删除了password这一列。
语法:
drop table table_name;//删除表