0
点赞
收藏
分享

微信扫一扫

MySql基础之DML-数据操纵语言

北溟有渔夫 2022-04-05 阅读 26
java后端

文章目录

1、插入数据

  1. 为表的所有字段按默认顺序插入数据
INSERT INTO 表名 
VALUES (value1,value2,....);

举例:

INSERT INTO departments 
VALUES (70, 'Pub', 100, 1700);

值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。

  1. 为表的指定字段插入数据
INSERT INTO 表名(column1 [, column2,, columnn]) 
VALUES (value1 [,value2,, valuen]);

举例:

INSERT INTO departments(department_id, department_name) 
VALUES (80, 'IT');
  1. 同时插入多条记录
INSERT INTO table_name 
VALUES 
(value1 [,value2,, valuen]), 
(value1 [,value2,, valuen]), 
……
(value1 [,value2,, valuen]);

或者

INSERT INTO table_name(column1 [, column2,, columnn]) 
VALUES 
(value1 [,value2,, valuen]), 
(value1 [,value2,, valuen]), 
……
(value1 [,value2,, valuen]);

举例:

INSERT INTO emp(emp_id,emp_name)
VALUES 
(1001,'shkstart'),
(1002,'atguigu'),
(1003,'Tom');

小结:

  • VALUES 也可以写成 VALUE ,但是VALUES是标准写法。
  • 字符和日期型数据应包含在单引号中。

基本语法格式如下:

INSERT INTO 目标表名 
(tar_column1 [, tar_column2,, tar_columnn]) 
SELECT 
(src_column1 [, src_column2,, src_columnn]) 
FROM 源表名 [WHERE condition]

举例:

INSERT INTO emp2 
SELECT * 
FROM employees 
WHERE department_id = 90;
INSERT INTO sales_reps(id, name, salary, commission_pct) 
SELECT employee_id, last_name, salary, commission_pct 
FROM employees 
WHERE job_id LIKE '%REP%';

2、更新数据

语法如下:

UPDATE table_name 
SET column1=value1, column2=value2,, column=valuen 
[WHERE condition]
  • 可以一次更新多条数据。
  • 如果需要回滚数据,需要保证在DML前,进行设置:SET AUTOCOMMIT = FALSE;

举例:

UPDATE employees 
SET department_id = 70 
WHERE employee_id = 113;

3、删除数据

基本语法:

DELETE FROM table_name [WHERE <condition>];

举例:

DELETE FROM departments 
WHERE department_name = 'Finance';

4、MySQL8新特性:计算列

什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。例如,a列值为1、b列值为2,c列
不需要手动插入,定义a+b的结果为c的值,那么c就是计算列,是通过别的列计算得来的。

在MySQL 8.0中,CREATE TABLE 和 ALTER TABLE 中都支持增加计算列。下面以CREATE TABLE为例进行讲
解。
举例:定义数据表tb1,然后定义字段id、字段a、字段b和字段c,其中字段c为计算列,用于计算a+b的
值。 首先创建测试表tb1,语句如下:

CREATE TABLE tb1( 
id INT, 
a INT, 
b INT, 
c INT GENERATED ALWAYS AS (a + b) VIRTUAL 
);

演示:
在这里插入图片描述

举报

相关推荐

0 条评论