MySQL数据库中SQL语句的基本使用(二)

本文详细介绍了SQL中的DCL操作,包括INSERT、UPDATE、DELETE等关键字的使用方法及注意事项,通过实例展示了如何进行数据的增删改查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇文章主要介绍了DDL,主要是对数据库 、数据表、以及表中字段的修改等等。今天我要介绍的是DCL操作,主要是对数据表进行增、删、改、查等操作。对应的关键字为insert 、delete、update、select,所以不要和DDL混淆。

1、INSERT(插入操作)

insert是对已有的数据表中添加数据,基本的语法如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

其中insert…values和insert…set这两种方式是插入已经存在的数据,而insert…select是从其他表中选取的行作为数据。实际中常用插入语句为insert…values。
下面则举例向上一篇创建的数据库student中添加数据。

insert into (id,name,birthday,age,resume) values
(1,bob,2010-1-1,12.0,null);

也可以做批量插入数据:

insert into student values
(2,'ss','2015-09-01',10.0,NULL),
(3,'pp','2015-09-01',11.0,NULL),
(4,'lee','2015-09-01',12.0,NULL);

在插入数据是要注意一下几点:

1. 数据表中的列名和列值顺序、数据类型、个数要一一对应。
2. 列值不要超过定义的数据范围
3. 如果添加空值,请填写null
4. 插入日期和字符串都要用‘’
2.UPDATE(修改操作)

基本语法为:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT row_count]

update语句可以用新值更新原有表行中的各列。set子句指示要修改那些列和要给予那些值。where子句指定应更新那些行。如果没有where子句,则更新所有的行。如果指定了order by子句,则按照被指定的顺序对行进行更新。limit子句用于给定一个限定值,限制被更新的行的数目。

将student表中所有记录的age字段改成18.0:

update student set age = 18.0;

没修改之前结果如下:

这里写图片描述

修改之后的结果如下:

这里写图片描述

修改某条记录中的字段值,例如修改id=1的这条记录的age值

update student set age = 12.0 where id = 1;

修改之后的结果如下所示:

这里写图片描述

3.delete (删除操作)

删除操作的基本语法如下:

单表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT row_count]
多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*] ...]
    FROM table_references
    [WHERE where_definition]
或:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*] ...]
    USING table_references
    [WHERE where_definition]

tbl_name中有些行满足由where_definition给定的条件。DELETE用于删除这些行,并返回被删除的记录的数目。delete主要是删除表中记录的。如果在编写的语句中没有添加where子句,那么相当于删除表中所有的记录。下面举例说明:


删除 student表中id = 2 的这条记录

delete from student where id = 2

这里写图片描述

删除表中所有的记录

delete from student ;

删除表中所有记录还可以使用truncate关键字,它的基本语法如下

TRUNCATE [TABLE] tbl_name

delete 和 truncate的区别为:

DELETE 删除表中的数据,表结构还在;删除后的数据可以找回
TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。
删除的数据不能找回。执行速度比DELETE快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值