3、DML数据操作语言

文章目录

DML数据操作语言

#DML数据操作语言
/*
涉及到的关键字:insert、delete、update,对表中的数据进行增删改
*/
#一、数据的插入
/*
语法:
insert into 表名(字段1,字段2,...) values (值1,值2,...), (值1',值2',...),...;

特点:
1、字段和值列表必须一一对应,包含类型、约束等必须匹配;
2、数值型的值,不用使用单引号,但是非数值型的值,必须使用单引号;
3、字段顺序没有要求;
*/
INSERT INTO major(id, majorname) VALUES (1, 'Java'), (2, 'JavaScript'), (3,'SQL');

INSERT INTO stu_info(id,NAME,email,borndate,majorid,age)
VALUES (1, '张三', 'zhangsan@163.com', '1999-9-9', 1, 23),
(2, '李四', 'lisi@163.com', '2000-1-1', 2, 24);


-- 如果是插入所有字段,那么可以 insert into 表名 values ();

INSERT INTO stu_info VALUE(3, '王五', 'wangwu@qq.com', CURDATE(), 3, 25);
#value 只能插入单行
INSERT INTO stu_info VALUES (4, '赵六', 'zhaoliu@qq.com', NOW(), 1, 26);
#values 可以插入多行


#二、自增长列
CREATE TABLE IF NOT EXISTS student (
	id INT NOT NULL AUTO_INCREMENT,
	NAME VARCHAR(20),
	PRIMARY KEY(id)
);

INSERT INTO student VALUES(NULL, '幺鸡');
INSERT INTO student VALUES(NULL, '白板');
INSERT INTO student(NAME) VALUES('陈末'), ('猪头');

SELECT * FROM student;
/*
id	name
1	幺鸡
2	白板
3	陈末
4	猪头
*/

/*
1、自增长列要求设置在一个键上,比如主键或者唯一键;
2、自增长列要求数据类型为数值型;
3、一个表至多有一个自增长列;
*/


SHOW VARIABLES LIKE '%auto_increment%';
/*
Variable_name			Value
auto_increment_increment	1
auto_increment_offset		1
*/
#默认起始索引1,步长1


#三、数据的修改
/*
1、修改单表的记录
update 表名 set 字段1 = 值1, 字段2 = 值2, .... where 筛选条件;

2、修改多表的记录(级联更新)
update 表1 别名
[连接类型] join 表2 别名
on 连接条件
set 字段1 = 值1, ...
where 筛选条件
*/
UPDATE stu_info SET NAME = '小容', age = 18 WHERE id = 4;

#修改黄晓明的女朋友的手机号(内联)
USE girls;
UPDATE boys
JOIN beauty
ON boys.`id` = beauty.`boyfriend_id`
SET beauty.`phone` = '18888888888'
WHERE boys.`boyName` = '黄晓明';


#四、数据的删除
/*
方式一:
	delete from 表名; 代表表中所有数据都删除
	delete from 表名 where 筛选条件;
方式二:
	truncate table 表名; 删除表中所有数据
*/

DELETE FROM student WHERE id >= 4;

TRUNCATE TABLE student;

/*
delete 和 truncate 的区别
1、delete可以添加where条件,truncate不能添加where条件;
2、truncate效率较高,没有逐行判断,属于删除这张表,然后新建一个结构相同的表;
3、使用delete删除后添加记录,记录从删除前的断点处开始增长;
   使用truncate删除后添加记录,记录从1开始增长;
4、delete删除数据会返回受影响的行数,truncate删除数据不会返回受影响的行数
5、delete删除数据支持事务的回滚,truncate删除数据不支持事务回滚
*/
DELETE FROM student;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值