第3章添加更新与删除数据Word文档格式.docx

上传人:b****6 文档编号:22083027 上传时间:2023-02-02 格式:DOCX 页数:23 大小:22.94KB
下载 相关 举报
第3章添加更新与删除数据Word文档格式.docx_第1页
第1页 / 共23页
第3章添加更新与删除数据Word文档格式.docx_第2页
第2页 / 共23页
第3章添加更新与删除数据Word文档格式.docx_第3页
第3页 / 共23页
第3章添加更新与删除数据Word文档格式.docx_第4页
第4页 / 共23页
第3章添加更新与删除数据Word文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第3章添加更新与删除数据Word文档格式.docx

《第3章添加更新与删除数据Word文档格式.docx》由会员分享,可在线阅读,更多相关《第3章添加更新与删除数据Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

第3章添加更新与删除数据Word文档格式.docx

idINT(4),

nameVARCHAR(20)NOTNULL,

gradeFLOAT

);

使用INSERT语句向student表中插入一条数据,SQL语句如下所示:

INSERTINTOstudent(id,name,grade)

VALUES(1,'

zhangsan'

;

当上述SQL语句执行成功后,会在表student中添加一条数据。

为了验证数据是否添加成功,使用SELECT语句查看student表中的数据,查询结果如下:

mysql>

SELECT*FROMstudent;

+------+----------+-------+

|id|name|grade|

|1|zhangsan||

1rowinsetsec)

从查询结果可以看出,student表中成功地添加了一条记录,“1rowinset”表示查询出了一条记录。

关于SELECT查询语句的相关知识,将在第4章进行详细讲解,这里大家有个大致印象即可。

需要注意的是,使用INSERT语句添加记录时,表名后的字段顺序可以与其在表中定义的顺序不一致,它们只需要与VALUES中值的顺序一致即可。

【例3-2】向student表中添加一条新记录,记录中id字段的值为2,name字段的值为‘lisi’,grade字段的值为95,SQL语句如下所示:

INSERTINTOstudent(name,grade,id)

VALUES('

lisi'

95,2);

执行结果如下所示:

INSERTINTOstudent(name,grade,id)

->

VALUES('

QueryOK,1rowaffectedsec)

从执行结果可以看到,三个字段id,name和grade的顺序进行了调换,同时VALUES后面值的顺序也做了相应地调换,INSERT语句同样执行成功,接下来通过查询语句查看数据是否成功添加,执行结果如下所示:

select*fromstudent;

|id|name|grade|

|1|zhangsan||

|2|lisi|95|

2rowsinsetsec)

从查询结果可以看出,student表中同样成功地添加了一条记录。

2、INSERT语句中不指定字段名

在MySQL中,可以通过不指定字段名的方式添加记录,其基本的语法格式如下所示:

INSERTINTO表名VALUES(值1,值2,……);

在上述格式中,“值1,值2,……”用于指定要添加的数据。

需要注意的是,由于INSERT语句中没有指定字段名,添加的值的顺序必须和字段在表中定义的顺序相同。

【例3-3】向student表中添加一条新记录,记录中id字段的值为3,name字段的值为‘wangwu’,grade字段的值为,INSERT语句如下所示:

INSERTINTOstudent

VALUES(3,'

SQL语句执行成功后,同样会在student表中添加一条新的记录。

为了验证数据是否添加成功,使用SELECT语句查看student表中的数据,查询结果如下所示:

|3|wangwu||

3rowsinsetsec)

从上述结果可以看出,student表中成功添加了一条记录。

由此可见,INSERT语句中不指定字段名同样成功添加数据。

3.1.2为表的指定字段添加数据

为表的指定字段添加数据,就是在INSERT语句中只向部分字段中添加值,而其他字段的值为表定义时的默认值。

为表的指定字段添加数据的基本语法格式如下所示:

INSERTINTO表名(字段1,字段2,…)

VALUES(值1,值2,…)

在上述语法格式中,“字段1,字段2,…”表示数据表中的字段名称,此次只指定表中部分字段的名称。

“值1,值2,……”表示指定字段的值,每个值的顺序、类型必须与对应的字段相匹配。

【例3-4】向student表中添加一条新记录,记录中id字段的值为4,name字段的值为“zhaoliu”,grade字段不指定值,SQL语句如下所示:

INSERTINTOstudent(id,name)

VALUES(4,'

zhaoliu'

上述SQL语句执行成功后,会向student表中添加一条新的数据。

为了验证数据是否添加成功,使用SELECT语句查看student表,结果如下所示:

|1|zhangsan||

|4|zhaoliu|NULL|

4rowsinsetsec)

