zoukankan      html  css  js  c++  java
  • DML 数据操纵语言

    插入数据(INSERT)

    #  查看表结构
    mysql> desc student;
    +----------+---------------------+------+-----+-------------------+----------------+
    | Field    | Type                | Null | Key | Default           | Extra          |
    +----------+---------------------+------+-----+-------------------+----------------+
    | id       | int(11)             | NO   | PRI | NULL              | auto_increment |
    | name     | varchar(12)         | NO   |     | NULL              |                |
    | age      | tinyint(3) unsigned | NO   |     | NULL              |                |
    | gender   | enum('m','f')       | YES  |     | f                 |                |
    | cometime | datetime            | YES  |     | CURRENT_TIMESTAMP |                |
    | birthday | datetime            | YES  |     | NULL              |                |
    +----------+---------------------+------+-----+-------------------+----------------+
    6 rows in set (0.00 sec)
    

    插入数据(不规范)

    mysql> insert into student values(1,'小王',78,'f',now(),'1942-07-14');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  78 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    1 row in set (0.00 sec)
    

    插入数据(规范)

    # 1.插入指定列数据
    mysql> insert into student(name,age) values('小张','84');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  78 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  78 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    +----+--------+-----+--------+---------------------+---------------------+
    3 rows in set (0.00 sec)
    
    # 2.插入指定列数据
    mysql> insert into student(name,age,birthday) values('小张','84','1936-02-20');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  78 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  78 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    4 rows in set (0.00 sec)
    

    插入多条数据(规范)

    mysql> insert into student(name,age,birthday) values('小李','18',1936-02-21),('小六','28','1992-01-01');
    Query OK, 2 rows affected, 1 warning (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 1
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  78 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  78 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 |
    |  8 | 小六   |  28 | f      | 2020-07-15 09:31:07 | 1992-01-01 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    8 rows in set (0.00 sec)
    

    修改数据(UPDATE)

    #  查看表数据
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  78 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  78 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 |
    |  8 | 小六   |  28 | f      | 2020-07-15 09:31:07 | 1992-01-01 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    8 rows in set (0.00 sec)
    

    修改数据

    # 使用update语句必须要加where条件
    mysql> update student set age=18 where name='小王';
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  18 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  18 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 |
    |  8 | 小六   |  28 | f      | 2020-07-15 09:31:07 | 1992-01-01 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    8 rows in set (0.00 sec)
    

    指定修改数据

    # 如果数据库有主键,一定使用主键
    mysql> update student set age=88 where name='小王' and cometime='2020-07-15 09:21:12';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> update student set age=88 where id=2;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  88 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  88 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 |
    |  8 | 小六   |  28 | f      | 2020-07-15 09:31:07 | 1992-01-01 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    8 rows in set (0.00 sec)
    

    删除数据(DELETE)

    # 1.先查看数据,确认要删除的数据,怎么确定唯一
    
    # 2.使用delete语句也一定要加where条件
    mysql> delete from student where id=8;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+
    | id | name   | age | gender | cometime            | birthday            |
    +----+--------+-----+--------+---------------------+---------------------+
    |  1 | 小王   |  88 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 |
    |  2 | 小王   |  88 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 |
    +----+--------+-----+--------+---------------------+---------------------+
    7 rows in set (0.00 sec)
    
    # 3.如果就是要清空表
    mysql> delete from student where 1=1;
    Query OK, 1 row affected (0.01 sec)
    # (危险)
    truncate table student;
    drop table student
    

    案例:UPDATE 代替 DELETE

    如果某个学生辍学,数据库中不会真正的删除这个学生的记录,一般通过一个字段判断某个学生是否退学,如下案例,通过 status 的值判断该学生是否在学校上课,如果是 1 则表示在读,是 0 则表示辍学,那么使用 UPDATE 即可实现 “删除” 此学生记录的功能 。

    添加状态字段 STATUS

    mysql> alter table student add status enum('1','0') default 1;
    Query OK, 0 rows affected (0.08 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+--------+
    | id | name   | age | gender | cometime            | birthday            | status |
    +----+--------+-----+--------+---------------------+---------------------+--------+
    |  1 | 小王   |  88 | f      | 2020-07-15 09:21:12 | 1942-07-14 00:00:00 | 1      |
    |  2 | 小王   |  88 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 | 1      |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                | 1      |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 | 1      |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 | 1      |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 | 1      |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 | 1      |
    +----+--------+-----+--------+---------------------+---------------------+--------+
    7 rows in set (0.00 sec)
    

    UPDATE 代替 DELETE

    # 相当于删除学生
    mysql> update student set status='0' where id =2;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+--------+
    | id | name   | age | gender | cometime            | birthday            | status |
    +----+--------+-----+--------+---------------------+---------------------+--------+
    |  2 | 小王   |  88 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 | 0      |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                | 1      |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 | 1      |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 | 1      |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 | 1      |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 | 1      |
    +----+--------+-----+--------+---------------------+---------------------+--------+
    6 rows in set (0.00 sec)
    
    # 相当于学生返校继续读书
    mysql> update student set status='1' where id =2;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from student;
    +----+--------+-----+--------+---------------------+---------------------+--------+
    | id | name   | age | gender | cometime            | birthday            | status |
    +----+--------+-----+--------+---------------------+---------------------+--------+
    |  2 | 小王   |  88 | f      | 2020-07-15 09:22:27 | 1942-07-14 00:00:00 | 1      |
    |  3 | 小张   |  84 | f      | 2020-07-15 09:24:17 | NULL                | 1      |
    |  4 | 小张   |  84 | f      | 2020-07-15 09:25:22 | 1936-02-20 00:00:00 | 1      |
    |  5 | 小张   |  84 | f      | 2020-07-15 09:28:11 | 1936-02-21 00:00:00 | 1      |
    |  6 | 小李   |  18 | f      | 2020-07-15 09:29:18 | 0000-00-00 00:00:00 | 1      |
    |  7 | 小李   |  18 | f      | 2020-07-15 09:31:07 | 0000-00-00 00:00:00 | 1      |
    +----+--------+-----+--------+---------------------+---------------------+--------+
    6 rows in set (0.00 sec)
    
  • 相关阅读:
    delphi 文件的读取(二进制文件和文本文件)
    delphi中用代码实现注册Ocx和Dll(有点怪异,使用CallWindowProc来调用指定函数DllRegisterServer)
    delphi 控件大全(确实很全)
    C#编写Windows 服务
    SSD Buffer Pool Extension
    .NET Web开发技术简单整理
    Python数据库访问之SQLite3、Mysql
    infiniband学习总结
    模板引擎开发3自定义标签的处理
    CSS选择器、优先级与匹配原理
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/13306140.html
Copyright © 2011-2022 走看看