数据操作(CUD)

插入数据

一次插入单条数据

  • 语法:

INSERT [INTO] 数据表名 [(字段名1[, 字段名2] ...)] {VALUES | VALUE} (值1) [, (值2)] ...;

  • 演示:

1、在数据库ems中创建员工表emp:

CREATE TABLE emp(
    empno   INT PRIMARY KEY,
    ename   VARCHAR(20) UNIQUE NOT NULL,
    job     VARCHAR(20) NOT NULL,
    mgr     INT comment '直接领导的工号',
    sal     DECIMAL(7,2),
    comm    DECIMAL(7,2) comment '奖金',
    deptno  INT  
) ;

2、向所有字段插入数据:

指定字段名:

INSERT INTO emp (`empno`,`ename`,`job`,`mgr`,`sal`,`comm`,`deptno`) 
    VALUES(9902,'赵六','分析员',9566,4000,NULL,20);

使用SELECT语句查询数据:

SELECT * FROM emp;

 也可以省略所有字段名:

INSERT INTO emp VALUES(9566,'李四','经理',9839,3995,NULL,20);

3、向部分字段插入数据:

INSERT INTO emp (empno,ename,job,sal,deptno)
    VALUES(9839,'刘一','董事长',6000,10);

4、字段的默认值等信息可以通过数据表的创建语句进行查看

SHOW CREATE TABLE emp\G

 执行结果:

  •  注意

如果某个字段在定义时添加了非空约束,但没有添加默认值约束,那么插入新数据时就必须为该字段赋值,否则数据库系统会提示错误。

  • 另一种语法

ININSERT INTO 数据表名SET 字段名1=值1[,字段名2=值2,…];

一次插入多条数据

  • 语法

INSERT [INTO] 数据表名 [(字段名1,字段名2,…) ] {VALUES | VALUE}(值1,值2,…),(值1,值2,…), … (值1,值2,…);

  • 演示
INSERT INTO emp
VALUES
(9499,'孙七','销售',9698,2600,300,30),
(9521,'周八','销售',9698,2250,500,30),
(9654,'吴九','销售',9698,2250,1400,30),
(9982,'陈二','经理',9839,3450,NULL,10),
(9988,'王五','分析员',9566,4000,NULL,20),
(9844,'郑十','销售',9698,2500,0,30),
(9900,'萧十一','保洁',9698,1050,NULL,30);

更新数据

更新数据是指对数据表中已经存在的数据进行修改。

  • 语法

UPDATE 数据表名 SET 字段名1 = 值1[,字段名2 = 值2,…] [WHERE 条件表达式];

  • 更新部分记录

UPDATE emp SET sal=sal+200 WHERE ename='张三';

UPDATE emp SET sal=sal+300 WHERE job='保洁';

  • 更新全部记录

UPDATE emp SET sal=sal+500;

删除数据

删除数据是指对数据表中已经存在的数据进行删除。

  • 语法

DELETE FROM 数据表名 [WHERE 条件表达式];

TRUNCATE [TABLE] 数据表名;

  • 删除部分数据

DELETE FROM emp WHERE ename='孙七';

DELETE FROM emp WHERE job='分析员';

  • 删除全部数据

DELETE FROM emp;
TRUNCATE emp;

  • TRUNCATE语句和DETELE语句的区别

1.DELETE语句是数据操纵语句,TRUNCATE语句通常被认为是数据定义语句。

2.DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分数据,而TRUNCATE语句只能用于删除表中的所有数据。 

3.DELETE 语句是逐行删除记录,而TRUNCATE语句则是直接删除数据表,再重新创建一个一模一样的新表。

4.使用TRUNCATE语句删除表中的数据后,再次向表中添加数据时,自动增加字段的默认初始值重新由1开始,而使用DELETE语句删除表中所有数据后,再次向表中添加数据时,自动增加字段的值为删除时该字段的最大值加1。

  • 演示上述第4条区别

1、创建一张表tab_truncate:

CREATE TABLE tab_truncate(
    id INT(3) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(4)
);

2、向tab_truncate表中添加5条记录

INSERT INTO tab_truncate(name) VALUES('A'),('B'),('C'),('D'),('E');

 3、删除tab_truncate表中的所有数据

TRUNCATE TABLE tab_truncate;

4、在空表tab_truncate 中,重新添加5条数据

INSERT INTO tab_truncate(name)VALUES('F'),('G'),('H'),('I'),('J');

执行后id从1开始。 

5、使用DELETE语句删除tab_truncate表中的所有数据

DELETE FROM tab_truncate;

 6、向tab_truncate数据表中添加一条新数据

INSERT INTO tab_truncate(name) VALUES('K');

执行后id从6开始。 

上机实践:图书表的数据操作

# 向图书表book中插入表3-1中的图书信息

name

price

state

Java基础入门(第3版)

59.00

'0'

# 向用户表user中批量插入表3-2中的用户信息

name

state

 张三

'0'

 李四

'0'

# 向图书表book中批量插入表3-3中的图书信息

name

price

state

三国演义

69.00

'2'

MySQL数据库入门

40.00

'0'

JavaWeb程序开发入门

49.00

'0'

西游记

59.00

'2'

红楼梦

33.00

'2'

水浒传

66.66

'2'

# 将图书表book中图书《西游记》状态修改为可借阅(state字段的值为0代表可借阅)

# 将图书表book中《水浒传》的价格修改为66.00

# 将图书表book中所有的图书价格下调10%

# 删除图书表中图书《红楼梦》

# 为编号为1的用户借阅图书《MySQL数据库入门》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值