文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MYSQL 数据库基本操作

2024-04-02 19:55

关注

插入数据

在建立一个空的数据库和数据表时,首先需要考虑的是如何向数据表中添加数据,该操作可以使用INSERT语句来完成。使用INSERT语句可以向一个已有数据表插一个新行,也就插入一行新记录。
在MySQL中,INSERT语句有3种语法格式,分别是INSERT... VALUES语句、INSERT... SET语句和INSERT... SELECT语句。

使用INSERT... VALUES语句插入数据

使用INSERT... VALUES语句插入数据,是INSERT语句的最常用的语法格式。

语法格式如下: 

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 数据表名 [(字段名,...)]
VALUES ({值 | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]

例子:

create database test; #创建库
use test; #进入库
create table info (id int not null,name char(16),score decimal(5,2),age int(8)); #创建表
插入测试数据
insert into info (id,name,score,age)values(1,'san',88,33);
insert into info (id,name,score,age)values(2,'lisi',48,31);
insert into info (id,name,score,age)values(3,'wwu',68,27);
insert into info (id,name,score,age)values(4,'pw',98,25);
insert into info (id,name,score,age)values(5,'wlk',19,37);
insert into info (id,name,score,age)values(3,'lihua',58,23);
SELECT * FROM info;

MYSQL 数据库基本操作

使用INSERT... SET语句插入数据

在MySQL中,除了使用INSERT... VALUES语句可以插入数据外,还可以使用INSERT... SET语句插入数据。这种语法格式用于通过直接给表中的某些字段指定对应的值来实现插入指定数据,对于未指定值的字段将采用默认值进行添加。

INSERT... SET语句的语法格式如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 数据表名
SET 字段名={值 | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]

例子:

insert into info SET id =8, name='xiaohong',score=88,age=56;
SELECT * FROM info;

MYSQL 数据库基本操作

插入查询结果

在MySQL中,支持将查询结果插入到指定的数据表中,这可以通过>INSERT...SELECT语句来实现。
 
语法如下:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] 数据表名 [(字段名,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]

例子:

insert into info(id,name,score,age)SELECT * from info where id=4;
SELECT * FROM info;

MYSQL 数据库基本操作

修改数据

要执行修改的操作可以使用UPDATE语句,

语法如下:

UPDATE [LOW_PRIORITY] [IGNORE] 数据表名
SET 字段1=值1 [, 字段2=值2 ...]
[WHERE 条件表达式]
[ORDER BY ...]
[LIMIT 行数]

例子:

UPDATE info set score=77 where age <=30;
SELECT * FROM info;

MYSQL 数据库基本操作
MYSQL 数据库基本操作

删除数据

在数据库中,有些数据已经失去意义或者错误时就需要将它们删除,在MySQL中,可以使用DELETE语句或者TRUNCATE TABLE语句删除表中的一行或多行数据.

通过DELETE语句删除数据

通过DELETE语句删除数据的基本语法格式如下:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM 数据表名
[WHERE 条件表达式]
[ORDER BY ...]
[LIMIT 行数]

例子:

DELETE FROM info;
DELETE from info WHERE id=4;
SELECT * FROM info;

MYSQL 数据库基本操作

通过TRUNCATE TABLE语句删除数据

在删除数据时,如果要从表中删除所有的行,那么不必使用通过TRUNCATE
TABLE语句删除数据的基本语法格式如下:
TRUNCATE [TABLE] 数据表名

例子:

TRUNCATE table info;

Drop,Truncate,Delete区别

1.drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
2.truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。
注意:truncate 不能删除行数据,要删就要把表清空。
3.delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存。以便进行进行回滚操作。truncate与不带where的delete :只删除数据,而不删除表的结构(定义)
4.truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete如果要删除表定义及其数据,请使用 drop table 语句。
5.对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。由于truncate table 记录在日志中,所以它不能激活触发器。
6.执行速度,一般来说: drop> truncate > delete。
7.delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
8.truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