MySql数据表的基本操作
程序员文章站
2022-05-03 14:41:46
...
1. 数据表的创建
比如说创建一个test_db的数据表,结构如下
# 创建表 test_db
CREATE TABLE test_db
(
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary float
);
2. 数据表的查询
- DESCRIBE/DESC 查询
# 查询数据表结构
DESC test_db;
查询结果
- SHOW CREATE TABLE 查询
# 查询数据表结构
SHOW CREATE TABLE test_db;
查询结果
该语句还可以看到当前表的详细语句、存储引擎、字符集、校对规则
3. 更新数据表
3.1 新增列 ADD
3.1.1 在最后新增列
test_db 表新增列,列名是 new_column,数据类型是 VARCHAR,长度是 25 字节
# 新增列
ALTER TABLE test_db ADD new_column VARCHAR(25);
结果
3.1.2 在最前面新增列 FIRST
test_db 表新在最前面增列,列名是 new_column,数据类型是 VARCHAR,长度是 25 字节
# 新增列
ALTER TABLE test_db ADD new_column VARCHAR(25) FIRST;
3.1.3 在某列后新增列 AFTER
test_db 表新在 id 列后新增列 ,列名是 testId,数据类型是 VARCHAR,长度是 25 字节
# 新增列
ALTER TABLE tb_emp1 ADD testId INT(4) AFTER id;
3.2 修改列 CHANGE COLUMN
test_db 修改增列 new_column,新列名是 md_column,数据类型是 INT,长度是 10 字节
# 修改列
ALTER TABLE test_db CHANGE COLUMN new_column md_column INT(10);
结果
3.3 更新列值 ALTER COLUMN
test_db 修改 md_column 的默认值为20
# 修改默认值
ALTER TABLE test_db ALTER COLUMN md_column SET DEFAULT 20;
结果
test_db 删除 md_column 的默认值
# 修改默认值
ALTER TABLE test_db ALTER COLUMN md_column DROP DEFAULT;
3.4 更新列字符类型长度 MODIFY COLUMN
test_db 修改 md_column 的字符类型长度为 20
# 修改字符类型
ALTER TABLE test_db MODIFY COLUMN md_column INT(20);
3.6 删除列 DROP COLUMN
test_db 删除 md_column 列
# 删除列
ALTER TABLE test_db DROP COLUMN md_column;
3.7 更新表名 RENAME TO
test_db 更新表名为 tb_emp1
# 更新表名
ALTER TABLE test_db RENAME TO tb_emp1;
结果
3.8 更新表字符集 CHARACTER SET
tb_emp1更新字符集为 utf8
# 更新字符集
ALTER TABLE tb_emp1 CHARACTER SET 'utf8';
结果
3.8 更新表校对规则 COLLATE
tb_emp1更新校对规则为 utf8_bin
# 更新字符集
ALTER TABLE tb_emp1 COLLATE 'utf8_bin';
4. 删除数据表
删除表 tb_emp1 ,如果存在
# 删除表
DROP TABLE IF EXISTS tb_emp1;
结果
同时删除多个表
# 删除表
DROP TABLE IF EXISTS tb_emp1,tb_emp2...;
5. 创建关联表
将表 tb_emp2 的 deptId 和表 tb_emp1 的 id 关联,外键约束名称 fk_emp1_emp2 ,此时表 tb_emp2 是表 tb_emp1 的子表
# 创建tb_emp2,关联表tb_emp1,
CREATE TABLE tb_emp2
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp1_emp2 FOREIGN KEY (deptId) REFERENCES tb_emp1(id)
);
可以看出, tb_emp2 有名称 fk_emp1_emp2 的外键约束,外键是 deptId