MySQL数据库表怎么进行添加数据、更新数据和删除数据操作

您所在的位置:网站首页 sql添加表中数据 MySQL数据库表怎么进行添加数据、更新数据和删除数据操作

MySQL数据库表怎么进行添加数据、更新数据和删除数据操作

2024-05-28 11:15| 来源: 网络整理| 查看: 265

文章目录 表的数据操作一、 表记录的插入1.使用`insert into| replace`语句添加数据2.利用`load data`语句将TXT文本数据装入数据库表中3.使用set子句插入数据4.向表中插入图片数据。 二、表记录的修改`update...set...`三、表记录的删除`delete… from…`

表的数据操作

       MySQL数据表分为表结构(Structure)和数据记录(Record)2部分。前面创建表的操作,仅仅是创建了表结构,表结构即决定表拥有哪些字段以及这些字段的名称、数据类型、长度、精度、小数位数、是否允许空值(null)、设置默认值和主键等。        MySQL语言一般通过insert、update和delete等3种DML语句对表进行数据的添加、更新和删除数据操作,并以此维护和修改表的数据。

一、 表记录的插入

       为数据表输入数据的方式有多种,常见的有通过命令方式添加行数据的,也可以通过程序实现表数据的添加。可以通过insert into、replace into语句插入,也可以使用load data infile方式将保存在文本文件中的数据插入到指定的表。

1.使用insert into| replace语句添加数据

insert into| replace语句语法格式:

insert|replace[into]table_name[(col_name,...)] values({expr|default},...),(...),... |set col_name ={expr|default}, ...

(1)利用insert表student中插入1行数据。

mysql>insert into student ->(studentno,sname,sex,birthdate,entrance,phone,Email) -> values ('18122210009','许东山','男','1999/11/5',789, -> '13623456778','[email protected]');

在这里插入图片描述 (2)利用insert into命令向表student中插入多行数据。

mysql> insert into student values -> ('18122221324','何白露', -> '女','2000/12/4','879','13178978999','[email protected] '), -> ('18125111109','敬横江', -> '男','2000/3/1','789',' 15678945623','[email protected] '), -> ('18125121107','梁一苇', -> '女','1999/9/3','777',' 13145678921','[email protected] '), -> ('18135222201','凌浩风', -> '女','2001/10/6','867','15978945645','[email protected] '), -> ('18137221508','赵临江', -> '男','2000/2/13','789','12367823453','[email protected] '), -> ('19111133071','崔依歌', -> '女','2001/6/6','787',' 15556845645','[email protected] '), -> ('19112100072','宿沧海', -> '男','2002/2/4','658',' 12545678998','[email protected]'), -> ('19112111208','韩山川', -> '男','2001/2/14','666','15878945612','[email protected] '), -> ('19122203567','封月明', -> '女','2002/9/9','898',' 13245674564','[email protected]'), -> ('19123567897','赵既白', -> '女','2002/8/4','999',' 13175689345','[email protected]'), -> ('19126113307','梅惟江', -> '女','2003/9/7','787',' 13245678543','[email protected]'); Query OK, 11 rows affected (0.05 sec)

在这里插入图片描述 插入后表内数据: 在这里插入图片描述 (3)利用replace into代码向表course中插入多行数据。

mysql> replace into course values -> ('c05103','电子技术','必修','64','16','2'), -> ('c05109','C语言','必修','48','16','2'), -> ('c05127','数据结构','必修','64','16','2'), -> ('c05138','软件工程','选修','48','8','5'), -> ('c06108','机械制图','必修','60','8','2'), -> ('c06127','机械设计','必修','64','8','3'), -> ('c06172','铸造工艺','选修','42', '16','6'), -> ('c08106','经济法','必修','48','0','7'), -> ('c08123','金融学','必修','40','0','5'), -> ('c08171','会计软件','选修','32','8','8');

在这里插入图片描述 插入后表内数据: 在这里插入图片描述

说明:

