node系列--【 DML语句对数据库的增删改查】

DML语句

​ DML 实现对数据记录的增删改查

1 新增数据(插入记录)

​ 语法:INSERT INTO 表名(字段名1,字段名2, ... ) VALUES(字段值1, 字段值2,, ....)

-- 新增记录
INSERT INTO student (学号,姓名,性别,生日,手机) VALUES('a002','张三',1,'1999-09-09','13612345678')

注意:

1)数值的数量和顺序必须和字段名的数量和顺序一致

2)插入数值的数据类型必须和字段的数据类型匹配

3)插入数值如果是字符串类型、日期类型需要加单引号包起来。数值类型不用加。

4)汉字字段或特殊符号,如果提示有错误,使用反引号包起来。

2 修改数据(更新记录)

语法: UPDATE 表名 SET 字段名1=值1,字段名2=值2, ... WHERE 条件

注意: where 后面的条件必须要设置准确,符合条件记录才修改。

-- 修改记录
UPDATE student SET 学号='a003',手机='0000000000' WHERE id=3

3 删除数据(删除记录)

语法: DELETE FROM 表名 WHERE 条件

-- 删除记录
DELETE FROM student WHERE id=3

4 查询记录

语法: SELECT 字段名1 AS 别名1,字段名2 AS 别名2,... FROM 表名

​ WHERE 条件1(= > < >= <=)

​ AND 条件2

​ OR 条件3

​ LIKE 模糊查询,匹配like指定的字符串

​ '李%' 查询所有姓李的

​ '%李' 查询以李结尾的

​ '%李%' 查询包含李的

​ NOT LIKE '李%' 查询所有不是李开头的

​ ORDER BY 字段名 DESC(ASC) DESC降序(从大到小) ASC升序(从小到大)一般放在最后

例:查询所有姓李的记者

SELECT * FROM caijing2016 WHERE title LIKE '%记者%' AND name LIKE '李%'

5 多表联合查询

​ 因为数据库的范式标准,数据可能被拆分放在多个表中,给查询带来一些问题,必须要联合两个表甚至多个表实现查询想要的数据。

​ a) 两表联合查询

​ 内连接语法:

​ SELECT 表1.字段名1,表1.字段2, 表2.字段1, .... FROM 表1 INNER JOIN 表2 ON 表1.联结字段 = 表2.联结字段

-- 两表内连接查询
SELECT
	`学生`.`学号`,
	`学生`.`姓名`,
	`班级`.`班主任`,
	`班级`.`教室`,
	`班级`.`班长`
FROM
	`学生`
INNER JOIN `班级` ON `学生`.`班号` = `班级`.`班号`

​ 左连接语法:(左边为主表,右边为从表)

​ SELECT 表1.字段名1,表1.字段2, 表2.字段1, .... FROM 表1 LEFT JOIN 表2 ON 表1.联结字段 = 表2.联结字段

-- 两表左连接查询
SELECT
	`学生`.`学号`,
	`学生`.`姓名`,
	`班级`.`班主任`,
	`班级`.`教室`,
	`班级`.`班长`
FROM
	`学生`
LEFT JOIN `班级` ON `学生`.`班号` = `班级`.`班号`

​ 查询结果:主表中的数据全部显示,从表中如果没有对应数据以null 填充。

左连接

6 多表联合

语法:

SELECT 表1.字段名1,表1.字段2, 表2.字段1, .... FROM 表1

INNER JOIN 表2 ON 表1.联结字段 = 表2.联结字段

INNER JOIN 表3 ON 表1.联结字段 = 表3.联结字段

SELECT
	`学生`.`姓名`,`课程`.`课程名`,`选修`.`成绩`
FROM
	`选修`
LEFT JOIN `学生` ON `选修`.`学号` = `学生`.`学号`
LEFT JOIN `课程` ON `选修`.`课程编号` = `课程`.id
WHERE `学生`.`姓名` LIKE '%斛晓强%'
原文地址:https://www.cnblogs.com/chenhaiyun/p/14706160.html