服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - sql查询语句教程之插入、更新和删除数据实例

sql查询语句教程之插入、更新和删除数据实例

2022-11-04 15:53老鸭胆 Mysql

如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句,下面这篇文章主要给大家介绍了关于sql查询语句教程之插入、更新和删除数据的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

数据库通过插入、更新和删除等方式来改变表中的记录。插入数据是向表中插入新的记录,通过 INSERT 语句来实现。更新数据是改变表中已经存在的数据,使用UPDATE 语句来实现。删除数据是删除表中不再使用的数据,通过DELETE 语句来实现。

 

1、插入数据

插入数据是向表中插入新的记录。通过这种方式可以为表中增加新的数据。在 MySQL中,通过INSERT语句来插入新的数据。使用INSERT 语句可以同时为表的所有字段插入数据,也可以为表的指定字段插入数据。INSERT语句可以同时插入多条记录,还可以将一个表中查询出来的数据插入到另一个表中。

1.1 为表的所有字段插入数据

通常情况下,插入的新记录要包含表的所有字段。INSERT 语句有两种方式可以同时为表的所有字段插入数据。第一种方式是不指定具体的字段名;第二种方式是列出表的所有字段。

1、insert语句中不指定具体的字段名

在 MySQL中,可以通过不指定字段名的方式为表插入记录。其基本语句形式如下:

insert into 表名 values(值1,值2,...,值n);

其中,“表名”参数指定记录插入到哪个表中;“值n”参数表示要插入的数据。“值1”到“值n”分别对应着表中的每个字段。表中定义了几个字段,INSERT语句中就应该对应有几个值。插入的顺序与表中字段的顺序相同。而且,取值的数据类型要与表中对应字段的数据类型一致。

下面向S表中插入记录。插入记录之前,可以通过DESC语句来查看S表的基本结构。查询结果如下:

sql查询语句教程之插入、更新和删除数据实例

从查询结果可以看出,S表包含4个字段。那么INSERT 语句中的值也应该是4个。INSERT语句的代码如下:

sql查询语句教程之插入、更新和删除数据实例

!!!字符串类型的数据,取值必须加上引号。

2、insert语句中列出所有字段

INSERT语句中可以列出表的所有字段,为这些字段来插入数据。其基本语句形式如下:

insert into 表名(属性1,属性2,...,属性n)
values (值1,值2,...,值n);

其中,“属性n”参数表示表中的字段名称,此处必须列出表的所有字段的名称;“值n”参数表示每个字段的值,每个值与相应的字段对应。

下面向S表中插入一条新记录。INSERT 语句的代码如下:

sql查询语句教程之插入、更新和删除数据实例

查询结果显示,记录已经插入成功。如果表的字段比较多,用第二种方法就比较麻烦。但是,第二种方法比较灵活。可以随意的设置字段的顺序,而不需要按照表定义时的顺序。值的顺序也必须跟着字段顺序的改变而改变。

下面向S表中插入一条新记录。INSERT语句中字段的顺序与表定义时的顺序不同。INSERT语句的代码如下:

sql查询语句教程之插入、更新和删除数据实例

1.2 为表的指定字段插入数据

其基本语句形式如下:

insert into 表名(属性1,属性2,…,属性m)
values(值1,值2,.…,值m);

其中,“属性m”参数表示表中的字段名称,此处指定表的部分字段的名称;“值m”参数表示指定字段的值,每个值与相应的字段对应。

下面向S表的sno和sname这2个字段插入数据。INSERT语句的代码如下:

sql查询语句教程之插入、更新和删除数据实例

这种方式也可以随意的设置字段的顺序,而不需要按照表定义时的顺序。

!!!没有赋值的字段,数据库系统会为其插入默认值。这个默认值是在创建表的时候定义的。如上面function字段和address字段的默认值为NULL。如果某个字段没有设置默认值,而且是非空,这就必须为其赋值。不然数据库系统会提示“Field'name' doesn't have a default value”这样的错误。

1.3 同时插入多条记录

同时插入多条记录,是指一个 INSERT语句插入多条记录。当用户需要插入好几条记录,用户可以使用上面两个小节中的方法逐条插入记录。但是,每次都要写一个新的INSERT 语句。这样比较麻烦。MySQL 中,一个 INSERT语句可以同时插入多条记录。其基本语法形式如下:

insert into 表名[(属性列表)】
values (取值列表1),(取值列表2),
...,
(取值列表n);

其中,“表名”参数指明向哪个表中插入数据;“属性列表”参数是可选参数,指定哪些字段插入数据,没有指定字段时向所有字段插入数据;“取值列表n”参数表示要插入的记录,每条记录之间用逗号隔开。

向MySQL的某个表中插入多条记录时,可以使用多个INSERT语句逐条插入记录,也可以使用一个 INSERT语句插入多条记录。选择哪种方式通常根据个人喜好来决定。如果插入的记录很多时,一个INSERT 语句插入多条记录的方式的速度会比较快。

下面向S表中插入3条新记录。INSERT 语句的代码如下:

sql查询语句教程之插入、更新和删除数据实例

不指定字段时,必须为每个字段都插入数据。如果指定字段,就只需要为指定的字段插入数据。

sql查询语句教程之插入、更新和删除数据实例

1.4 将查询结果插入到表中

INSERT语句可以将一个表中查询出来的数据插入到另一表中。这样,可以方便不同表之间进行数据交换。其基本语法形式如下:

insert into 表名1(属性列表1)
select 属性列表2 from 表名2 where 条件表达式;

其中,“表名1”参数说明记录插入到哪个表中;“表名2”参数表示记录是从哪个表中查询出来的;“属性列表1”参数表示为哪些字段赋值;“属性列表2”表示从表中查询出哪些字段的数据;“条件表达式”参数设置了SELECT 语句的查询条件。

使用这种方法时,必须保证“字段列表1”和“字段列表2”中的字段个数是一样的。而且,每个对应的字段的数据类型是一样的。如果数据类型不一样,数据库系统会报错。然后,阻止INSERT语句向下执行。

下面将s_temp表中所有数据查询出来,然后插入到S表中。插入之前,先执行SELECT语句来查看s_temp表中的记录。SELECT语句执行结果如下:

sql查询语句教程之插入、更新和删除数据实例

sql查询语句教程之插入、更新和删除数据实例

 

2、更新数据

更新数据是更新表中已经存在的记录。通过这种方式可以改变表中已经存在的数据。例如,学生表中某个学生的家庭住址改变了,这就需要在学生表中修改该同学的家庭地址。在MySQL中,通过UPDATE语句来更新数据。

在 MySQL中,UPDATE语句的基本语法形式如下:

update 表名
set 属性名1=取值1,属性名2=取值2,
...,
属性名n=取值n
where 条件表达式;

其中,“属性名n”参数表示需要更新的字段的名称;“取值 n”参数表示为字段更新的新数据;“条件表达式”参数指定更新满足条件的记录。

下面更新s表中sno值为s1的记录。将sname字段的值变为‘精益求精‘,city的值变为’北京‘。

sql查询语句教程之插入、更新和删除数据实例

表中满足条件表达式的记录可能不止一条。使用UPDATE语句会更新所有满足条件的记录。

下面更新S表中 sno值为s100-s102的记录。将status字段的值变为30。将city字段的值变为“天津”。

sql查询语句教程之插入、更新和删除数据实例

!!!使用UPDATE语句更新数据时,可能会有多条记录满足WHERE条件。这个时候一定要特别小心,最好先执行SELECT语句判断满足WHERE条件的记录是否确实是需要更新的。如果其中有些记录不需要更新,应该重新设置WHERE条件.

 

3、删除数据

删除数据是删除表中已经存在的记录。通过这种方式可以删除表中不再使用的记录。例如,学生表中某个学生退学了,这就需要从学生表中删除该同学的信息。MySQL中,通过DELETE 语句来删除数据。

MySQL中,DELETE语句的基本语法形式如下:

delete from 表名[where条件表达式】;

其中,“表名”参数指明从哪个表中删除数据;“WHERE条件表达式”指定删除表中的哪些数据。如果没有该条件表达式,数据库系统就会删除表中的所有数据。

下面删除s表中sno值为s1的记录。

sql查询语句教程之插入、更新和删除数据实例

DELETE语句可以同时删除多条记录。

下面删除s表中 city值为‘北京’的记录。

sql查询语句教程之插入、更新和删除数据实例

DELETE语句中如果不加上“WHERE条件表达式”,数据库系统会删除指定表中的所有数据。

下面删除s表中的所有记录。

sql查询语句教程之插入、更新和删除数据实例

因为执行DELETE语句后,会将记录从表中删除。删除过程中不会有任何提示,因此必须要特别小心。在条件允许的情况下,最好先用SELECT语句查询准备删除的记录。这样可以确认这些记录确实是需要删除的。

总结

到此这篇关于sql查询语句教程之插入、更新和删除数据的文章就介绍到这了,更多相关sql插入更新和删除数据内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_45441862/article/details/121318532

延伸 · 阅读

精彩推荐
  • MysqlMySQL INT类型全解析

    MySQL INT类型全解析

    这篇文章主要介绍了MySQL INT类型的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下...

    MySQL技术3462020-08-10
  • MysqlMySQL数据库表分区注意事项大全【推荐】

    MySQL数据库表分区注意事项大全【推荐】

    这篇文章主要介绍了MySQL数据库表分区注意事项相关内容,比较全面,这里分享给大家,需要的朋友可以参考。 ...

    mengwei2482020-08-16
  • Mysqlcentos7通过yum安装mysql的方法

    centos7通过yum安装mysql的方法

    这篇文章主要介绍了centos7通过yum安装mysql的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    千雨猫2922019-06-17
  • MysqlMySQL存储时间类型选择的问题讲解

    MySQL存储时间类型选择的问题讲解

    今天小编就为大家分享一篇关于MySQL存储时间类型选择的问题讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    CODETC4022020-09-15
  • MysqlMySQL中int最大值深入讲解

    MySQL中int最大值深入讲解

    这篇文章主要给大家介绍了关于MySQL中int最大值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    haoyq6082019-06-06
  • Mysqlmysql innodb的重要组件汇总

    mysql innodb的重要组件汇总

    这篇文章主要介绍了mysql innodb的重要组件的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下...

    蒋乐兴的技术随笔4302021-03-13
  • Mysql关于pt-archiver和自增主键的那些事

    关于pt-archiver和自增主键的那些事

    mysql是我们经常会用到的一个数据库,mysql数据库中有一个主键生成规则,就是自增,这篇文章主要给大家介绍了关于pt-archiver和自增主键的相关资料,文中通过实...

    yangyidba3222022-10-24
  • MysqlMySQL 日期时间加减的示例代码

    MySQL 日期时间加减的示例代码

    本文主要介绍了MySQL日期时间加减,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    healthLau7292021-09-27