2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MySQL数据库表怎么进行添加数据 更新数据和删除数据操作——MySQL 5.7数据库

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

时间:2020-04-26 21:57:16

相关推荐

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

文章目录

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

表的数据操作

MySQL数据表分为表结构(Structure)和数据记录(Record)2部分。前面创建表的操作,仅仅是创建了表结构,表结构即决定表拥有哪些字段以及这些字段的名称、数据类型、长度、精度、小数位数、是否允许空值(null)、设置默认值和主键等。

MySQL语言一般通过insertupdatedelete等3种DML语句对表进行数据的添加、更新和删除数据操作,并以此维护和修改表的数据。

一、 表记录的插入

为数据表输入数据的方式有多种,常见的有通过命令方式添加行数据的,也可以通过程序实现表数据的添加。可以通过insert intoreplace 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','qwe@');

(2)利用insert into命令向表student中插入多行数据。

mysql> insert into student values-> ('18122221324','何白露',-> '女','2000/12/4','879','13178978999','heyy@ '),-> ('18125111109','敬横江',-> '男','2000/3/1','789',' 15678945623','jing@ '),-> ('18125121107','梁一苇',-> '女','1999/9/3','777',' 13145678921','bing@ '),-> ('18135222201','凌浩风',-> '女','2001/10/6','867','15978945645','tang@ '),-> ('18137221508','赵临江',-> '男','2000/2/13','789','12367823453','ping@ '),-> ('19111133071','崔依歌',-> '女','2001/6/6','787',' 15556845645','cui@ '),-> ('19112100072','宿沧海',-> '男','2002/2/4','658',' 12545678998','su12@'),-> ('19112111208','韩山川',-> '男','2001/2/14','666','15878945612','han@ '),-> ('19122203567','封月明',-> '女','2002/9/9','898',' 13245674564','jiao@'),-> ('19123567897','赵既白',-> '女','2002/8/4','999',' 13175689345','pingan@'),-> ('19126113307','梅惟江',-> '女','/9/7','787',' 13245678543','zhu@');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','han@ '); 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: 0mysql> select * from teacher; //输出表的记录

说明:

teacher.txt各行文本之间要用制表符<Tab>分隔,每行最后也加<Tab>分隔符。“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', 'heyy1@ ', '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<700;

修改前:

修改:

修改后:

三、表记录的删除delete… from…

利用delete… from…语句可以从单个表中删除指定表数据,一般表记录删除的语法格式如下:

delete[low_priority] [quick] [ignore] from tbl_name [where子句] [order by子句] [limit row_count]

说明:

quick修饰符:可以加快部分种类的删除操作的速度。from子句:用于指定从何处删除数据。where子句指定的删除条件。如果省略where子句则删除该表的所有行。order by子句:各行按照子句中指定的顺序进行删除,此子句只在与limit联用时才起作用。limit子句:用于告知服务器在控制命令被返回到客户端前被删除的行的最大值。数据删除后将不能恢复,因此,在执行删除之前一定要对数据做好备份。

(1)删除student01表中入学成绩低于750分记录。

命令和运行结果如下:

mysql> delete from student01 where entrance <750;Query OK, 2 rows affected (0.04 sec)

(2)删除student01表中入学成绩最低的2行记录。

命令和运行结果如下:

mysql> delete from student01 order by entrance limit 2; Query OK, 2 rows affected (0.01 sec)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。