Msql-DML语言的查询修改删除

插入语句

#DML语言
/*
数据操作语言:
	插入:insert
	修改:update
	删除:delete
*/
#一:插入语句

/*经典的插入(一)
语法:
		insert into 表名(列名,....)values(值1.....)
	1插入的值的类型要与列的类型一致或者兼容
	2不可以为null的列必须插入值,可以为null的列如何插入值
	3列表顺序可以调换
	4列表和值的个数必须一直
	5可以省略列明,默认所有列,并且列的顺序和表中列的顺序一直
*/
SELECT * FROM beauty;
#1插入的值的类型要与列的类型一致或者兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'盖世凯','男','2000-7-23','100',NULL,2)
#2不可以为null的列必须插入值,可以为null的列如何插入值
#方式一
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(14,'盖世凯','男','2000-7-23','100',NULL,2);
#方式二
INSERT INTO beauty(id,NAME,sex,phone)
VALUES(15,'金星','女','110');
#3列表顺序可以调换
INSERT INTO beauty(NAME,sex,id)
VALUES('刘毅','男','16')
#4列表和值的个数必须一直
INSERT INTO beauty(id,sex,NAME)
VALUES(17,'女','迪丽热巴')
#5可以省略列明,默认所有列,并且列的顺序和表中列的顺序一直
INSERT INTO beauty
VALUES(18,'张飞','男','2000-7-23','100',NULL,NULL)

/*经典的插入(一)
语法:
	insert into 表明
	set 列名=值,列名=值,.....

*/
INSERT INTO beauty
SET id=19,NAME='刘备',phone='122009884732983'


#两种方式大pk
#1方式一支持插入多行
INSERT INTO beauty
VALUES(20,'张飞','男','2000-7-23','100',NULL,NULL),
(21,'张飞','男','2000-7-23','100',NULL,NULL),
(22,'张飞','男','2000-7-23','100',NULL,NULL);

#2方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,phone)
SELECT 26,'高希希','123'

INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,'2134'
FROM boys WHERE id<3;

修改语句

#修改语句
/*
1.修改单表的记录(重点)
	update 表名			1
	set 列=新值,列=新值.....	3
	where 筛选条件			2
	
2.修改多表的记录(补充)
语法:
	192语法:
	update 表一 别名,表二 别名
	set 列=值....
	where 连接条件
	and 筛选条件
	
	199语法:
	update 表一 别名
	inner|left|right join 表二 别名
	on 连接条件
	set 列=值....
	where 筛选条件
*/
SELECT * FROM beauty
#修改电话号码
UPDATE beauty
SET phone='110'
WHERE NAME LIKE '苍老师';

#修改boys中id为2的名称为 盖世凯 魅力值为1000000
SELECT * FROM boys

UPDATE boys
SET boyName='盖世凯',userCP=100000
WHERE id=2;

#修改多表记录
SELECT * FROM boys
SELECT *FROM beauty
#修改张无忌的女朋友的手机号114
UPDATE boys bo
INNER JOIN beauty b ON b.`boyfriend_id`=bo.`id`
SET b.`phone`='114'
WHERE bo.`boyName`='张无忌';
#修改没有男朋友的女神男朋友编号都为2
UPDATE beauty b
LEFT JOIN boys bo ON b.`boyfriend_id`=bo.`id`
SET b.`boyfriend_id`=2
WHERE bo.`id` IS NULL;

删除语句

#删除语句
/*
方式一:delete
语法:1:单表的删除【*】
	delect from 表名 where 筛选条件
      2:多表的删除【补充】
	sq192语法:
		delect 表一的别名,表二的别名
		from 表一 别名,表二别名
		where 连接条件
		and 筛选条件
	sq199语法
		delect 表一的别名,表二的别名
		from 表一 别名
		inner|left|right join 表二 别名 on 连接条件
		where 筛选条件
		
方式二:truncate
语法:truncate table 表明;

*/
#方式一:delete
SELECT * FROM beauty
SELECT * FROM boys
#删除手机号以9结尾的女神信息(单表的删除)
DELETE FROM beauty WHERE phone LIKE '%7';
#删除黄晓明以及他的女朋友的信息(多表的删除)
DELETE bo,b
FROM beauty b
JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';
#方式二:truncate
#删除魅力值>100的男神信息(很快啊,一下子就没了没有过滤的条件)
TRUNCATE TABLE boys

#delete 和 truncate pk
/*
1,delete 可以添加筛选条件 truncate不可以
2,truncate 删除效率高
3,加入要删除表中有自增长列,
如果用delete删除之后,再插入数据,自增长列会从断点开始
如果用truncate 再插入数据,自增长列从1开始
4,truncate 没有返回值,delete 有返回值
5,truncate 删除后不可以回滚,delete 删除可以回滚

*/

INSERT INTO boys
VALUES (1,'盖世凯',100),(2,'盖世凯1',100),(3,'盖世凯2',100)

TRUNCATE TABLE boys
DELETE FROM boys

DML总的练习

#DML插入,修改,删除练习
#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表中插入下列数据
SELECT * FROM my_employees

DELETE FROM my_employees
#方式一
INSERT INTO my_employees
VALUES (1,'patel','Ralph','Rpatel',895),
(2,'patel','Ralph','Rpatel',860),
(3,'patel','Ralph','Rpatel',1100),
(4,'patel','Ralph','Rpatel',750),
(5,'patel','Ralph','Rpatel',1550);
#方式二
INSERT INTO my_employees
SELECT 1,'patel','Ralph','Rpatel',895 UNION
SELECT 2,'patel','Ralph','Rpatel',860 UNION
SELECT 3,'patel','Ralph','Rpatel',1100 UNION
SELECT 4,'patel','Ralph','Rpatel',750 UNION
SELECT 5,'patel','Ralph','Rpatel',1550;

#4向users表中插入数据
SELECT * FROM users

INSERT INTO users
VALUES(1,'Rapatel',10),
(2,'Rapatel',10),
(3,'Rapatel',20);

#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的users表和my_employees表的记忆全部删除
DELETE u,m
FROM users u
JOIN my_employees m ON u.`userid`=m.`Userid`
WHERE u.userid='Bbiri'

#8清除所有数据
DELETE FROM my_employees;
DELETE FROM users;

#9检查所作的修正
SELECT * FROM my_employees
SELECT * FROM users
#10清空表my_employees
TRUNCATE TABLE my_employees
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值