创建表
-
创建空表
CREATE TABLE 表名( id INT, name VARCHAR(15), update_time DATE ... );
-
基于已有表,创建新表
说明:
① 查询语句中字段的别名,可以作为新创建表的字段名称
② 查询出来的结果会放入新表中CREATE TABLE 表名 AS SELECT employee_id AS emp_id, last_name AS name, salary FROM employees;
操作表中的字段
-
添加一个字段
# 默认将comment字段添加到末尾 ALTER TABLE 表名 ADD comment VARCHAR(50);# 指定将字段添加到头部 ALTER TABLE 表名 ADD comment VARCHAR(50) FIRST;# 指定将字段添加到某个字段的后面 ALTER TABLE 表名 ADD comment VARCHAR(50) AFTER name;
-
修改一个字段
ALTER TABLE 表名 MODIFY last_name VARCHAR(66);
-
重命名一个字段
ALTER TABLE 表名 CHANGE last_name new_last_name VARCHAR(66);
-
删除一个字段
ALTER TABLE 表名 DROP COLUMN 字段名;
重命名表
RENAME TABLE 表名
TO 新表名;
删除表
DROP TABLE IF EXISTS 表名1,表名2...;
清空表
TRUNCATE TABLE 表名;
插入数据
- 方式一:按表结构的顺序依次添加
INSERT INTO emp VALUES (1, 'Andy', '2024-12-16', 10000);
- 方式二:指明字段
INSERT INTO emp(id, salary, `name`, hire_date) VALUES(2, 5000, 'Tom', '2022-5-6');
- 方式三:添加多条记录
INSERT INTO emp(id, name, salary) VALUES (3, 'Lusy', 6000),(4, 'Jerry', 8000);
- 方式四:将查询结果添加到表中(需要保证字段一一对应)
INSERT INTO emp1(id, name, salary, hire_date) SELECT employee_id, last_name, salary, hire_date FROM employees WHERE department_id IN(70);
更新数据
没有WHERE
,代表修改表中所有数据
# 修改emp1中id是4的hire_date为当前日期
UPDATE emp1
SET hire_date = CURDATE(), salary = 6000
WHERE id = 4;
删除数据
没有WHERE
,代表删除表中所有数据
# 删除id是2的记录
DELETE FROM emp1
WHERE id = 2;
新特性:计算列
一个列是另外几个列计算得来的,即“计算列”
# c为计算列,a+b的值
CREATE TABLE test_generate(
a INT,
b INT,
c INT GENERATED ALWAYS AS (a + b) VIRTUAL
)
# 在新增数据时,计算列c会变化
INSERT INTO test_generate(a,b)
VALUES(1,2),(10,20);
# 在更新数据时,计算列c会变化
UPDATE test_generate
SET a = 5
WHERE b = 2;