zoukankan      html  css  js  c++  java
  • MySQL基本SQL语句之数据插入、删除数据和更新数据

    一、INSERT插入数据:

    方法一:批量插入

    基本语法:

    INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2, ...),...]
        字符型:单引号
        数值型:不需要引号
        日期时间型:不需要引号
        空值:NULL,不能写成 ''

    如向tutors表插入两行数据:

    mysql> INSERT INTO tutors(Tname,Gender,Age) VALUES('Sam','M',28),('Barlow','M',27);
    Query OK, 2 rows affected (0.03 sec)
    Records: 2  Duplicates: 0  Warnings: 0

    方法二:一次插入一行

    基本语法:

    INSERT INTO tb_name SET col_name={expr | DEFAULT}, ...

    如向tutors表插入一行数据:

    mysql> INSERT INTO tutors SET Tname='Winne',Gender='F',Age=25;
    Query OK, 1 row affected (0.04 sec)

    图片

    方法三:将查询结果插入到表

    基本语法:

    INSERT [INTO] tbl_name   [(col_name,...)]   SELECT ...

    如下将students表中Age大于20的插入到tutors表中:

    mysql> SELECT Name,Gender,Age FROM students WHERE Age > 20;
    +-------------+--------+------+
    | Name           | Gender  | Age    |
    +-------------+--------+------+
    | DingDian      | M          |   25   |
    | HuFei            | M          |   31   |
    | Xuzhu            | M         |   26   |
    | LingHuchong | M         |   22   |
    +-------------+--------+------+
    4 rows in set (0.19 sec)

    mysql> INSERT INTO tutors(Tname,Gender,Age) SELECT Name,Gender,Age FROM students WHERE Age > 20;
    Query OK, 4 rows affected (0.09 sec)
    Records: 4  Duplicates: 0  Warnings: 0

    图片

    二、REPLACE插入数据

    使用INSERT插入数据时,如果违反约束,会导致插入失败。如students表要求Name字段不能相同,那使用INSERT插入已经存在的 Name时,就会失败。使用REPLACE插入数据,可以在此种情况下,使用新数据替换原数据,而如果不违反约束关系,则与INSERT一样正常插入数 据。

    REPLACE基本语法与INSERT完全一样:

    方法一:

    REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name
        [PARTITION (partition_name,...)]
        [(col_name,...)]
        {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

    方法二:

    REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name
        [PARTITION (partition_name,...)]
        SET col_name={expr | DEFAULT}, ...

    方法三:

    REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] tbl_name
        [PARTITION (partition_name,...)] 
        [(col_name,...)]
        SELECT ...

    三、DELETE删除数据:

    基本语法:

    DELETE FROM tb_name WHERE condition;

    WHERE子句用法同SELECT中的WHERE

    如下删除tutors表中Age小于30的行:

    mysql> DELETE FROM tutors WHERE Age < 30;
    Query OK, 6 rows affected (0.07 sec)

    需要注意的是,删除数据后,AUTOINCREMENT计数器中对应数据并不会删除。

    如果需要清空一张表,并重置AUTOINCREMENT计数器,可以使用如下命令:

    TRUNCATE tb_name

    四、UPDATE更新数据

    基本语法:

    UPDATE tb_name SET col1=..., col2=... WHERE

    如下将students表中xuzhu的Age改为20:

    mysql> UPDATE students SET Age=20 WHERE Name='Xuzhu';
    Query OK, 1 row affected (0.04 sec)
    Rows matched: 1  Changed: 1  Warnings: 0

    update1

  • 相关阅读:
    由wifi吞吐量问题联想到的分治思维
    总结----调试问题套路(经验)
    常用指令备忘录----持续更新
    【mark】OS是否使用svc方式分开系统空间和用户空间的优劣
    转载----五种开源协议(GPL,LGPL,BSD,MIT,Apache)
    rt-thread 动态装载实现、优化
    转:嵌入式: jffs2,yaffs2,logfs,ubifs文件系统性能分析
    gcc ld 链接器相关知识,调试指令(程序员的自我修养----链接、装载与库)
    HTML5与CSS3经典代码
    jquery mobile上传图片完整例子(包含ios图片横向问题处理和C#后台图片压缩)
  • 原文地址:https://www.cnblogs.com/aipiaoborensheng/p/6697590.html
Copyright © 2011-2022 走看看