目录
创建表
表结构定义语法
CREATE TABLE 表名 (
列名1 数据类型,
列名2 数据类型,
列名3 数据类型
) CHARACTER SET 字符集 COLLATE 校对规则 ENGINE 存储引擎;
列名
:表中字段的名称数据类型
:定义字段的数据类型(如INT, VARCHAR等)CHARACTER SET
:指定表的字符集,默认为数据库字符集COLLATE
:指定字符校对规则,默认为数据库校对规则ENGINE
:指定表的存储引擎(如InnoDB, MyISAM等)- 注意:列定义格式为
列名 数据类型
,列名在前,数据类型在后。
示例:创建用户表
CREATE TABLE user1 (
id INT COMMENT '用户ID',
name VARCHAR(20) COMMENT '用户名',
password CHAR(32) COMMENT '用户密码',
birthday DATE COMMENT '用户生日'
) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE MyISAM;
存储引擎对比
MyISAM引擎示例:
CREATE TABLE user1 (
id INT COMMENT '用户ID',
name VARCHAR(20) COMMENT '用户名',
password CHAR(32) COMMENT '用户密码',
birthday DATE COMMENT '用户生日'
) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE MyISAM;
使用InnoDB
引擎
create table user2 (
id int,
name varchar(20) comment '用户名',
password char(32) comment '用户的密码',
birthday date comment '用户的生日'
) character set utf8 collate utf8_general_ci engine InnoDB;
在Linux 的目录/var/lib/mysql
下查找user_db
内部的文件
可见使用MyIsam
引擎的user1
有三个文件,使用InnoDB
引擎的user2
有两个文件。
对于user1
:
user1.frm
是表的结构文件user1.MYD
是表的数据文件user1.MYI
是表的索引文件
对于user2
:
user2.frm
是表的结构文件user2.ibd
是表的数据和索引文件
查看表
查看数据库中的所有表
SHOW TABLES;
查询表数据
SELECT * FROM 表名;
查看表结构
DESC 表名;
查看建表语句
SHOW CREATE TABLE 表名;
或者
show create table user1 G
修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
重命名表
ALTER TABLE 旧表名 RENAME TO 新表名;
或者
alter table user1 rename users;
修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;
在修改列的时候,新的列需要完整的定义。
插入数据
INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);
创建新列
alter table users add image_path varchar(128) comment '用户头像路径';
或者
alter table users add image_path varchar(128) comment '用户头像路径' after brithday;
加after brithday
是表名这列放在brithday
后面。
在添加新列以后,对原来表中的数据没有影响,原数据的这一列内容为空。
修改列
table users modify name varchar(60);
但是在修改列的时候,如果不加comment
的内容,那么修改后将会没有
删除列
alter table users drop password;
注意:删除字段一定要小心,删除字段及其对应的列数据都没了.
删除前一定要做好备份,或者列中没有数据。
删除表
drop table user2;
写在最后:以上内容是我在学习以后得一些总结和概括,如有错误或者需要补充的地方欢迎各位大佬评论或者私信我交流!!!