添加数据

  1. create table demo.goodsmaster
  2. (itemnumber int not null primary key auto_increment,
  3. barcode text not null,
  4. goosname text not null,
  5. specification text,
  6. unit text,
  7. price decimal(10,2) not null
  8. );
  9. describe demo.goodsmaster;
  1. insert into 表名[(字段名,[,字段名]...)] values (值的列表)

插入一条数据记录的时候,只给部分字段赋值,原因就在于我们对字段的定义的方式。也就是约束。

插入查询结果

  1. insert into 表名 (字段名)
  2. select 字段名或值 from 表名 where 条件

给一张数据表插入一条数据记录的时候,可以给所有的字段赋值,也可以给部分字段赋值。这个取决于字段的定义约束。如果字段不能为空并且没有默认值,就必须赋值。另外,我们还可以通过把一个查询的结果插入数据表中的方式,提高添加数据的效率。

删除数据

  1. delete from 表名 where 条件

workbench 自动处于安全模式,它要求对数据的删除或修改操作必须包含where条件。而且这个where条件中,必须用到主键约束或者唯一约束的字段。mysql这种安全设置,主要就是为了防止删除或者修改数据时出现误操作,导致删除或修改了不相关的数据。

修改数据

  1. update 表名 set 字段名=值 where 条件

需要注意的一点就是,不要修改主键字段的值。因为主键是数据记录的唯一标识,如果修改了主键的值,就是可能会破坏数据的完整性。必须要修改主键的值,有可能就是主键设置的不合理。

查询数据

  1. select *|字段列表 from 数据源 where 条件 group by 字段 having 条件 order by 字段 limit 起始点,行数
  1. group by 作用是告诉mysql 查询结果要如何分组,经常与mysql的聚合函数一起使用。
  2. having 用于筛选查询结果,跟where类似。

    FROM

    from 关键字表示查询的数据源。单个数据表 数据表联接。数据源也不一定是表,也可以是一个查询的结果。
    1. select a.goodsname,a.price from (select * from demo.goodsname) AS a;
    括号的部分叫做派生表,或者子查询(subquery),意思是我们把一个查询结果数据集当作一个虚拟的数据表来看待。mysql规定 必须要用 AS关键字给这个派生表起一个别名。这里我们起的别名 a。

    ORDER BY

    ORDER BY 的作用 是告诉MySQL 查询结果如何排序。ASC表示升序,DESC表示降序。

    LIMIT

LIMIT的作用是告诉MySQL只显示部分查询的结果。

  1. select * from demo.goodsmaster limit 1,2;

mysql中起始位置的起点是0,1表示从第2条记录开始。 2 表示2条数据。

总结

  1. INSERT INTO 表名 [(字段名 [,字段名] ...)] VALUES (值的列表);
  2. INSERT INTO 表名 (字段名)
  3. SELECT 字段名或值
  4. FROM 表名
  5. WHERE 条件
  6. DELETE FROM 表名
  7. WHERE 条件
  8. UPDATE 表名
  9. SET 字段名=值
  10. WHERE 条件
  11. SELECT *|字段列表
  12. FROM 数据源
  13. WHERE 条件
  14. GROUP BY 字段
  15. HAVING 条件
  16. ORDER BY 字段
  17. LIMIT 起始点,行数

重复字段

  1. INSERT INTO demo.goodsmaster
  2. SELECT *
  3. FROM demo.goodsmaster1 as a
  4. ON DUPLICATE KEY UPDATE barcode = a.barcode,goodsname=a.goodsname;
  5. -- 运行结果如下
  6. mysql> SELECT *
  7. -> FROM demo.goodsmaster;
  8. +------------+---------+-----------+---------------+------+------------+
  9. | itemnumber | barcode | goodsname | specification | unit | salesprice |
  10. +------------+---------+-----------+---------------+------+------------+
  11. | 1 | 0001 | 教科书 | 16 | | 89.00 |
  12. | 2 | 0002 | | 10支装 | | 5.00 |
  13. | 3 | 0003 | 橡皮 | NULL | | 3.00 |
  14. | 4 | 0004 | 馒头 | | | 1.50 |
  15. +------------+---------+-----------+---------------+------+------------+
  16. 4 rows in set (0.00 sec)