当前位置: 首页 >数据库 > MySQL之day3

MySQL之day3

  1. 数据的插入  

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

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

    2. MySQL之day3 _ JavaClub全栈架构师技术笔记
      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  Waings: 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   DML1commit / rollback ;

         

作者:找工作好爽啊哈哈哈呜
来源链接:https://www.cnblogs.com/liuyuanq/p/11141729.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/database/118548.html

标签:1364:Field
分享给朋友:

“MySQL之day3” 的相关文章