语法:
insert into 表名(字段名,...) values(值,...);
特点:
1、要求值的类型和字段的类型要一致或兼容
2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致,既:可以调换
但必须保证值和字段一一对应
3、不可以为null的值必须插入值,可以为null的值插入方式有两种:
①字段和值都省略
②字段写上,值使用null
4、列数和值的个数必须一致
5、可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致。
案例:向beauty表中插入一条数据
id- int(11) | name -varchar(50) | sex-char(1)-Nullable | borndate-datetime | phone-varchar(11) | photo-blob | boyfriend_id-int(11) |
---|---|---|---|---|---|---|
1 | 热巴 | 女 | 1993-02-03 | 13389087890 | Null | 3 |
2 | 周冬雨 | 女 | 1993-08-08 | 18888888889 | Null5 | 5 |
3 | 杨紫 | 女 | 1993-07-09 | 19993334567 | Null | 2 |
4 | 关晓彤 | 女 | 1994-08-10 | 15910456677 | Null | 4 |
5 | 郑爽 | 女 | 1991-10-18 | 13603467890 | Null | 1 |
方式一:
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(6,'娜扎','女','1990-05-06','17789034568',NULL,6);
方式二:
语法:
insert into 表名
set 字段=值,字段=值,.......
insert into beauty
set id = 15,name="李小萌",phone="15890927869";
方式一与方式二的区别
1、方式一支持插入多行,方式二不支持
insert into 表名【(字段名,..)】 values(值,..),(值,...),...;
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(18,'娜扎','女','1990-05-06','17789034568',NULL,2),
(16,'宋茜','女','1991-07-06','17889034568',NULL,8);
2、方式一支持子查询,方式二不支持
insert into 表名
查询语句;
insert into beauty(id,name,phone)
select 26,'Emily','13381267890'
修改单表的记录
语法
update 表名
set 字段=新值,字段=新值......
where 筛选条件;
案例:修改beatury表中姓周的女神电话为13909890876
UPDATE beauty
SET phone = '13909890876'
WHERE NAME LIKE '周%';
修改多表的记录
也叫级联修改
sql92语法:
update 表名1 别名1,表名2 别名2
set 列=值,.....
where 连接条件
and 筛选条件
sql99语法
update 表名1 别名
inner join 表名2 别名
on 连接条件
set 字段=值,字段=值.....
where 筛选条件
方式一:delete
删除单表的记录
delete from 表名 where 筛选条件 【limit条目数】
案例1:删除beauty表中手机号最后一位是9 的女神信息
delete from beauty where phone like '%9';
多表删除【级联删除】
sql-92语法:
delete 表1的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件
sql-99语法:
delete 表1的别名,表2的别名
from 表1 别名
inner join 表2 别名
on 连接条件
where 筛选条件
案例:删除张无忌的女朋友信息
delete b
from beauty b
inner join boys bo
on b.boyfriends_id=bo.id
where bo.boyName="张无忌";
方式二、使用truncate删除
删除整张表
truncate table 表名;
数据库的增删改练习
#1、运行以下脚本创建表my_employees
USE myemployees; //在当前这个库中创建两张表
CREATE TABLE my_employees(
Id INT(10),
First_name VARCHAR(10),
Last_name VARCHAR(10),
Userid VARCHAR(10),
Salary DOUBLE(10,2)
);
CREATE TABLE users(
id INT,
userid VARCHAR(10),
department_id INT
);
#2、显示表my_employees的结构
desc my_employees;
#3、向my_employees表中插入下列数据
id | first_name | last_name | Userid | salary |
---|---|---|---|---|
1 | patel | Ralph | Rpatel | 894 |
2 | Dance | Betty | Bdancs | 865 |
3 | Biri | Ben | Bbiri | 1100 |
4 | Newman | Chad | Cnewman | 750 |
5 | Ropeburn | Alpaha | Aropebur | 1550 |
INSERT INTO my_employees
VALUES(1,'patel','Ralph','Rpatel',895),
(2,'Dancs','Betty','Bdancs',860),
(3,'Biri','Ben','Bbiri',1100),
(4,'Newman','Chad','Cnewman',750),
(5,'Ropeburn','Audrey','Aropebur',1550);
select * from my_employees;
#或者用方式二
INSERT INTO my_employees
SELECT 1,‘patel’,‘Ralph’,‘Rpatel’,895 UNION
SELECT 2,‘Dancs’,‘Betty’,‘Bdancs’,860 UNION
SELECT 3,‘Biri’,‘Ben’,‘Bbiri’,1100 UNION
SELECT 4,‘Newman’,‘Chad’,‘Cnewman’,750 UNION
SELECT 5,‘Ropeburn’,‘Audrey’,‘Aropebur’,1550;
#4、向users表中插入数据
id | userid | department_id |
---|---|---|
1 | Rpatel | 10 |
2 | Rpatel | 10 |
3 | Bbiri | 20 |
4 | Cnewman | 30 |
insert into users
value(1,“Rpatel”,10),(2,“Bdancs”,10),
(3,“Bbiti”,20),(4,“Cnewman”,30);
select * from users;
#5、将3号员工的last_name修改为“drelxer”
update my_employees
set last_name=“drelxer” where id=3;
#6、将所有工资少于900的员工的工资修改为1000
update my_employees
set salary =1000
where salary <900;
#7、将userid为Bbiri的user表和my_employees表的记录全部删除
delete u,e
from users u
inner join my_employees e
on u.user_id=e.Userid
where u.userid
=“Bbiri”;
#8、删除所有数据
delete from my_employees;
delete from users;
#10、清空表my_employees
truncate table my_employees;