实验4 数据操作

更新于 2026年10月10日 版权声明
实验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}] ...]

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

LOAD DATA语句中关键字解释如下:

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

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

PARTITION:指定具体的分区。

CHARACTER SET:指定字符集。

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

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

• ENCLOSED BY 描述的是字段的括起字符。

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

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

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

(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] ...)]](https://www.daowen.com)

    [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

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)