基于表emp进行操作

  1. CREATE TABLE emp(
  2. id INT ,
  3. NAME VARCHAR(15),
  4. hire_date DATE,
  5. salary DECIMAL(10,2)
  6. )

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
);