DML-数据操作语言

时间:2021-02-07 18:46:46
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
         
DML-数据操作语言DML-数据操作语言