添加数据
create table demo.goodsmaster
(itemnumber int not null primary key auto_increment,
barcode text not null,
goosname text not null,
specification text,
unit text,
price decimal(10,2) not null
);
describe demo.goodsmaster;
insert into 表名[(字段名,[,字段名]...)] values (值的列表)
插入一条数据记录的时候,只给部分字段赋值,原因就在于我们对字段的定义的方式。也就是约束。
插入查询结果
insert into 表名 (字段名)
select 字段名或值 from 表名 where 条件
给一张数据表插入一条数据记录的时候,可以给所有的字段赋值,也可以给部分字段赋值。这个取决于字段的定义约束。如果字段不能为空并且没有默认值,就必须赋值。另外,我们还可以通过把一个查询的结果插入数据表中的方式,提高添加数据的效率。
删除数据
delete from 表名 where 条件
workbench 自动处于安全模式,它要求对数据的删除或修改操作必须包含where条件。而且这个where条件中,必须用到主键约束或者唯一约束的字段。mysql这种安全设置,主要就是为了防止删除或者修改数据时出现误操作,导致删除或修改了不相关的数据。
修改数据
update 表名 set 字段名=值 where 条件
需要注意的一点就是,不要修改主键字段的值。因为主键是数据记录的唯一标识,如果修改了主键的值,就是可能会破坏数据的完整性。必须要修改主键的值,有可能就是主键设置的不合理。
查询数据
select *|字段列表 from 数据源 where 条件 group by 字段 having 条件 order by 字段 limit 起始点,行数
- group by 作用是告诉mysql 查询结果要如何分组,经常与mysql的聚合函数一起使用。
- having 用于筛选查询结果,跟where类似。
FROM
from 关键字表示查询的数据源。单个数据表 数据表联接。数据源也不一定是表,也可以是一个查询的结果。
括号的部分叫做派生表,或者子查询(subquery),意思是我们把一个查询结果数据集当作一个虚拟的数据表来看待。mysql规定 必须要用 AS关键字给这个派生表起一个别名。这里我们起的别名 a。select a.goodsname,a.price from (select * from demo.goodsname) AS a;
ORDER BY
ORDER BY 的作用 是告诉MySQL 查询结果如何排序。ASC表示升序,DESC表示降序。LIMIT
LIMIT的作用是告诉MySQL只显示部分查询的结果。
select * from demo.goodsmaster limit 1,2;
mysql中起始位置的起点是0,1表示从第2条记录开始。 2 表示2条数据。
总结
INSERT INTO 表名 [(字段名 [,字段名] ...)] VALUES (值的列表);
INSERT INTO 表名 (字段名)
SELECT 字段名或值
FROM 表名
WHERE 条件
DELETE FROM 表名
WHERE 条件
UPDATE 表名
SET 字段名=值
WHERE 条件
SELECT *|字段列表
FROM 数据源
WHERE 条件
GROUP BY 字段
HAVING 条件
ORDER BY 字段
LIMIT 起始点,行数
重复字段
INSERT INTO demo.goodsmaster
SELECT *
FROM demo.goodsmaster1 as a
ON DUPLICATE KEY UPDATE barcode = a.barcode,goodsname=a.goodsname;
-- 运行结果如下
mysql> SELECT *
-> FROM demo.goodsmaster;
+------------+---------+-----------+---------------+------+------------+
| itemnumber | barcode | goodsname | specification | unit | salesprice |
+------------+---------+-----------+---------------+------+------------+
| 1 | 0001 | 教科书 | 16开 | 本 | 89.00 |
| 2 | 0002 | 笔 | 10支装 | 包 | 5.00 |
| 3 | 0003 | 橡皮 | NULL | 个 | 3.00 |
| 4 | 0004 | 馒头 | | | 1.50 |
+------------+---------+-----------+---------------+------+------------+
4 rows in set (0.00 sec)