• MySQL之day3


    1. 数据的插入  

      1.  插入一行(可以 省略 列名)  且要求 行列数 严格一致

            插入格式:  insert into <表名> (列,...) values (值,...)

      2. mysql> insert into product values ('0009','电视机','家具',4000,3000,'2019-07-04',NULL);
        Query OK, 1 row affected (1.82 sec)
        
        mysql> select * from product ;
        +------------+--------------+--------------+------------+----------------+-------------+------+
        | product_id | product_name | product_type | sale_price | purchase_price | regist_date | co   |
        +------------+--------------+--------------+------------+----------------+-------------+------+
        | 0001       | T恤          | 衣服         |       1000 |            500 | 2009-09-20  | NULL |
        | 0002       | 打孔器       | 办公用品     |        500 |            320 | 2009-09-11  | NULL |
        | 0003       | 运行T恤      | 衣服         |       4000 |           2800 | NULL        | NULL |
        | 0004       | 菜刀         | 厨房用品     |       3000 |           2800 | 2009-09-20  | NULL |
        | 0005       | 高压锅       | 厨房用品     |       6800 |           5000 | 2009-01-15  | NULL |
        | 0006       | 叉子         | 厨房用品     |        500 |           NULL | 2009-09-20  | NULL |
        | 0007       | 砧板         | 厨房用品     |        880 |            790 | 2008-04-28  | NULL |
        | 0008       | 圆珠笔       | 办公用品     |        100 |           NULL | 2009-11-11  | NULL |
        | 0009       | 电视机       | 家具         |       4000 |           3000 | 2019-07-04  | NULL |
        +------------+--------------+--------------+------------+----------------+-------------+------+
        9 rows in set (0.00 sec)
        View Code
      3. 插入 null  要不能有 not null 数据类型格式 限制
      4. 插入 主键相同时 报错  
        mysql> insert into product values ('0009','电视机','家具',4000,3000,'2019-07-08',NULL);
        ERROR 1062 (23000): Duplicate entry '0009' for key 'PRIMARY'
      5. 省略 列名 时 会自动设定为该列的默认值 (默认值 会在 创建table 时 设置 ), 没有默认值设为 null , 且要 行列 数 严格一致
        1 mysql> insert into product (product_id , product_name , product_type , sale_price , regist_date,co) values ('0010','电视机2','家具',40000,'2019-07-05',NULL);
        2 Query OK, 1 row affected (0.11 sec)
        1 mysql> insert into product (product_id , product_name , product_type , sale_price , regist_date,co) values ('0011','电视机2','家具',40000,444,'2019-07-05',NULL);
        2 ERROR 1136 (21S01): Column count doesn't match value count at row 1 -- 行列数不一致
         1 mysql> insert into product (product_id,product_type , sale_price , regist_date,co) values ('0020','电视机2',40000,'2019-07-05',NULL);
         2 ERROR 1364 (HY000): Field 'product_name' doesn't have a default value
         3 mysql> select * from product;
         4 +------------+--------------+--------------+------------+----------------+-------------+------+
         5 | product_id | product_name | product_type | sale_price | purchase_price | regist_date | co   |
         6 +------------+--------------+--------------+------------+----------------+-------------+------+
         7 | 0001       | T恤          | 衣服         |       1000 |            500 | 2009-09-20  | NULL |
         8 | 0002       | 打孔器       | 办公用品     |        500 |            320 | 2009-09-11  | NULL |
         9 | 0003       | 运行T恤      | 衣服         |       4000 |           2800 | NULL        | NULL |
        10 | 0004       | 菜刀         | 厨房用品     |       3000 |           2800 | 2009-09-20  | NULL |
        11 | 0005       | 高压锅       | 厨房用品     |       6800 |           5000 | 2009-01-15  | NULL |
        12 | 0006       | 叉子         | 厨房用品     |        500 |           NULL | 2009-09-20  | NULL |
        13 | 0007       | 砧板         | 厨房用品     |        880 |            790 | 2008-04-28  | NULL |
        14 | 0008       | 圆珠笔       | 办公用品     |        100 |           NULL | 2009-11-11  | NULL |
        15 | 0009       | 电视机       | 家具         |       4000 |           3000 | 2019-07-04  | NULL |
        16 | 0010       | 电视机2      | 家具         |      40000 |           NULL | 2019-07-05  | NULL |
        17 +------------+--------------+--------------+------------+----------------+-------------+------+
        18 10 rows in set (0.00 sec)
        19 
        20 mysql>

         我想 更新 列定义 ,发现不行, 所以要在最开始就要 定义好数据类型, 默认值.

        mysql> alter table product add column sale_price integer default 0;
        ERROR 1060 (42S21): Duplicate column name 'sale_price'  --重复定义列
      6. 从其他表中复制数据 利用 select 语句 嵌入 insert 语句 , 还可以 使用 聚合函数在select中 
        insert into productCOPY_name  (列名 ,...) 
        select <列名>, ...    
        from <源table>
    2. 数据的删除  ----删除操作最好先备份

      1.   drop table <table_name>   语句       --会将表格完全删除即丢弃
      2.        delete from <table_name> 语句        --会留下表 ,即容器, 只删除全部数据
        1.   可以 使用 where <条件>   筛选  只删除部分
    3. 数据的更新

      1.   update <表名>  

               set <列名> = <条件>;

             where <条件>;  ---更新部分数据行 的搜索型 update 

          2.   清空为 null 只限制于 未设置 not null 的列

          3.  可以在 set 中使用 算术运算符

     1 mysql> update product
     2     -> set sale_price = sale_price*10, purchase_price = purchase_price/2  --MySQL 只可以使用这种格式
     3     -> where product_type='厨房用品';
     4 Query OK, 4 rows affected (0.14 sec)
     5 Rows matched: 4  Changed: 4  Warnings: 0
     6 
     7 mysql> select * from product;
     8 +------------+--------------+--------------+------------+----------------+-------------+------+
     9 | product_id | product_name | product_type | sale_price | purchase_price | regist_date | co   |
    10 +------------+--------------+--------------+------------+----------------+-------------+------+
    11 | 0001       | T恤          | 衣服         |       1000 |            500 | 2009-09-20  | NULL |
    12 | 0002       | 打孔器       | 办公用品     |        500 |            320 | 2009-09-11  | NULL |
    13 | 0003       | 运行T恤      | 衣服         |       4000 |           2800 | NULL        | NULL |
    14 | 0004       | 菜刀         | 厨房用品     |      30000 |           1400 | 2009-09-20  | NULL |
    15 | 0005       | 高压锅       | 厨房用品     |      68000 |           2500 | 2009-01-15  | NULL |
    16 | 0006       | 叉子         | 厨房用品     |       5000 |           NULL | 2009-09-20  | NULL |
    17 | 0007       | 砧板         | 厨房用品     |       8800 |            395 | 2008-04-28  | NULL |
    18 | 0008       | 圆珠笔       | 办公用品     |        100 |           NULL | 2009-11-11  | NULL |
    19 | 0009       | 电视机       | 家具         |       4000 |           3000 | 2019-07-04  | NULL |
    20 | 0010       | 电视机2      | 家具         |      40000 |           NULL | 2019-07-05  | NULL |
    21 | 0020       | 电视机4      | 家具         |       NULL |          40001 | 2019-07-05  | NULL |
    22 +------------+--------------+--------------+------------+----------------+-------------+------+
    23 11 rows in set (0.00 sec)
      1. 事务

        1.   commit 提交处理

        2.   rollback 取消处理
          start transaction ;
              DML
             DML1
          commit / rollback ;
  • 相关阅读:
    CORS(跨域)请求总结和测试
    使用parted 创建一个大于2T的分区
    Linux下网络设置
    Linux中文件查找,压缩和打包指令
    使用switchshow/supportshow命令确认Brocade交换机型号(转载)
    光纤交换机端口故障排查
    博科5300光纤交换机内存故障处理
    AIX用户和组管理
    AIX 逻辑卷简介
    AIX中文件系统管理
  • 原文地址:https://www.cnblogs.com/liuyuanq/p/11141729.html
Copyright © 2020-2023  润新知