DML(Data Manipulation Language)数据操作语言

一、增加 insert into

-- 写全所有列名
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);

-- 不写列名(所有列全部添加)
insert into 表名 values(值1,值2,...值n);

-- 插入部分数据
insert into 表名(列名1,列名2) values(值1,值2);

举例

-- 创建数据库
create database if not exists db_BigData
default character set gb2312
default collate gb2312_chinese_ci;
-- 创建表
create table if not exists db_BigData.stu (
    id      int         auto_increment     primary key       comment '主键ID',
    name    varchar(20)                                      comment '姓名',
    idnum   int         unique             not null          comment '身份证号',
    gender  int                            not null          comment '1.男 2.女',
    phone   int                                              comment '手机号',
    email   varchar(30) unique                               comment '邮箱',
    prof    varchar(20)                                      comment '职业',
    age     int                            not null          comment '年龄'
)comment '学生基本信息表';

-- 插入数据
insert into stu(name, idnum, gender, phone, email, prof, age) values
    ('绫波零', '20220111',2,00001,'myf001@al.com','驾驶员',14),
    ('明日香', '20220222',2,00002,'myf002@al.com','驾驶员',15),
    ('雷姆', '202203333',2,00003,'myf003@al.com','女仆',17),
    ('修比', '202204444',2,00004,'myf004@al.com','战士',631),
    ('三笠', '202205555',2,00005,'myf005@al.com','士兵',18),
    ('白', '2022066666',2,00006,'myf006@al.com','玩家',12),
    ('伊雷娜', '20220777',2,00007,'myf007@al.com','魔女',17),
    ('法夫塔', '20220888',2,00008,'myf008@al.com','深渊公主',10),
    ('娜娜奇', '20220999',2,00009,'myf009@al.com','探窟家',11),
    ('我妻由乃', '20221000',2,00010,'myf010@al.com','半神',16);
    
-- 不写列名(所有列全部添加)
insert into stu values (null , '柊舞缇娜', '20221001',2,00011,'myf011@al.com','反派',14);

二、删除 delete

-- 删除表中数据
delete from 表名 where 列名 = 值;
delete from stu where id = 1;
delete from stu where id <= 5;

-- 删除表中所有数据
delete from 表名;

-- 删除表中所有数据(高效 先删除表,然后再创建一张一样的表。)
truncate table 表名;

-- 区别
-- delete:DML命令,一条一条删除
-- truncate:DDL命令,类似于将整张表删除,然后重新创建一张一样的空表

三、修改 update

-- 不带条件的修改(会修改所有行)
update 表名 set 列名 = 值;

-- 带条件的修改
update 表名 set 列名 = 值 where 列名=值;
update db_BigData.stu set prof = '魔法少女-反派' where name = '柊舞缇娜';
update db_BigData.stu set prof = '反派IL',phone = 100012 where name = '柊舞缇娜' and id = 11;

### SQL DML 数据操作语言使用指南 数据操作语言Data Manipulation LanguageDML)是 SQL 的一个重要组成部分,主要用于对数据库中的数据进行操作。以下是关于 SQL DML 的详细说明和使用指南: #### 1. 基本概念 DML 主要用于对数据库中的数据进行插入、更新、删除等操作。常见的 DML 操作包括 `INSERT`、`UPDATE` 和 `DELETE` 等语句[^2]。 #### 2. 插入数据 (INSERT) `INSERT` 语句用于向数据库表中插入新记录。以下是 `INSERT` 的基本语法: ```sql INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` - 如果插入所有列的值,则可以省略列名部分。 - 示例: ```sql INSERT INTO employees (id, name, salary) VALUES (1, 'John Doe', 50000); ``` #### 3. 更新数据 (UPDATE) `UPDATE` 语句用于修改数据库表中已有的记录。以下是 `UPDATE` 的基本语法: ```sql UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; ``` - 必须使用 `WHERE` 子句来指定需要更新的记录,否则将更新整个表中的所有记录。 - 示例: ```sql UPDATE employees SET salary = 60000 WHERE id = 1; ``` #### 4. 删除数据 (DELETE) `DELETE` 语句用于从数据库表中删除记录。以下是 `DELETE` 的基本语法: ```sql DELETE FROM table_name WHERE condition; ``` - 必须使用 `WHERE` 子句来指定需要删除的记录,否则将删除整个表中的所有记录。 - 示例: ```sql DELETE FROM employees WHERE id = 1; ``` #### 5. 注意事项 - 在执行 `UPDATE` 和 `DELETE` 操作时,务必小心使用 `WHERE` 子句,以避免误删或误改数据[^3]。 - 批量操作时,建议先通过 `SELECT` 语句验证条件是否正确,再执行 `UPDATE` 或 `DELETE` 操作。 #### 6. Hive SQL 中的 DML 特性 在 Hive SQL 中,DML 的使用有一些特定的限制和特性: - Hive 支持 `INSERT`、`UPDATE` 和 `DELETE` 操作,但需要启用事务支持[^1]。 - 示例:启用事务后,可以执行以下操作: ```sql -- 插入数据 INSERT INTO employees PARTITION (department='Sales') VALUES (2, 'Jane Doe', 55000); -- 更新数据 UPDATE employees SET salary = 65000 WHERE id = 2; -- 删除数据 DELETE FROM employees WHERE id = 2; ``` #### 7. 性能优化建议 - 使用批量插入以提高性能。 - 避免在 `UPDATE` 和 `DELETE` 操作中使用复杂的查询条件。 - 定期清理不再需要的数据以释放存储空间[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值