文章目录
- 1、创建表
- 2、查看表结构
- 3、改变表结构
- 4、删除表
- 5、总结
1、创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
例子
create table users (
id int,
name varchar(20) comment ‘用户名’,
password char(32) comment ‘密码是32位的md5值’,
birthday date comment ‘生日’
) character set utf8 engine MyISAM;
如果不写括号后的,就默认继承自当前数据库的集设置,engine表示用的存储引擎。此时查看/var/lib/mysql/d1目录内
2、查看表结构
先确认一下当前所在的数据库
select database();
看一下有哪些表
show tables;
查看具体一个表
desc 表名;
Field表示字段名字,Type表示字段类型,Null表示是否可以为空,Default表示默认值,Extra表示扩展。
查看具体信息,也就是查看创建表时的操作
show create table 表名;
show create table 表名 \G 格式化显示
mysql服务器会在查找,显示时进行词法分析,转化为标准写法,并记录当前操作
3、改变表结构
mysql命令中,alter table 表名的意思是要对这个表进行操作。
删除表
drop table 表名;
修改表名
alter table 原表名 rename to 新表名;
表名改了后,数据目录里的对应的文件的名字也改了。to可以省略。
插入数据
insert into 表名 values (1, ‘xx’, ‘12345’, ‘2024-02-05’);
values前可以加上列名,表示修改哪一列的数据,那么括号内就只填这一列的数据,不加就是插入全部。这个插入是按照上面建造表时的顺序插入的。
默认的字符集和校验集下,内容允许重复。
新增一列
alter table 表名 add 列名 类型 comment ‘…’ after password;
最后可以用after指定放到哪里,默认是放到最后,comment及后面的内容可以不加。
新增后show create table一下也会看到新增的列。
修改一列
alter table 表名 modify 列名 类型 comment ‘…’;
modify是覆盖。如果原有的列有类型和comment,modify时没写comment只写了类型,那么修改后这一列就只有类型而没有comment了,show create table也会看不到comment。
删除
alter table 表名 drop 列名;
修改列名
alter table 表名 change 旧列名 新列名 类型;
也是覆盖的意思。可以先show一下,看标准的写法,然后在类型那里复制过去。
4、删除表
drop table 表名;
5、总结
尽量不要修改和删除表。数据库是很靠近底层的,修改和删除会影响上层的使用。