山西农业大学20240830

一. 数据操作语言(DML)

DML是对表中的数据进行操作的语言, 涉及到的关键字 INSERT, UPDATE, DELETE

  • INSERT: 向表中插入新数据的语句
  • UPDATE: 修改表中数据的语句
  • DELETE: 删除表中数据的语句

前期准备

SHOW DATABASES ;
# 准备工作
CREATE DATABASE mydb CHARSET=UTF8;
USE mydb;
CREATE TABLE person(
    id INT,
    name CHAR(8),
    age INT
)CHARSET=UTF8;
SHOW TABLES;
DESC person;

1. 插入数据 -INSERT

1.1 全列插入

在INSERT语句中不指定字段时,为全列插入,此时要求VLAUES字句后面 指定值的个数,顺序,类型必须表结构中的字段完全一致

INSERT INTO 表名 VALUES(值1,值2 ...);
要求VLAUES字句中指定的值必须与表结构一致

# 向person表中插入1条数据
INSERT INTO person VALUES (1,'hanmm',12);

# 补充: 查询语句
SELECT * FROM person;
1.2 选择字段插入

INSERT INTO 表名(字段1,字段2,字段3...) VLAUES(值1,值2,值3...)
向表中插入一条数据, 将值1插入到字段1中,将值2插入到字段2中…

# 向person表中插入数据
INSERT INTO person(id,name) VALUES(2,'lilei');
INSERT INTO person(name,age) VALUES ('lucy',18);
INSERT INTO person(id,age) VALUES (4,20)

注意:

  1. 在数据库中, 字符串的字面量使用’单引号括起来的’
  2. 在INSERT语句中, 指定的字段与VLAUES后面指定的值的顺序,个数,类型要完全一致
  3. 在INSERT语句中字段指定时的顺序和个数可以与表结构定义时不一致
1.3 批量插入

一次性在数据表中插入多条数据
INSERT INTO 表名(字段...) VLAUES(第一组值),(第二组值),(....);

# 一次性插入三条数据
INSERT INTO person(id,name,age) VALUES(5,'阿猫',2),(6,'阿狗',1),(7,'小黑',3);

2. 默认值

INSERT语句指定字段时,忽略的字段会被插入默认值; 当表中字段没有被明确指定默认值时,默认值一律为null
使用 DEFAULT 关键字来指定默认值,可以在创建表时, 也可以在修改表时执行

2.1 创建表时指定默认值
CREATE TABLE person(
    id INT,
    name CHAR(8) DEFAULT '无名氏',
    age INT
)CHARSET=UTF8;
2.2 修改表时指定默认值 - MODIFY

ALTER TABLE 表名 MODIFY 字段名 字段类型 DEFAULT 默认值;

ALTER TABLE person MODIFY age INT DEFAULT 18;
2.3 练习

1.创建数据库 graduationpro(毕业设计)字符集UTF8并使用
2.创建表js_school_student_content(毕业设计成果汇报展览及评价),包括
id(int) studentId(INT) className(VARCHAR(32)),
student_name(VARCHAR(32)) title(VARCHAR(32))
3. 查看表结构
4.在js_school_student_content表中全列插入1条数据, 并查询是否插入成功
5.在js_school_student_content表中,指定id,studentId.className字段, 插入两条数据,并查询
6.在修改表时修改title的默认值(XXXX管理系统);

# 1.创建数据库 graduationpro(毕业设计)字符集UTF8并使用
CREATE DATABASE graduationpro CHARSET=UTF8;
USE graduationpro;
# 2.创建表js_school_student_content(毕业设计成果汇报展览及评价),包括
# id(int)  studentId(INT) className(VARCHAR(32)),
# student_name(VARCHAR(32)) title(VARCHAR(32))
CREATE TABLE  js_school_student_content(
   id INT COMMENT '编号',
   studentId INT COMMENT '学生id',
   classNname VARCHAR(32) COMMENT '专业',
   student_name VARCHAR(32) COMMENT '学生姓名',
   title VARCHAR(32) COMMENT '毕设标题'
)CHARSET=UTF8;
DESC js_school_student_content;

# 全列插入
INSERT INTO js_school_student_content VALUES
(1,20240101,'软件工程','张三','二手图书后台管系统');

# 指定字段插入
INSERT INTO js_school_student_content(id,studentId,classNname)
VALUES (2,20240102,'计算机科学与技术');

# 修改title默认值
ALTER TABLE js_school_student_content MODIFY title VARCHAR(32) DEFAULT '管理系统';

# 查询
SELECT * FROM js_school_student_content;

3. 更新数据 - UPDATE

修改表数据

3.1 语法

UPDATE 表名
SET 字段1=新值,字段2=新值, …
[WHERE 过滤条件]

# 修改用户的年龄  --- 全部为28岁
UPDATE person SET age = 28;

注: 当UPDATE语句中不添加WHERE子句, 会将表中所有的记录进行修改, 这种操作在开发很少见

3.2 WHERE字句

当UPDATE语句添加了WHERE子句时, 只有满足where子句要求的记录才会被修改

# 将lilei年龄修改为18岁
UPDATE person SET age = 18 WHERE id=2;
# 数据库中在修改记录时对表是逐行进行, 每一行是否修改取决于该行的记录是否满足WHERE子句的条件
# 将年龄大于20岁的人年龄修改为20岁
UPDATE person SET age = 20 WHERE age>20;

WHERE子句的基础条件

基础条件: >, >=, <,<=,=,!=

# 将年龄大于15岁的人改为20岁
UPDATE person SET age=20 WHERE age>15;

使用表达式修改数据

# 将每个人的年龄涨一岁
UPDATE person SET age = age+1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值