基于表emp进行操作
CREATE TABLE emp(id INT ,NAME VARCHAR(15),hire_date DATE,salary DECIMAL(10,2))
1. INSERT 插入数据
插入一条数据
INSERT INTO 表名
VALUES (value1,value2,....);
INSERT INTO `emp`
VALUES (1,'jack','2021-11-25',3000)
这样写只能按照emp表的字段顺序插入数据,也可以指定数据段进行插入
INSERT INTO `emp`(id,`name`,hire_date,salary)
VALUES (1,'jack','2021-11-25',3000)
也可以只插入部分数据
INSERT INTO `emp`(id,`name`,salary)
VALUES (1,'jack',3000)
插入多条数据
INSERT INTO 表名
VALUES (value1,value2,....),(value1,value2,....),(value1,value2,....);
将查询结果插入表
INSERT INTO 目标表名
(tar_column1 [, tar_column2, …, tar_columnn])
SELECT
(src_column1 [, src_column2, …, src_columnn])
FROM 源表名
[WHERE condition]
INSERT INTO `emp`(id,`name`,hire_date,salary)
( SELECT employee_id,last_name,hire_date,salary
FROM `employees`
WHERE job_id='AD_PRES')
2. UPDATE 更新数据
UPDATE 表名
SET column1=v1,column2=v2 ...
[WHERE codition]
UPDATE employees
SET department_id = 70
WHERE employee_id = 113;
3. DELETE 删除数据
DELETE FROM table_name [WHERE <condition>];
DELETE 和 TRUNCATE 的区别
1)DELETE是可以带WHERE的,所以支持条件删除;而TRUNCATE只能删除整个表。
2)DELETE支持事务,TRUNCATE不支持,所以DELETE删除的数据在事务提交之前可以找回
3)TRUNCATE 效率高于 DELETE
4. MySQL8:计算列
什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。例如,a列值为1、b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列,是通过别的列计算得来的。
在MySQL 8.0中,CREATE TABLE 和 ALTER TABLE 中都支持增加计算列。
在造表时声明计算列
CREATE TABLE tb1(
id INT,
a INT,
b INT,
c INT GENERATED ALWAYS AS (a + b) VIRTUAL
);