从查询结果可以看出,新记录添加成功,但是grade字段的值为NULL。

这是因为在添加新记录时,如果没有为某个字段赋值,系统会自动为该字段添加默认值。

通过SQL语句“SHOWCREATETABLEstudent\G”可以查看student表的详细结构,SQL执行结果如下所示:

SHOWCREATETABLEstudent\G

***************************1.row***************************

Table:

student

CreateTable:

CREATETABLE'

student'

'

id'

int(4)DEFAULTNULL,

name'

varchar(20)NOTNULL,

grade'

floatDEFAULTNULL

)ENGINE=InnoDBDEFAULTCHARSET=utf8

从表的详细结构中可以看出,grade字段的默认值为NULL。

本例中没有为grade字段赋值,系统会自动为其添加默认值NULL。

需要注意的是,如果某个字段在定义时添加了非空约束,但没有添加default约束,那么插入新记录时就必须为该字段赋值,否则数据库系统会提示错误。

【例3-5】向student表中添加一条新记录,记录中id字段的值为5,grade字段的值为97,name字段不指定值,SQL语句如下所示:

INSERTINTOstudent(id,grade)

VALUES(5,97);

执行结果如下所示:

INSERTINTOstudent(id,grade)

VALUES(5,97);

ERROR1364(HY000):

Field'

doesn'

thaveadefaultvalue

从执行结果可以看出,执行INSERT语句时发生了错误,发生错误的原因是name字段没有指定默认值,且添加了非NULL约束。

接下来,通过查询语句查看数据是否成功添加,执行结果如下所示:

通过查询结果可以看到,student表中仍然只有4条记录,新记录没有添加成功。

为指定字段添加数据时,指定字段也无需与其在表中定义的顺序一致,它们只要与VALUES中值的顺序一致即可。

【例3-6】向student表中添加一条新记录,记录中name字段的值为‘sunbin’,grade字段的值为55,id字段不指定值,SQL语句如下所示:

INSERTINTOstudent(grade,name)

VALUES(55,'

sunbin'

执行INSERT语句向student表中添加数据,然后通过查询语句查看数据是否成功添加,执行结果如下所示:

|NULL|sunbin|55|

5rowsinsetsec)

从查询结果可以看出,新记录添加成功。

多学一招:

INSERT语句其他写法

INSERT语句还有一种语法格式,可以为表中指定的字段或者全部字段添加数据,其格式如下所示:

INSERTINTO表名

SET字段名1=值1[,字段名2=值2,……]

在上面的语法格式中,“字段名1”、“字段名2”是指需要添加数据的字段名称,“值1”、“值2”表示添加的数据。

如果在SET关键字后面指定了多个“字段名=值”对,每对之间使用逗号分隔,最后一个“字段名=值”对之后不需要逗号。

接下来通过一个案例来演示使用这种语法格式向student表中添加记录。

【例3-7】向student表中添加一条新记录,该条记录中id字段的值为5,name字段的值为‘boya’,grade字段的值为99,,INSERT语句如下所示:

SETid=5,name='

boya'

grade=99;

INSERTINTOstudent

SETid=5,name='

从执行结果可以看到INSERT语句成功执行,接下来通过查询语句查看数据是否成功添加,执行结果如下所示:

+------+---------+-------+

|id|name|grade|

|1|zhangsan||

|2|lisi|95|

|3|wangwu||

|4|zhaoliu|NULL|

|NULL|sunbin|55|

|5|boya|99|

6rowsinsetsec)

从查询结果可以看出,student表中新记录添加成功。

3.1.3同时添加多条记录

有时候,需要一次向表中添加多条记录,当然,我们可以使用上面学习的两种方式将记录逐条添加,

但是这样做需要书写多条INSERT语句,比较麻烦。

其实,在MySQL中提供了使用一条INSERT语句同时添加多条记录的功能,其语法格式如下所示:

INSERTINTO表名[(字段名1,字段名2,……)]

VALUES(值1,值2,……),(值1,值2,……),

……

(值1,值2,……);

在上述语法格式中,“(字段名1,字段名2,……)”是可选的,用于指定插入的字段名。

“(值1,值2,……)”表示要插入的记录,该记录可以有多条,并且每条记录之间用逗号隔开。

【例3-8】向student表中添加三条新记录,INSERT语句如下所示:

INSERTINTOstudentVALUES

(6,'

lilei'

99),

