05_DML

文章目录

    • 一、什么是DML
      • 1.1、准备工作
    • 二、DML的使用
      • 2.1、插入数据
      • 2.2、修改数据
      • 2.3、删除数据

一、什么是DML

DML(Data Manipulation Language)数据操作语言:增、删、改表记录。

注意:DML是对表的内容进行操作,DDL是对表的结构进行操作,两者有本质区别。

1.1、准备工作

建库建表

# 创建数据库
CREATE DATABASE IF NOT EXISTS mydb;
# 切换数据库
USE mydb;

# 删除表
DROP TABLE IF EXISTS stu;
# 创建学生表
CREATE TABLE stu  (
  id int(11),
  name varchar(20),
  age int(11),
  gender varchar(5),
  addr varchar(30)
);

由于DML对表的内容进行操作,我们为了验证操作是否生效,需要查询一下表的内容,SQL语句如下:

# 查找表的所有记录
SELECT * FROM 表名;

关于上述建库建表:

  1. 什么是SQL脚本?SQL脚本就是保存了SqL语句的文件(文件以.sql为后缀)
  2. 如何执行SQL脚本?点到(root@localhost)连接上面,然后右键选择执行SQL脚本。选择电脑上面指定的路径,执行。一般都会执行成功。如果不能执行成功,一般都是sql脚本里面的sql语句有错误。
  3. 实际开发应该注意的问题 :当我们拿到sql脚本时,一定要关注一下有没有建库的语句,上面的代码是有的。但是实际的开发中,通常是没有建库的语句的,这个时候就需要我们自己先完成建库操作,然后在自己建立的数据库上面点击右键,选择执行SQL脚本。
  4. 验证:SELECT * FROM 表名;

二、DML的使用

2.1、插入数据

用来在表中增加数据,增加的数据可能是一行,也可能是多行,但是不可能是半行。

05_DML_第1张图片

# 在表名后给出要插入的列名,其他没有指定的列等同与插入null值。所以插入记录总是插入一行,不可能是半行。
# 在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应
INSERT INTO 表名(列名1, 列名2, ...) VALUES(列值1, 列值2, ...);

INSERT INTO stu(id, name, age, gender, addr) VALUES(1, 'zs', 10, '男', '青岛市北区');
INSERT INTO stu(name, age, gender, addr) VALUES('ls', 10, '男', '青岛市南区');
INSERT INTO stu(name, age) VALUES("ww", 20);

# 没有给出要插入的列,那么表示插入所有列
# 值的个数必须是该表列的个数
# 值的顺序,必须与表创建时给出的列的顺序相同。
INSERT INTO 表名 VALUES(列值1, 列值2, ...);

INSERT INTO stu VALUES(1, 'zs', 10, '男', '青岛市北区');
INSERT INTO stu VALUES(2, 'ls', 10, '男', '青岛市南区');

# 一次插入多条数据
INSERT INTO 表名(列名1, 列名2, ...) VALUES(列值1, 列值2, ...), (列值1, 列值2, ...), (列值1, 列值2, ...);

INSERT INTO stu(name, age) VALUES('zs', 20), ('ls', 11), ('ww', 12);

2.2、修改数据

用来修改表中已有的数据。

# WHERE条件是可选的, 如果没有条件, 就修改所有记录, 多数时候我们都加上WHERE条件
UPDATE 表名 SET 列名1=列值1, 列名2=列值2, ...[WHERE 条件]

关于条件:

  • 条件必须是一个boolean类型的值或表达式;
  • 运算符:
    =、
    不等于:!=、<>、

、<、>=、<=、between…and… 、in(…)、is null、not、or、and;

  • 和后面学习的删除数据及DQL中的条件通用。
UPDATE stu SET addr='qd', gender='男' WHERE age >= 18 AND age <= 80;
UPDATE stu SET addr='qd', gender='男' WHERE age <> 18;
UPDATE stu SET addr='qd', gender='男' WHERE age BETWEEN 18 AND 80;
UPDATE stu SET addr='qdsnq' WHERE name='zs' OR name='ls';
UPDATE stu SET addr='qdsnq' WHERE name IN('zhangsan','lisi');
UPDATE stu SET addr='qdsnq' WHERE age IS NOT null;

05_DML_第2张图片

2.3、删除数据

用来删除表中已有的数据。

# WHERE条件是可选的, 如果没有条件, 就删除所有记录, 多数时候我们都加上WHERE条件
DELETE FROM 表名 [WHERE 条件];

# 删除id为1的学生
DELETE FROM stu WHERE id=1;

#与DELETE不加WHERE删除整表数据不同,TRUNCATE是把表销毁,再按照原表的格式创建一张新表
TRUNCATE TABLE 表名;

你可能感兴趣的:(Mysql,oracle,数据库)