zoukankan      html  css  js  c++  java
  • MySQL-数据操作语言(DML)

    MySQL-数据操作语言(DML)

    1、数据插入(添加数据)

    (1)有3种形式

    形式1: 

    insert into  表名(字段名1,字段名2,....) values (值a1,值a2, .....), (值b1,值b2, .....),..... ;

    ②形式2:

    insert into  表名1(字段名1,字段名2,....)select  字段名1,字段名2,....  from  表名2; 

    ③形式3:

    insert  into  表名  set  字段名1=值1,字段名2=值2, ..... ;

    (2)解释说明:

    ①形式1和形式2,可以一次插入多条数据;

    ②不管哪种形式,在“字段”和“值”之间,都有“一一对应”关系。

    ③值的形式,通常是这样:数字直接写,字符串和时间加单引号,但如果是函数值,则不能加引号

    ④观念问题:不管那种形式,都要理解为:插入数据的单位是“行”;

    ⑤有的字段通常无需插入数据,此时不应该出现该字段名:auto_increment, timestamp,

    (3)其他类似插入数据的语句:

    ①载入外部“形式整齐”的数据:

    load  data  infile  ‘文件完整名(含路径)’  into  table  表名;

    ②复制一个表的结构和数据:

    create  table  表名1  select  *  from  表名2;

    2、删除数据

    1、基本语法形式:

    delete from 表名 [where条件] [order排序] [limit限定];

    2、解释说明:

    ①观念问题:删除也是应该以理解为“以行为单位”进行的。 

    ②删除语句中,where条件通常都要写上,因为如果不写,则就删除了所有数据,应用中极少如此。

    ③order排序子句和limit限定子句,应用中通常不需要。

      ③.①order排序子句用于设定删除数据的先后顺序。

      ③.②limit限定子句用于限定在设定的顺序情况下删除指定的某些行。

    3、类似删除语句truncate:

    truncate [table] 表名;用于直接删除整个表(结构)并重新创建该表。

    ①删除整个表(数据和结构都没有了)

    ②重新创建该表(全新表)。

    ③跟delete 语句不带where条件,有什么区别?

    主要影响的是类似:auto_increment这种类型的字段值:

    truncate结果会重新计算,delete还能继续增长。

    3、修改数据

    (1)基本语法:

    update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....[where条件] [order排序] [limit限定];

    (2)语法说明

    ①观念问题:仍然要理解为更新是以“行”为单位进行的,虽然可以指定只更新其中的部分字段。

    ② where条件子句,在应用中,同样几乎都必须有,否则很可能就失去意义,类似delete

    ③order排序子句通常不需要,用于将要更新的数据指定更新的顺序。

    ④limit限定子句通常不需要,用于将要更新的数据的指定顺序去更新部分(局部)数据,比如:前500行。

    ⑤字段的值可以是表达式,或直接值,或函数,如果是直接值,同样遵循insert语句中的值的写法。

    4、一个问题:复制表

    (1)复制表方法1:

    create table tab2 like tab1; //复制结构了

    insert into tab2 select * from tab1; //复制数据

    这种方法可以比较完整。

    (2)复制表方法2:

    create table tab2 select * from tab1; //同时复制结构和数据

    这种方法可能会丢一些结构信息,比如:索引,约束,自增长属性

  • 相关阅读:
    买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
    asp.net cookie and session
    leelazero and google colab
    download file by python in google colab
    physical processor, core, logical processor
    通过powershell操作eventlog
    openxml in sql server
    get the page name from url
    How to Execute Page_Load() in Page's Base Class?
    Difference between HttpContext.Request and Request
  • 原文地址:https://www.cnblogs.com/wjglm/p/9466425.html
Copyright © 2011-2022 走看看