DML-数据操作语言

DML作用:
   用于向数据库表中插入、删除、修改数据
   
 明确:
    DML是针对数据库中表的数据操作
    
 DML常用的关键字:
    insert(添加)
    update(修改)
    delete(删除)

1.insert:
   插入数据语法:
      insert into table_name[(column[,column...])]VALUES value[,value....]);
      说明:
         插入的数据应与字段的数据类型相同,数据的大小在列的规定的范围内
         
         例如:
            不能讲一个长度为80的字符串加到长度为40的列中
           注意:
              在values里列出的数据位置必须和被加入的列的排列位置相对应
              ,字符或者字符串数据使用单引号 如:‘test’
              日期、时间也用单引号  如:日期格式:'yyyy-MM-dd'
                插入空值:null  null和‘’区别:
                   null:表示空值
                   ‘’  :表示空字符和空字符串
                   
 例如:
    使用insert插入数据
    
    insert into table_name values(1,'aas','1999-10-10');//格式错误
    insert into Table_name(id,userName,Gender)Values(1,‘aaa’,'ann');//可以选择性插入,必须所有的字段都有值
    
    字符集问题:
       我们使用cmd命令是GBK的字符集(而且修改不了),而数据库中表的字符集是utf-8,会造成存储失败
       
       
    在MYSQL中一共有六个地方使用字符集:
       1.client:
          表示客户端使用的字符集
       2.connection:
          表示连接数据库字符集设置类型,如果程序没有指明连接数据库时使用的字符集。类型就会按照服务器端默认的字符集设置
       3,database:
          表示数据库服务器中某个库的使用的字符集设定,如果建库的时候没有指明,将使用服务器安装时指定的字符集设置
       4.server:
         表示在服务器安装时指定的默认字符集设定
       5.results:
          表示数据库客户端返回时使用的字符集设定
          如果没有指明,使用服务器默认的字符集
       6.system:
          表示数据库系统使用的字符集的设定
    
    解决问题:
       针对上述情况,需要修改客户端的字符集,告诉MySQL,我们插入的中文时使用GBK编码的,由MySQL为我们转成utf-8
       set character_set_client=gbk;
       将结果集用GBK编码
       set character_set_results=gbk;
       
       
 2.update
    更新的语法:
        update table_name set col_name1=expr1[,col_name2=expr2.....][where where_definition]
    说明:
       update语法可以用新值更新原来表中各行各列的值
       set子句:指示需要修改的地方(包含列和值)
       where子句:指定更新哪些行
       如果没有指定where子句,默认更新所有的行
       
   练习:
      将员工的薪水修改为5000;
         update table_name set salary=5000;
      将姓名为张三的员工薪水改为5000;
       update table_name set salary=5000 where userName='张三';
       
3.delete:
   删除数据的语法:
      delete from table_name[where where_definition]
      
   摧毁表格语法:
     truncate table table_name;
       
      说明:
         如果不使用where子句,将删除表中所有数据
         delete语句不能删除某一列的值(可使用update),每一次都是删除一行记录,使用delete时只删除表的内容,并不删除表
         如果要删除表使用drop table语句
         
         
      从一个表中删除记录引起其他表的参照完整性的问题,在修改数据库数据时,记住这个潜在的问题
    注意:
        表中删除数据:
           delete是逐行删除
           truncate:整个摧毁,在重新构建表的结构
    
            如:
               删除名字为张三的记录:
                  delete from table_name where username="张三"
               删除表中所有的数据
               delete from table_name;
               
               使用truncate删除表中的记录:
                 truncate table table_name
         
### SQL DML 数据操作语言使用指南 数据操作语言(Data Manipulation Language,DML)是 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、付费专栏及课程。

余额充值