(7,'

hanmeimei'

100),

(8,'

poly'

INSERTINTOstudentVALUES

(6,'

(7,'

(8,'

QueryOK,3rowsaffectedsec)

Records:

3Duplicates:

0Warnings:

0

从执行结果可以看出,INSERT语句成功执行。

其中“Records:

3”表示添加三条记录,“Duplicates:

0”表示添加的三条记录没有重复,“Warning:

0”表示添加记录时没有警告。

在添加多条记录时,可以不指定字段列表,只需要保证VALUES后面跟随的值列表依照字段在表中定义的顺序即可。

接下来通过查询语句查看数据是否成功添加,执行结果如下所示:

+------+-----------+-------+

|5|boya|99|

|6|lilei|99|

|7|hanmeimei|100|

|8|poly||

8rowsinsetsec)

从查询结果可以看到,student表中添加了三条新的记录。

和添加单条记录一样,如果不指定字段名,必须为每个字段添加数据,如果指定了字段名,就只需要为指定的字段添加数据。

【例3-9】向student表中添加三条新记录,记录中只为id和name字段添加值,INSERT语句如下所示:

INSERTINTOstudent(id,name)VALUES

(9,'

liubei'

),(10,'

guanyu'

),(11,'

zhangfei'

SELECT*FROMstudent

WHEREid>

8;

|9|liubei|NULL|

|10|guanyu|NULL|

|11|zhangfei|NULL|

通过查询结果可以看出,student表中添加了3条新的记录,由于INSERT语句中没有为grade字段添加值,系统自动为其添加默认值NULL。

需要注意的是,由于student表中存在多条记录,都查询出来不便于观察,因此在查询语句中使用了WHERE子句来指定查询条件,WHEREid>

8限定了只查询student表中id值大于8的记录。

更新数据

更新数据是指对表中存在的记录进行修改,这是数据库常见的操作,比如某个学生改了名字,就需要

对其记录信息中的name字段值进行修改。

MySQL中使用UPDATE语句来更新表中的记录,其基本的语法格式如下所示:

UPDATE表名

SET字段名1=值1[,字段名2=值2,……]

[WHERE条件表达式]

在上述语法格式中,“字段名1”,“字段名2”用于指定要更新的字段名称,“值1”,“值2”用于表示字段更新的新数据。

“WHERE条件表达式”是可选的,用于指定更新数据需要满足的条件。

UPDATE语句可以更新表中的部分数据和全部数据,下面就对这两种情况进行讲解:

1、UPDATE更新部分数据

更新部分数据是指根据指定条件更新表中的某一条或者某几条记录,需要使用WHERE子句来指定更

新记录的条件。

【例3-10】更新student表中id字段值为1的记录,将记录中的name字段的值更改为‘caocao’,grade字段的值更改为50。

在更新数据之前,首先使用查询语句查看id字段值为1的记录,执行结果如下所示:

WHEREid=1;

从查询结果可以看到,id字段值为1的记录只有一条,记录中name字段的值为‘zhangsan’,grade字段的值为。

下面使用UPDATE语句更新这条记录,SQL语句如下所示:

UPDATEstudent

setname='

caocao'

grade=50

WHEREid=1;

上述SQL语句执行成功后,会将id为1的数据进行更新。

为了验证数据是否更新成功,使用SELECT语句查看数据库student中id为1的记录,查询结果如下所示:

+------+--------+-------+

|1|caocao|50|

从查询结果可以看到,id字段值为1的记录发生了更新,记录中name字段的值变为‘caocao’,grade字段的值变为50。

如果表中有多条记录满足WHERE子句中的条件表达式,则满足条件的记录都会发生更新。

【例3-11】更新student表中id字段值小于4的记录,将这些记录的grade字段值都更新为100。

在更新数据前,首先使用查询语句查看id字段值小4的记录,执行结果如下所示:

WHEREid<

4;

|3|wangwu||

从查看结果可以看到,id字段值小于4的记录一共有3条,它们的grade字段值各不相同。

下面使用UPDATE语句更新这3条记录,UPDATE语句如下所示:

SETgrade=100

WHEREid<

执行UPDATE语句更新student表中的数据,然后通过查询语句查看更新后的数据,执行结果如下所示:

|1|caocao|100|

|2|lisi|100|

|3|wangwu|100|

从查询结果可以看出,id字段值为1、2、3的记录其grade字段值都变为100,这说明满足WHERE子句中条件表达式的记录都更新成功。

2、UPDATE更新全部数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1