SQL语句详解三-DML(数据操作语言)

文章目录

DML

  • DML(数据操作语言):增删改表中数据,针对的对象是数据库中表格的数据。

添加数据

  • 语法

    sql 复制代码
    -- 方式一
    insert into 表名(列名1 , 列名2 , ... , 列名n) values(值1 , 值2 , ... , 值n);
    -- 方式二
    insert into 表名 values(值1 , 值2 , ... , 值n);
  • 注意事项

    • 列名 要和 值 一一对应
    • 如果表名后,不定义列名,则默认给所有列添加值(方式二)
    • 除了数字类型,其他类型需要使用 引号(单双都可以) 引起来
  • 示例代码

    sql 复制代码
    -- 创建一个学校数据库并指定数据库字符集为 utf8
    CREATE DATABASE IF NOT EXISTS school CHARACTER SET utf8;
    
    -- 使用学校数据库
    USE school;
    
    -- 在学校数据库下创建一个学生表,学生表中包含学号和学生姓名
    CREATE TABLE student(
    	sid INT(11),
    	sname VARCHAR(40)
    );
    
    -- 向表中插入一条数据,学号:1001,姓名:张三
    INSERT INTO student(sid , sname) VALUES(1001 , '张三');
    
    -- 向表中插入一条数据,学号:1002,姓名:李四
    INSERT INTO student VALUES(1002 , '李四');
    
    -- 查询student表中所有数据
    SELECT * FROM student;

删除数据

  • 语法

    sql 复制代码
    delete from 表名 [where 条件];
  • 注意事项

    • 如果不加条件,则删除表中所有记录
    • 如果要删除所有记录(两种方式)
    sql 复制代码
    -- 方式一
    delete from 表名;				-- 不推荐使用,因为有多少条记录会执行多少次删除操作
    -- 方式二
    truncate table 表名;			-- 推荐使用,效率更高,先删除表,然后再创建一张一样的表
  • 示例代码(仍使用 student 表)

    sql 复制代码
    -- 根据学号 1002 ,删除表中一条数据
    DELETE FROM student WHERE sid = 1002;
    
    -- 查询student表中所有数据
    SELECT * FROM student;
    
    -- 插入一条数据,学号:1002 姓名:小哼
    INSERT INTO student VALUES(1002 , '小哼');
    
    -- 插入一条数据,学号:1003 姓名:小恒
    INSERT INTO student VALUES(1002 , '小恒');
    
    -- 查询student表中所有数据
    SELECT * FROM student;
    
    -- 删除学号为 1002 姓名 小恒的这条记录
    DELETE FROM student WHERE sid = 1002 AND sname = '小恒';
    
    -- 查询student表中所有数据
    SELECT * FROM student;
    
    -- 删除表中所有记录
    DELETE FROM student;
    
    -- 再次添加刚才两条的数据,并查询
    INSERT INTO student(sid , sname) VALUES(1001 , '张三');
    INSERT INTO student VALUES(1002 , '小哼');
    
    SELECT * FROM student;
    
    -- 再次删除表中所有记录
    TRUNCATE TABLE student;

    上述演示的代码,大家可一步一步执行,去看下他的效果!

修改数据

  • 语法

    sql 复制代码
    update 表名 set 列名1 = 值1 , 列名2 = 值2, ... ,列名n = 值n [where 条件];
  • 注意事项

    • 如果不加任何条件,则会将表中所有记录全部修改
  • 示例代码

    sql 复制代码
    -- 再次添加刚才两条的数据,并查询
    INSERT INTO student(sid , sname) VALUES(1001 , '张三');
    INSERT INTO student VALUES(1002 , '小哼');
    
    SELECT * FROM student;
    
    -- 根据学号修改学生姓名,修改学号1001,姓名改为李四
    UPDATE student SET sname = '李四' WHERE sid = 1001;
    
    SELECT * FROM student;
    
    -- 不加条件,修改姓名为 中国
    UPDATE student SET sname = '中国';
    
    -- 此时查询,姓名都成了 中国
    SELECT * FROM student;
相关推荐
在未来等你1 小时前
SQL进阶之旅 Day 21:临时表与内存表应用
sql·mysql·postgresql·database·temporary-table·memory-table·sql-optimization
敖云岚2 小时前
【Redis】分布式锁的介绍与演进之路
数据库·redis·分布式
zhuiQiuMX2 小时前
分享今天做的力扣SQL题
sql·算法·leetcode
LUCIAZZZ2 小时前
HikariCP数据库连接池原理解析
java·jvm·数据库·spring·springboot·线程池·连接池
我在北京coding2 小时前
300道GaussDB(WMS)题目及答案。
数据库·gaussdb
小Tomkk3 小时前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
明月醉窗台4 小时前
qt使用笔记二:main.cpp详解
数据库·笔记·qt
沉到海底去吧Go4 小时前
【图片自动识别改名】识别图片中的文字并批量改名的工具,根据文字对图片批量改名,基于QT和腾讯OCR识别的实现方案
数据库·qt·ocr·图片识别自动改名·图片区域识别改名·pdf识别改名
老纪的技术唠嗑局4 小时前
重剑无锋,大巧不工 —— OceanBase 中的 Nest Loop Join 使用技巧分享
数据库·sql
未来之窗软件服务5 小时前
JAVASCRIPT 前端数据库-V6--仙盟数据库架构-—-—仙盟创梦IDE
数据库·数据库架构·仙盟创梦ide·东方仙盟·东方仙盟数据库