购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

实验4
数据操作

在数据库中创建表,只是建立了表结构,里面还没有数据。用户可以使用加载数据语句或插入元组操作来录入数据。数据录入后就可以对表中的数据进行查询、修改、删除等操作了。

【实验目的】

①掌握各种录入数据至表的方法。

②掌握修改表中数据的方法。

③掌握复制数据表(包含结构和数据)的方法。

④掌握删除表中行的方法。

【知识要点】

(1)加载数据的语法格式

LOAD DATA

[ LOW_PRIORITY | CONCURRENT ] [ LOCAL ]

INFILE 'file_name'

[ REPLACE | IGNORE ]

INTO TABLE tbl_name

[ PARTITION ( partition_name [, partition_name ] ... )]

[ CHARACTER SET charset_name ]

[ { FIELDS | COLUMNS }

[ TERMINATED BY 'string' ]

[[ OPTIONALLY ] ENCLOSED BY 'char' ]

[ ESCAPED BY 'char' ]

]

[ LINES

[ STARTING BY 'string' ]

[ TERMINATED BY 'string' ]

]

[ IGNORE number{ LINES | ROWS } ]

[ (col_name_or_user_var

[, col_name_or_user_var ] ... ) ]

[ SET col_name={expr| DEFAULT }

[, col_name={expr| DEFAULT } ] ... ]

LOADDATA语句会以非常高的速度将文本文件中的行读入表中。如果要将表中的数据写入文件,请使用SELECT...INTOOUTFILE。

LOADDATA语句中关键字解释如下:

[LOW_PRIORITY|CONCURRENT][LOCAL]:如果指定关键词LOW_PRIORITY,LOADDATA会在其他线程完成之后再操作,但只对那些采用了表级别锁的引擎(如MyISAM)有影响,因为InnoDB使用的是行锁,所以不受影响。若指定关键词CONCURRENT,LOADDATA会和其他线程同时进行操作,这个对性能是有一些影响。LOCAL是个非常重要的关键字,指明了文件的位置,也会影响到LOADDATA命令对错误数据的处理方式。如果指定了LOCAL,则表示文件位于客户端,数据从客户端读取,会在服务端的临时目录下创建一份文件的拷贝,建议使用绝对路径,又因为涉及数据传输,所以这种方式会相对慢一些。当某条数据处理有误时,系统把这个错误记录为一个警告,不会影响下一条数据的处理;如果没有指定,则表示文件在服务器端,倘若文件名使用的是相对路径,那么又可以分为两种情况:一种是文件名前没有相对目录,则直接在默认数据库的data目录下查找;另一种是指定了相对目录,则从服务器的data目录下寻找。在处理过程中,如果遇到错误就不会继续执行。

[REPLACE|IGNORE]:当前的数据跟表中的数据有唯一性冲突的时候,如果指定了REPLACE,则替换已有值,如果指定了IGNORE,则忽略当前值。当这两种方式都未指定时,如果数据来自客户端,则重复的数据会被忽略;如果数据来源服务端,则命令会终止执行。

PARTITION:指定具体的分区。

CHARACTERSET:指定字符集。

FIELDS关键字指定了文件字段的分割格式,如果用到这个关键字,则至少有下面的一个选项:

·TERMINATEDBY描述字段的分隔符,默认情况下是tab字符(\t)。

·ENCLOSEDBY描述的是字段的括起字符。

·ESCAPEDBY描述的转义字符,默认的是反斜杠(backslash:\)。

LINES关键字指定了每条记录的分隔符默认为'\n'即为换行符。

IGNOREnumberLINES:忽略特定行数,文本文件则可以忽略掉第一行标题。

(2)插入行的语法格式

INSERT [ LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [ IGNORE ]

[ INTO ] tbl_name

[ PARTITION ( partition_name [, partition_name ] ... )]

[( col_name [, col_name ] ... )]

{{ VALUES | VALUE } ( value_list ) [, ( value_list )] ...}

[ AS row_alias [( col_alias [, col_alias ] ... ) ] ]

[ ON DUPLICATE KEY UPDATE assignment_list ]

INSERT [ LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [ IGNORE ]

[ INTO ] tbl_name

[ PARTITION ( partition_name [, partition_name ] ... )]

SET assignment_list

[ AS row_alias [( col_alias [, col_alias ] ... ) ] ]

[ ON DUPLICATE KEY UPDATE assignment_list ]

INSERT [ LOW_PRIORITY | HIGH_PRIORITY ] [ IGNORE ]

[ INTO ] tbl_name

[ PARTITION ( partition_name [, partition_name ] ... )]

[( col_name [, col_name ] ... )]

{ SELECT ...

| TABLE table_name

| VALUES row_constructor_list

}

[ ON DUPLICATE KEY UPDATE assignment_list ]

value:

{expr| DEFAULT }

value_list:

value [, value ] ...

row_constructor_list:

ROW ( value_list )[, ROW ( value_list )][ ,... ]

assignment:

col_name=

value

| [ row_alias .] col_name

| [ tbl_name .] col_name

| [ row_alias .] col_alias

assignment_list:

assignment [, assignment ] ...

(3)修改表数据的语法格式

UPDATE [ LOW_PRIORITY ] [ IGNORE ] table_reference

SET assignment_list

[ WHERE where_condition ]

[ ORDER BY ... ]

[ LIMIT row_count ]

value:

{expr| DEFAULT }

assignment:

col_name=value

assignment_list:

assignment [, assignment ] ...

(4)删除行的语法格式

DELETE [ LOW_PRIORITY ] [ QUICK ] [ IGNORE ] FROM tbl_name [[ AS ]tbl_alias ]

[ PARTITION ( partition_name [, partition_name ] ... )]

[ WHERE where_condition ]

[ ORDER BY ... ]

[ LIMIT row_count ]

(5)删除表中全部数据的语法格式

TRUNCATE [ TABLE ] tbl_name vTv0A6Vpg2JVzRkRKR8AnBDV4pUfTLvkIEdb8XOa9s7BQYXw8FZzUTvxOZSdrWgW

点击中间区域
呼出菜单
上一章
目录
下一章
×