MySQL -DML数据操作语言

DML语言

数据操作语言:

插入: insert
修改: update
删除: delete

一、插入语句

方式一:
语法:
insert into 表名(列名…)
values(值1, …);
特点:支持插入多行,支持查询子集

SELECT * FROM beauty; 

1.插入的值的类型要与列的类型一致或兼容

INSERT INTO beauty (id, NAME, sex, borndate, phone , photo, boyfriend_id)
VALUES(13, '唐艺昕', '女', '1990-4-23', '1898888888' , NULL,2) ;

2.不可以为nul1的列必须插入值。可以为nul1的列如何插入值?

INSERT INTO beauty(id, NAME, sex, borndate, phone, photo, boyfriend_id)
VALUES(13, '唐艺昕', '女', '1990-4-23', '1898888888' ,NULL,2) ;
INSERT INTO beauty (id, NAME, sex, borndate, phone, boyfriend_id)
VALUES(14, '金星', '女', '1990-4-23', '13888888881',9) ;

3.列的顺序可以调换,必须一一对应

INSERT INTO beauty (NAME, sex, id, phone)
VALUES('蒋欣','女',16, '110') ;

4.列数和值的个数必须一致,不一致会报错

INSERT INTO beauty(NAME, sex, id, phone)
VALUES('关晓彤', '女',17, '110') ;

5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序- - -致

INSERT INTO beauty
VALUES(18, '张飞', '男',NULL, '119' , NULL, NULL) ;

方式二:

语法:
insert into 表名
set列名=值,列名=值, …

INSERT INTO beauty
SET id=19, NAME='刘涛' , phone='999';

二、修改语句

1.修改单表的记录
语法:
update 表名
set 列=新值,列=新值, …
where 筛选条件;

2.修改多表的记录[补充]

语法:
sq192语法:
update 表1 别名,表2 别名
set 列=值…
where 连接条件
and 筛选条件;

sq199语法:
update 表1 别名
inner inner/left/right join 表2 别名
on 连接条件
set 列=值…
where 筛选条件;

*/

1.修改单表的记录
#案例1: 修改beauty表中姓刘的女神电话为18666668888

UPDATE beauty SET phone = '18666668888'
WHERE NAME like '刘%';

#案例2:修改boys表中id好为2的名称为张飞,魅力值10

UPDATE boys SET boyname='张飞' ,usercp=10
WHERE id=2;

2.修改多表的记录

#案例1:修改唐艺昕的男朋友的userCP为100

UPDATE beauty 
inner join boys
on beauty.boyfriend_id = boys.id
SET userCP = 100
where name = '唐艺昕';

#案例2:修改没有男朋友的女神的男朋友编号都为2号

UPDATE boys bo
RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
SET b. boyfriend_id=2
WHERE bo.id IS NULL;
SELECT * FROM boys;

三、删除语句

/*
方式一: delete
语法:
1、单表的删除[★]
delete from 表名 where 筛选条件
2、多表的删除[补充]
sq192语法:
delete 表1的别名/表2的别名
from 表1别名,表2别名.
where 连接条件
and 筛选条件;
sq199语法:
delete 表1的别名/表2的别名
from 表1别名
inner/left/right join 表2别名 on 连接条件
where 筛选条件;

方式二: truncate 删除整个表的所有内容,相当于清空
语法: truncate table 表名;

delete 和 truncate 比较

1.delete可以加where条件,truncate不能加
2. truncate删除, 效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始, (可理解为序号,从哪删从哪加)
而truncate删除后,再插入数据,自增长列的值从1开始。(从头加)
4. truncare删除没有返回值,delete删除有返回值(返回删除行数)
5. truncate删除不能回滚,delete删除可以回滚.

*/

方式一: delete
1.删除单表
#删除id=17的女神信息

DELETE FROM beauty 
WHERE
    id = 17;

2.删除多表
#删除张飞的女朋友中id=19的女神信息

delete beauty from boys inner join beauty on beauty.boyfriend_id = boys.id
where beauty.id = 19;

3.TEST测试

#1.运行以下脚本创建表my_ employees

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 895
2 Dancs Betty Bdancs 860
3 BirI Ben Bbiri 1100
4 Newman Chad Cnewman 750
5 Ropeburn Audrey Aropebur 1550
*/

insert into my_employees
value(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');

#4.向users表中插入数据
/*
1 Rpatel 10
2 Bdancs 10
3 Bbiri 20
4 Cnewman 30
5 Aropebur 40
*/

insert into users
value(1,'Rpatel',10),
	(2,'Bdancs',10),
	(3,'Bbiri',20),
	(4,'Cnewman',30),
	(5,'Aropebur',40);

#5. 将3号员工的last_name修改为“drelxer"

UPDATE my_employees SET last_name='drelxer' WHERE id = 3;

#6.将所有工资少于900的员工的工资修改为1000 I

UPDATE my_employees  SET SALARY = 1000
WHERE SALARY <900; 

#7.将userid为Bbiri 的users表和my_employees表的记录全部删除

DELETE users,my_employees from users inner join my_employees on users.userid = my_employees.Userid
where users.userid = 'Bbiri';

#8.删除所有数据

DELETE from  users;
DELETE from  my_employees;

#9.检查所作的修正

select * from users;
select * from my_employees;

#10.清空表my_employees

TRUNCATE  TABLE my_employees;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值