码迷,mamicode.com
首页 > 编程语言 > 详细

04.DML语言

时间:2020-05-12 16:47:18      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:ati   str   int   dml   多表   语法   效率   删除语句   join   

04.DML语言

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

分类:

插入:insert

修改:update

删除:delete

插入语句
  1. 方式一,经典插入

    语法:

    INSERT INTO FROM 表名(列名、列名…) VALUES (值1、值2…);
    
    1. 插入的值类型要与列的类型一致或兼容(可以隐式的转换)
    2. 可以为null的列如何插入(不可以为null的列必须插入字段)
      1. 直接写为null
      2. 在表名后要修改的列名直接不写

    注:

    1. 列的顺序可以颠倒,但在给值时需要一一对应
    2. 插入时,列数和值的个数和顺序必须一一对应
    3. 列名可以省略,默认为所有列,而且列的顺序与表中列的顺序一致
  2. 方式二

    语法:

    INSERT INTO 表名 SET 列名=值,列名=值…;
    

两种插入方式对比:

  1. 方式一支持多行插入,而方式二不支持
  2. 方式一支持多行子查询,而方式二不支持
修改语句
  1. 修改单表的记录

    语法:

    update 表名(1)
    
    set 列名=新值,列名=新值,…(3)
    
    where 筛选条件(2);
    

    注:数字表示执行顺序

  2. 修改多表的记录

    语法:sql92

    update 表1 别名,表2 别名(1)
    
    set 列名=新值,列名=新值,… (3)
    
    where 连接条件 and 筛选条件(2);
    

    语法:sql99

    update 表1 别名
    
    inner|left|right join 表2 别名
    
    on 连接条件                   
    
    set 列名=新值,列名=新值…        
    
    where筛选条件;
    
删除语句
  1. 方式一:delete

    1.单表的删除

    ? 语法:

    delete from 表名 where 筛选条件;
    

    2.多表的删除

    ? 语法:sql92

    delete 表1 别名,表2 别名
    
    from 表1 别名,表2 别名
    
    where 连接条件 and 筛选条件;
    

    ? 语法:sql99

    delete 表1 别名,表2 别名
    
    from 表1 别名
    
    inner|left|right join 表2 别名 on 连接条件
    
    where筛选条件;
    
  2. 方式二:truncate

    语法:

    truncate table 表名;(不支持连接筛选条件)
    

两种删除方式对比:

  1. delete可以加筛选条件,truncate不能加

  2. truncate删除,效率高一些

  3. 假如要删除的表中有自增长列:

    1. 用delete删除后,再插入数据,自增长列的值从断点开始
    2. 用truncate删除后,再插入数据,自增长列值从1开始
  4. truncate删除后没有返回值,而delete有(即是否显示表中有几行收到影响,若是truncate,则都是0)

  5. truncate删除不能回滚,而delete删除可以回滚

04.DML语言

标签:ati   str   int   dml   多表   语法   效率   删除语句   join   

原文地址:https://www.cnblogs.com/thetree/p/04_mysql.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!