使用insert语句可以向表中插入一行数据,也可以插入多行数据,最好一次插入多行数据,各行数据之间用“,”分隔。values子句:包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。若表名后不给出列名,则在values子句中要给出每一列(除identity和 timestamp类型的列)的值,如果列值为空,则值必须置为null,否则会出错。如果向表中添加已经存在的学号(已经设为主键主键)的记录,因此将出现主键冲突错误。例如,插入已经存在的学号19112111208记录,结果如下。 -> '女','2001/2/14','666','15878945612','[email protected] '); ERROR 1062 (23000): Duplicate entry '19112111208' for key 'primary' ``` - replace into向表中插入数据时,首先尝试插入数据到表中,如果发现表中已经有此行数据(根据主键或者唯一索引判断),则先删除此行数据,然后插入新的数据,否则,直接插入新数据。 - 还可以向表中插入其他表的数据,这也是成批插入数据的一种方式。但要求两个表要有相同的结构。具体操作将在以后介绍。其语法格式如下,: ```sql insert into table name1 select * from table name2; ``` 2.利用load data语句将TXT文本数据装入数据库表中

(1)假设teacher表的数据已放在“d:\teacher.txt”中,现将teaching.txt的数据插入到teacher表中。

mysql>load data local infile "d:\\teacher.txt" into table teacher; Query OK, 9 rows affected, 8 warnings (0.03 sec) Records: 9 Deleted: 0 Skipped: 0 Warnings: 0 mysql> select * from teacher; //输出表的记录

说明:

teacher.txt各行文本之间要用制表符 分隔,每行最后也加分隔符。“d:\teacher.txt”:要用“\”,表示斜线。

TXT文件中的内容如下图所示:在这里插入图片描述 运行结果:在这里插入图片描述 输出表的记录: 在这里插入图片描述 (2)利用load data语句输入score表数据。

mysql>load data local infile “d:\\score.txt” into table score; mysql>select * from score;

TXT文件中的内容如下图所示: 在这里插入图片描述 在这里插入图片描述 添加后: 在这里插入图片描述 (3)利用load data语句输入teach_course表数据。

mysql> load data local infile "d:\\teach_course.txt" -> into table teach_course; mysql> select * from teach_course;

在这里插入图片描述 在这里插入图片描述 添加后: 在这里插入图片描述

3.使用set子句插入数据

用set子句直接赋值时可以不按列顺序插入数据,对允许空值的列可以不插入。 (1)利用set子句向se_course表插入数据。

mysql> insert into se_course -> set studentno=‘19120000111’,courseno=‘c01236’, -> teacherno=‘t01237’; mysql> select * from se_course;

在这里插入图片描述 在这里插入图片描述

4.向表中插入图片数据。

       MySQL还支持图片的存储,图片一般可以以路径的形式来存储,即插入图片采用直接插入图片的存储路径。当然,也可以直接插入图片本身,只要用load_file( )函数即可。

(1)参照student表结构创建student01表,添加一个能够存储图片字段,然后插入一行数据。照片路径为“d: \image\ picture.jpg”。

mysql> create table student01 as select * from student; mysql> select * from student01; mysql> alter table student01 add fields mediumblob comment‘照片’; mysql> insert into student01 values -> ('18122221329','何影映','女','2001/12/9','877', -> '13178978997', '[email protected] ', 'd:\\image\\picture.jpg');

①参照student表结构创建student01表: 在这里插入图片描述 创建后的student01表数据如下: 在这里插入图片描述 ②添加一个能够存储图片字段: 在这里插入图片描述 ③插入一行数据: 在这里插入图片描述 ④输出表记录: 在这里插入图片描述

说明:

存放图片的字段要使用blob类型。blob是专门存储二进制文件的类型,有大小之分,例如mediumblob、longblob等,以存储大小不同的二进制文件,一般的图形文件使用mediumblob就足够了。插入图片文件路径的办法要比插入图片本身好。图片如果很小的话,可以存入数据库,但是如果图片大的话,保存或读取操作会很慢,倒不如将图片存入指定的文件夹,然后把文件路径和文件名存入数据库。 二、表记录的修改update...set...

用update...set... 命令可以修改一个表的数据。一般表记录修改的语法格式如下:

update table_name set col_name1=expr1 [,col_name2=expr2 ...] [where子句]

说明:

set子句:根据where子句中指定的条件,对符合条件的数据行进行修改。若语句中不设定where子句,则更新所有行expr1、expr2……可以是常量、变量或表达式。可以同时修改所在数据行的多个列值,中间用逗号隔开。

(1)将学号为18137221508学生的课程号为 c08106的平时成绩daily修改为80分。

mysql> update score set daily=80 -> where studentno=‘18137221508’ && courseno=‘c08106’; mysql> select * from score -> where studentno=‘18137221508’ && courseno=‘c08106’;

在这里插入图片描述 修改后: 在这里插入图片描述 (2) 将课程student01表中低于700分的入学成绩增加8%。

mysql> update student01 set entrance=entrance*1.08 -> where entrance delete from student01 where entrance delete from student01 order by entrance limit 2; Query OK, 2 rows affected (0.01 sec)

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3