# 数据的增删改
# DML的INSERT添加数据:使用insert语句向表添加数据
CREATE TABLE IF NOT EXISTS demo1.use1 (
name VARCHAR(10),
age INT
);
DESC demo1.use1;
/*# 方式一:一条一条的添加数据
未指明每个字段所对应的数据类型时:(不推荐)
INSERT INTO 数据库名.表名 VALUES (数据1,数据2,数据3,....);
这种情况数据要和表中的数据结构一一对应。
指明每个字段所对应的数据类型时:(推荐)
INSERT INTO 数据库名.表名(数据类型1,数据类型2,....)
VALUES (数据1,数据2,....);
这种情况数据要和列出来的数据结构一一对应,未列出来的取NULL
指明每个字段所对应的数据类型的同时插入多条数据(推荐)
INSERT INTO 数据库名.表名(数据类型1,数据类型2,....)
VALUES (数据1,数据2,....),
(数据1,数据2,....),
(数据1,数据2,....)
....;
*/
INSERT INTO demo1.use1 VALUES ('龙一',18);
INSERT INTO demo1.use1(name) VALUES ('龙二');
INSERT INTO demo1.use1(age) VALUES (62);
INSERT INTO demo1.use1(name,age) VALUES
('龙三',24),
('龙四',84),
('龙五',21);
SELECT * FROM demo1.use1;
# 方式二:一次性添加多条(将查询结果插入表中)
# 查询的字段也要和添加的字段一一对应
# INSERT INTO 数据库名.表名(数据类型1,数据类型2,....) SELECT ... FROM ....;
INSERT INTO demo1.use1(name) SELECT NAME FROM demo.student where score = 100;
SELECT * FROM demo.student;
SELECT * FROM demo1.use1;
# 更新数据(或者修改数据)
# UPDATE 数据库名.表名 SET 字段1 = ...,字段2 = ... WHERE ...
# set后面就是要修改的多个或一个数据,where用于筛选数据
# 注意:增添和修改、删除数据都会受到约束的影响
SELECT * FROM demo1.use1;
UPDATE demo1.use1 SET name = '龙龙' WHERE age = 62;
UPDATE demo1.use1 SET age = 19 WHERE name IN ('龙二','蔡徐坤');
# 删除数据
# DELETE FROM 表名 WHERE ...
DELETE FROM demo1.use1 WHERE name = '赵六';
# MYSQL8新特性:计算列
# 比如,a列是1,b列是2,c列不需要手动插入,只要定义a+b的结果为c,则c可以自动计算。
# mysql8支持在CREATE TABLE 和 ALTER TABLE 中进行加入计算列
CREATE TABLE IF NOT EXISTS demo1.use2(
a INT,
b INT,
c INT GENERATED ALWAYS AS (a+b) VIRTUAL-- 计算列
);
INSERT INTO demo1.use2(a,b) VALUES (1,1),(2,2),(3,3),(4,4),(66,100);
SELECT * FROM demo1.use2;
标签:INSERT,--,....,INTO,第十章,demo1,use1,MYSQL,数据 From: https://www.cnblogs.com/kkk0425/p/17389197.html