一、 插入数据
1. 向表中所有字段插入数据
(1) 指定所有字段及其相对应的值
insert into 表名(字段1,字段2,……) values(字段值1,字段值2,……);
**【案例】**向goods表中插入一条新记录
步骤1: 执行以下语句,选择数据库db_shop。
use db_shop;
步骤2: 执行以下语句,向goods表中插入一条新记录。
insert into goods(id,type,name,price,num,add_time) values(1,'书籍','西游记',50.4,20,'2018-01-01 13:40:40');
步骤3: 插入成功后执行SQL语句,查看表中的所有记录。
select * from goods;
(2) 不指定字段只列出字段值
insert into 表名 values (字段值1,字段值2,……);
步骤1: 选择数据库db_shop后,执行以下语句向goods表中插入一条新记录。
insert into goods values(2,'糖类','牛奶糖',7.5,200,'2018-02-02 13:40:40');
注意!!!
(1) 指定所有字段:字段顺序可以不按照表中字段顺序排列,字段值和字段之间一一对应既可
(2) 不指定所有字段:字段值必须和表中字段顺序一致
(3) 当插入值的数据类型为字符串和日期时,需要将值包含在英文格式的引号中
(4) 当插入值的数据类型为enum和set时,插入的值必须是预定义列表中的一个值。如果插入的值不在列表中,MySQL将会报错
2. 向表中指定字段插入数据
insert into 表名(字段1,字段2,……) values(字段值1,字段值2,……)
【案例】 向goods表中指定字段插入数据
步骤1: 选择数据库db_shop后,执行以下语句向goods表中插入记录。
insert into goods(type,name,price) values('糖类','水果糖',2.5);
步骤2: 插入成功后查看数据。
select * from goods;
3. 同时插入多条数据
insert into 表名(字段1,字段2,……) values(字段值1,字段值2,……),(字段值1,字段值2,……), (字段值1,字段值2,……);
**【案例】**向goods表中插入多条记录。
步骤1: 选择数据库db_shop后,执行以下语句向goods表中插入多条记录。
INSERT INTO goods(id,type,name,price,num,add_time) VALUES
(4,'服饰','休闲西服',800,null,'2016-04-04 13:40:40'),
(5,'饮品','果汁',3,70,'2016-05-05 13:40:40'),
(6,'书籍','论语',109,50,'2016-06-06 13:40:40');
步骤2: 插入成功后查看数据。
select * from goods;
4.查看表中的数据:
select * from 表名;
总结:
(1)当字段设置了自增约束时,系统会根据记录的顺序自动生成对应的编号(id);
(2)当字段设置了默认约束时,插入数据的时候,该字段没有赋值,系统会将该字段的值)设置成对应的默认值;
(3)当字段没有设置默认值约束和自增约束时,插入数据的时候,该字段没有赋值,系统会将该字段的值设置成null;
(4)当字段设置了非空约束时,插入数据的时候,必须给该字段赋值。
4. 将其他表中的数据插入表中
insert into 表1(字段1,字段2,……) select 字段1,字段2,…… from 表2;
【案例】将goods表中的数据插入到new_goods表中。
步骤一: 选择数据库db_shop后,执行以下语句创建new_goods表,其表结构与goods表相同。
CREATE TABLE new_goods (
id INT(11) PRIMARY KEY AUTO_INCREMENT,
type VARCHAR(30) NOT NULL,
name VARCHAR(30) UNIQUE,
price DECIMAL(7,2) UNSIGNED,
num INT(11) DEFAULT 0,
add_time DATETIME
);
步骤2: 执行以下SQL语句,将goods表中的数据插入到new_goods表中。
INSERT INTO new_goods(id,type,name,price,num,add_time)
SELECT id,type,name,price,num,add_time FROM goods;
步骤3: 插入成功后查看数据,结果如下所示。
select * from new_goods;
某些情况下,只需要将表中部分字段的数据插入到另一张表中,此时可以通过以下方法实现。
**【案例】**创建新表test_goods,并插入数据。
步骤1: 选择数据库db_shop后,执行以下语句创建test_goods表。
CREATE TABLE test_goods(
g_id INT(11) PRIMARY KEY AUTO_INCREMENT,
g_name VARCHAR(30) UNIQUE,
g_price DECIMAL(7,2) UNSIGNED
);
**步骤2:**执行以下语句,将goods表中id,name和price字段的数据插入到test_goods表中。
INSERT INTO test_goods(g_id,g_name,g_price)
SELECT id,name,price FROM goods;
- 两张表的字段名可以不一样,但数据类型必须一样。
- 插入数据时,SQL语句中的字段顺序可以与表中的字段顺序不同,但两张表中的字段顺序必须一一对应
二、 修改数据
修改表中某个字段的字段值
1.修改所有数据某个字段值
update 表名 set 字段名1=新字段值1,字段名2=新字段值2,……;
**【案例】**修改goods表中的num值。
步骤1: 选择数据库db_shop后,执行以下语句将goods表中的num值统一修改为“0”。
UPDATE goods SET num=0;
步骤2: 修改成功后查看数据,结果如下所示。
SELECT * FROM goods;
2.修改指定数据某个字段值
update 表名 set 字段名1=新字段值1,字段名2=新字段值2,…… where 条件;
**【案例】**修改goods表中指定数据。
步骤1: 选择数据库db_shop后,执行以下语句,修改goods表中type值为“书籍”的记录,将其num值修改为“10”。
UPDATE goods SET num=10 WHERE type='书籍';
步骤2: 修改成功后查看数据
SELECT * FROM goods;
三、 删除数据
1. 删除表中所有数据
delete from 表名;
【案例】 删除new_goods表中所有数据。
步骤1: 选择数据库db_shop后,执行以下语句删除new_goods表中所有数据。
DELETE FROM new_goods;
步骤2: 删除成功后查询数据,结果如下所示。
SELECT * FROM new_goods;
2. 删除指定数据
delete from 表名 where 条件;
【案例】删除goods表中id值大于5的记录。
步骤1: 选择数据库db_shop后,执行以下语句删除goods表中id值大于5的记录。
DELETE FROM goods WHERE id>5;
步骤2: 删除成功后查询数据,结果如下所示。
SELECT * FROM goods;