博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL常识篇
阅读量:6821 次
发布时间:2019-06-26

本文共 23678 字,大约阅读时间需要 78 分钟。

hot3.png

指导:

    如何使用mysql客户端程序与数据库服务器进行交互

    连接和断开连接

        mysql -h host -u user -p 

        如果数据库服务器和mysql客户端在同一台机器上 -h host 可以忽略

        <ctrl + d> 或者 quit 退出mysql客户端与数据库服务器的连接

     查询

            查询版本号:

                select version();

    创建和使用数据库

            创建数据库

                create database databasename

            选择数据库

                use databasename   

            选择表

                use tablename      

            加载数据到表中

                 LOAD DATA LOCAL INFILE "filepath" INTO TABLE tablename

                 如果加载的文件来自于windows,则使用下面语句

                 LOAD DATA LOCAL INFILE "filepath" INTO TABLE tablename LINES TERMINATED BY '\r\n';              

    使用批模式mysql

            mysql < batch-file

            如果在windows下运行,则执行下面语句

            mysql -e "source batch-file"

mysql 服务器管理:

        mysqld是mysql的服务器,以下将讨论服务器支持的启动方式,服务器系统变量,服务器状态变量,如果设置服务器sql模式,如何关闭mysql服务器

        mysql服务器

            mysqld从[mysqld]和[server]中读取选项,mysqld_safe从[mysqld],[mysqld_safe]. [server]中读取选项,mysql.server从[mysqld]和[mysql.server]中读取配置

            嵌入式mysql服务器通常从[server],[embedded]和[xxxx_SERVER]读取配置

            服务器系统变量

                mysql服务器维护的许多系统变量,每个系统变量有默认值,大多是系统变量都能在服务器运行的状态下改变,mysqld --verbose --help可以看到系统变量以及其默认值(这些默认值来自于编译决定的或者配置文件里面读出来的)

                 系统变量分为,全局系统变量,会话系统变量

                examples

                    SET sort_buffer_size=10000;                                                                                    global

                    SET @@local.sort_buffer_size=10000;                                                                    session

                    SET GLOBAL sort_buffer_size=1000000, SESSION sort_buffer_size=1000000;      global,session

                    SET @@sort_buffer_size=1000000;                                                                         session

                    SET @@global.sort_buffer_size=1000000, @@local.sort_buffer_size=1000000;  global,session

            服务器状态变量

                服务器维护了许多状态变量包含了操作的信息,使用show [global | seesion] status 来查看

            sql模式

                ANSI

                    使得sql语法和行为最接近于标准SQL

                STRICT_TRANS_TABLES

                TRADITIONAL

                    使得mysql更像传统的SQL数据库系统

        mysql服务日志

            错误日志        

                mysqld启动,运行,停止是的问题日志

            普通的查询日志

                mysql客户端建立连接,客户端的语句日志

            二进制日志

                改变数据的语句日志

            中继日志

                从主数据库接收数据的日志

            慢查询日志

                查询超过long_query_time秒的日志

            DDL日志

                DDL语句日志

        多个mysql实例的运行

            服务器

                有以下几种方法

                1、编译一个新的数据库指定不同的端口,安装目录等

                        cmake . -DMYSQL_TCP_PORT=port_number \

                                      -DMYSQL_UNIX_ADDR=file_name \

                                      -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.8

                2、mysql_safe --sock=flie_name --port=port_number --datadir=path来启动新的实例

                3、mysql_safe --defaults-file=path_cnf1

                      mysql_safe --defaults-file=path_cnf2  

                       其中path_cnf1配置文件与path_cnf2配置文件中的端口号,unix套接字路径,数据文件目录等需要不一样

            客户端

                    有以下几种方法

                    1、启动mysql时指定--host 和 --port或者--socket

                    2、启动mysql时,使用MYSQL_UNIX_PORT、MYSQL_TCP_PORT来指定unix套接字文件或者tcp连接端口

SQL语法:

    数据定义语句 

   创建

       数据库

create { database | schema } [ if not exists ] db_name

                    [create_specification] ...

            create_specification:

                    [DEFAULT] CHARACTER SET [=] charset_name

                  | [DEFAULT] COLLATE [=] collation_name

            使用 show character set 来查看支持的charset_name 和 collation_name

        eg:

            create database demo2 character set gbk  collate gbk_chinese_ci

       事件

           CREATE

               [DEFINER = { user | CURRENT_USER }]

               EVENT

               [IF NOT EXISTS]

               event_name

               ON SCHEDULE schedule

               [ON COMPLETION [NOT] PRESERVE]

               [ENABLE | DISABLE | DISABLE ON SLAVE]

               [COMMENT 'comment']

               DO event_body;

           schedule:

               AT timestamp [+ INTERVAL interval] ...

             | EVERY interval

               [STARTS timestamp [+ INTERVAL interval] ...]

               [ENDS timestamp [+ INTERVAL interval] ...]

           interval:

               quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

                         WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

                         DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

           eg:

               CREATE EVENT myevent                     ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR                     DO                       UPDATE myschema.mytable SET mycol = mycol + 1;

       函数

 

       索引

           CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name

               [index_type]

               ON tbl_name (index_col_name,...)

               [index_option]

               [algorithm_option | lock_option] ...

           index_col_name:

               col_name [(length)] [ASC | DESC]

           index_type:

               USING {BTREE | HASH}

           index_option:

               KEY_BLOCK_SIZE [=] value

             | index_type

             | WITH PARSER parser_name

             | COMMENT 'string'

 

           algorithm_option:

               ALGORITHM [=] {DEFAULT|INPLACE|COPY}

           lock_option:

               LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}            

       存储过程

           CREATE

               [DEFINER = { user | CURRENT_USER }]

               PROCEDURE sp_name ([proc_parameter[,...]])

               [characteristic ...] routine_body

 

           CREATE

               [DEFINER = { user | CURRENT_USER }]

               FUNCTION sp_name ([func_parameter[,...]])

               RETURNS type

               [characteristic ...] routine_body

 

           proc_parameter:

               [ IN | OUT | INOUT ] param_name type

 

           func_parameter:

               param_name type

 

           type:

               Any valid MySQL data type

 

           characteristic:

               COMMENT 'string'

             | LANGUAGE SQL

             | [NOT] DETERMINISTIC

             | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }

             | SQL SECURITY { DEFINER | INVOKER }

 

           routine_body:

               Valid SQL routine statement

           eg:

               mysql> delimiter //

 

                      mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)

                   -> BEGIN

                   -> SELECT COUNT(*) INTO param1 FROM t;

                   -> END//

               Query OK, 0 rows affected (0.00 sec)

 

               mysql> delimiter ;

 

               mysql> CALL simpleproc(@a);

               Query OK, 0 rows affected (0.00 sec)

 

               mysql> SELECT @a;

               +------+

               | @a   |

               +------+

               | 3    |

               +------+

               1 row in set (0.00 sec)

               

               mysql> CREATE FUNCTION hello (s CHAR(20))

               mysql> RETURNS CHAR(50) DETERMINISTIC

                   -> RETURN CONCAT('Hello, ',s,'!');

               Query OK, 0 rows affected (0.00 sec)

 

               mysql> SELECT hello('world');

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

               | hello('world') |

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

               | Hello, world!  |

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

               1 row in set (0.00 sec)

 

       服务

       表

           CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

               (create_definition,...)

               [table_options]

               [partition_options]

 

           CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

               [(create_definition,...)]

               [table_options]

               [partition_options]

               select_statement

 

           CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

               { LIKE old_tbl_name | (LIKE old_tbl_name) }

 

           create_definition:

               col_name column_definition

             | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)

                 [index_option] ...

             | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)

                 [index_option] ...

             | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]

                 [index_name] [index_type] (index_col_name,...)

                 [index_option] ...

             | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)

                 [index_option] ...

             | [CONSTRAINT [symbol]] FOREIGN KEY

                 [index_name] (index_col_name,...) reference_definition

             | CHECK (expr)

 

           column_definition:

               data_type [NOT NULL | NULL] [DEFAULT default_value]

                 [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]

                 [COMMENT 'string']

                 [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]

                 [reference_definition]

             | data_type [GENERATED ALWAYS] AS (expression)

                 [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment]

                 [NOT NULL | NULL] [[PRIMARY] KEY]

 

           data_type:

               BIT[(length)]

             | TINYINT[(length)] [UNSIGNED] [ZEROFILL]

             | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]

             | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]

             | INT[(length)] [UNSIGNED] [ZEROFILL]

             | INTEGER[(length)] [UNSIGNED] [ZEROFILL]

             | BIGINT[(length)] [UNSIGNED] [ZEROFILL]

             | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]

             | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]

             | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]

             | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]

             | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]

             | DATE

             | TIME[(fsp)]

             | TIMESTAMP[(fsp)]

             | DATETIME[(fsp)]

             | YEAR

             | CHAR[(length)] [BINARY]

             [CHARACTER SET charset_name] [COLLATE collation_name]

             | VARCHAR(length) [BINARY]

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | BINARY[(length)]

             | VARBINARY(length)

             | TINYBLOB

             | BLOB

             | MEDIUMBLOB

             | LONGBLOB

             | TINYTEXT [BINARY]

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | TEXT [BINARY]

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | MEDIUMTEXT [BINARY]

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | LONGTEXT [BINARY]

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | ENUM(value1,value2,value3,...)

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | SET(value1,value2,value3,...)

                 [CHARACTER SET charset_name] [COLLATE collation_name]

             | spatial_type

 

           index_col_name:

               col_name [(length)] [ASC | DESC]

 

           index_type:

               USING {BTREE | HASH}

 

           index_option:

               KEY_BLOCK_SIZE [=] value

             | index_type

             | WITH PARSER parser_name

             | COMMENT 'string'

 

           reference_definition:

               REFERENCES tbl_name (index_col_name,...)

                 [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]

                 [ON DELETE reference_option]

                 [ON UPDATE reference_option]

 

           reference_option:

               RESTRICT | CASCADE | SET NULL | NO ACTION

 

           table_options:

               table_option [[,] table_option] ...

 

           table_option:

               ENGINE [=] engine_name

             | AUTO_INCREMENT [=] value

             | AVG_ROW_LENGTH [=] value

             | [DEFAULT] CHARACTER SET [=] charset_name

             | CHECKSUM [=] {0 | 1}

             | [DEFAULT] COLLATE [=] collation_name

             | COMMENT [=] 'string'

             | COMPRESSION [=] { ZLIB | LZ4 | NONE }

             | CONNECTION [=] 'connect_string'

             | DATA DIRECTORY [=] 'absolute path to directory'

             | DELAY_KEY_WRITE [=] {0 | 1}

             | INDEX DIRECTORY [=] 'absolute path to directory'

             | INSERT_METHOD [=] { NO | FIRST | LAST }

             | KEY_BLOCK_SIZE [=] value

             | MAX_ROWS [=] value

             | MIN_ROWS [=] value

             | PACK_KEYS [=] {0 | 1 | DEFAULT}

             | PASSWORD [=] 'string'

             | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

             | STATS_AUTO_RECALC [=] {DEFAULT|0|1}

             | STATS_PERSISTENT [=] {DEFAULT|0|1}

             | STATS_SAMPLE_PAGES [=] value

             | TABLESPACE tablespace_name

             | UNION [=] (tbl_name[,tbl_name]...)

 

           partition_options:

               PARTITION BY

                   { [LINEAR] HASH(expr)

                   | [LINEAR] KEY [ALGORITHM={1|2}] (column_list)

                   | RANGE{(expr) | COLUMNS(column_list)}

                   | LIST{(expr) | COLUMNS(column_list)} }

               [PARTITIONS num]

               [SUBPARTITION BY

                   { [LINEAR] HASH(expr)

                   | [LINEAR] KEY [ALGORITHM={1|2}] (column_list) }

                 [SUBPARTITIONS num]

               ]

               [(partition_definition [, partition_definition] ...)]

 

           partition_definition:

               PARTITION partition_name

                   [VALUES

                       {LESS THAN {(expr | value_list) | MAXVALUE}

                       |

                       IN (value_list)}]

                   [[STORAGE] ENGINE [=] engine_name]

                   [COMMENT [=] 'comment_text' ]

                   [DATA DIRECTORY [=] 'data_dir']

                   [INDEX DIRECTORY [=] 'index_dir']

                   [MAX_ROWS [=] max_number_of_rows]

                   [MIN_ROWS [=] min_number_of_rows]

                   [TABLESPACE [=] tablespace_name]

                   [(subpartition_definition [, subpartition_definition] ...)]

 

           subpartition_definition:

               SUBPARTITION logical_name

                   [[STORAGE] ENGINE [=] engine_name]

                   [COMMENT [=] 'comment_text' ]

                   [DATA DIRECTORY [=] 'data_dir']

                   [INDEX DIRECTORY [=] 'index_dir']

                   [MAX_ROWS [=] max_number_of_rows]

                   [MIN_ROWS [=] min_number_of_rows]

                   [TABLESPACE [=] tablespace_name]

 

           select_statement:

               [IGNORE | REPLACE] [AS] SELECT ...   (Some valid select statement)

 

       表空间

           CREATE TABLESPACE tablespace_name

               ADD DATAFILE 'file_name'

                   [FILE_BLOCK_SIZE = value]

                   [ENGINE [=] engine_name]

创建表空间后,可以使用CRATE TABLE table_name ...  TABLESPACE tablespace_name 来为新建的表指定表空间,或者通过ALTER TABLE table_name TABLESPACE tablespace_name来将表添加到某个表空间

       触发器

           CREATE

               [DEFINER = { user | CURRENT_USER }]

               TRIGGER trigger_name

               trigger_time trigger_event

               ON tbl_name FOR EACH ROW

               [trigger_order]

               trigger_body

 

           trigger_time: { BEFORE | AFTER }

 

           trigger_event: { INSERT | UPDATE | DELETE }

 

           trigger_order: { FOLLOWS | PRECEDES } other_trigger_name

       视图

           CREATE

               [OR REPLACE]

               [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

               [DEFINER = { user | CURRENT_USER }]

               [SQL SECURITY { DEFINER | INVOKER }]

               VIEW view_name [(column_list)]

               AS select_statement

               [WITH [CASCADED | LOCAL] CHECK OPTION]

   修改

       数据库

           ALTER {DATABASE | SCHEMA} [db_name]                alter_specification ...             ALTER {DATABASE | SCHEMA} db_name                 UPGRADE DATA DIRECTORY NAME            alter_specification:                 [DEFAULT] CHARACTER SET [=] charset_name               | [DEFAULT] COLLATE [=] collation_name            eg:                alter database demo character set gbk;

       事件

           ALTER                 [DEFINER = { user | CURRENT_USER }]                 EVENT event_name                 [ON SCHEDULE schedule]                 [ON COMPLETION [NOT] PRESERVE]                 [RENAME TO new_event_name]                 [ENABLE | DISABLE | DISABLE ON SLAVE]                 [COMMENT 'comment']                 [DO event_body]

       函数

           ALTER FUNCTION func_name [characteristic ...]                characteristic:                 COMMENT 'string'               | LANGUAGE SQL               | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }               | SQL SECURITY { DEFINER | INVOKER }

       触发器

           ALTER PROCEDURE proc_name [characteristic ...]                characteristic:                 COMMENT 'string'               | LANGUAGE SQL               | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }               | SQL SECURITY { DEFINER | INVOKER }

       服务

       表

           ALTER [IGNORE] TABLE tbl_name

               [alter_specification [, alter_specification] ...]

               [partition_options]

           algorithm_option:

               ALGORITHM [=] {DEFAULT|INPLACE|COPY}

 

           lock_option:

               LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

 

           alter_specification:

               table_options

             | ADD [COLUMN] col_name column_definition

                   [FIRST | AFTER col_name ]

             | ADD [COLUMN] (col_name column_definition,...)

             | ADD {INDEX|KEY} [index_name]

                   [index_type] (index_col_name,...) [index_option] ...

             | ADD [CONSTRAINT [symbol]] PRIMARY KEY

                   [index_type] (index_col_name,...) [index_option] ...

             | ADD [CONSTRAINT [symbol]]

                   UNIQUE [INDEX|KEY] [index_name]

                   [index_type] (index_col_name,...) [index_option] ...

             | ADD FULLTEXT [INDEX|KEY] [index_name]

                   (index_col_name,...) [index_option] ...

             | ADD SPATIAL [INDEX|KEY] [index_name]

                   (index_col_name,...) [index_option] ...

             | ADD [CONSTRAINT [symbol]]

                   FOREIGN KEY [index_name] (index_col_name,...)

                   reference_definition

             | ALGORITHM [=] {DEFAULT|INPLACE|COPY}

             | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

             | CHANGE [COLUMN] old_col_name new_col_name column_definition

                   [FIRST|AFTER col_name]

             | LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

             | MODIFY [COLUMN] col_name column_definition

                   [FIRST | AFTER col_name]

             | DROP [COLUMN] col_name

             | DROP PRIMARY KEY

             | DROP {INDEX|KEY} index_name

             | DROP FOREIGN KEY fk_symbol

             | DISABLE KEYS

             | ENABLE KEYS

             | RENAME [TO|AS] new_tbl_name

             | RENAME {INDEX|KEY} old_index_name TO new_index_name

             | ORDER BY col_name [, col_name] ...

             | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]

             | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]

             | DISCARD TABLESPACE

             | IMPORT TABLESPACE

             | FORCE

             | ADD PARTITION (partition_definition)

             | DROP PARTITION partition_names

             | DISCARD PARTITION {partition_names | ALL} TABLESPACE

             | IMPORT PARTITION {partition_names | ALL} TABLESPACE

             | TRUNCATE PARTITION {partition_names | ALL}

             | COALESCE PARTITION number

             | REORGANIZE PARTITION partition_names INTO (partition_definitions)

             | EXCHANGE PARTITION partition_name WITH TABLE tbl_name [{WITH|WITHOUT} VALIDATION]

             | ANALYZE PARTITION {partition_names | ALL}

             | CHECK PARTITION {partition_names | ALL}

             | OPTIMIZE PARTITION {partition_names | ALL}

             | REBUILD PARTITION {partition_names | ALL}

             | REPAIR PARTITION {partition_names | ALL}

             | REMOVE PARTITIONING

           index_col_name:

               col_name [(length)] [ASC | DESC]

 

           index_type:

               USING {BTREE | HASH}

 

           index_option:

               KEY_BLOCK_SIZE [=] value

             | index_type

             | WITH PARSER parser_name

             | COMMENT 'string'

 

           table_options:

               table_option [[,] table_option] ...  (see CREATE TABLE options)

           partition_options:

               (see CREATE TABLE options)

       视图

           ALTER

               [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

               [DEFINER = { user | CURRENT_USER }]

               [SQL SECURITY { DEFINER | INVOKER }]

               VIEW view_name [(column_list)]

               AS select_statement

               [WITH [CASCADED | LOCAL] CHECK OPTION]

   删除  

       数据库

           DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

       事件

            DROP EVENT [IF EXISTS] event_name

       函数

       索引

           DROP INDEX index_name ON tbl_name

               [algorithm_option | lock_option] ...

           algorithm_option:

               ALGORITHM [=] {DEFAULT|INPLACE|COPY}

           lock_option:

               LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

           对于删除主键索引,索引名直接为PRIMARY,但是必须被引号指定即:

               drop index ‘PRIMARY' on table_name

       存储过程

           DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name

       服务

       表

           DROP [TEMPORARY] TABLE [IF EXISTS]

               tbl_name [, tbl_name] ...

               [RESTRICT | CASCADE] (restrict cascade mysql5.7 已经没有效果)

       表空间

           DROP TABLESPACE tablespace_name                [ENGINE [=] engine_name]

       触发器

           DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

       视图

           DROP VIEW [IF EXISTS]

               view_name [, view_name] ...

               [RESTRICT | CASCADE] (restrict cascade mysql5.7 被解析但是被忽视)

   重名名表

           RENAME TABLE tbl_name TO new_tbl_name

               [, tbl_name2 TO new_tbl_name2] ...

   截断表

           TRUNCATE [TABLE] tbl_name

    数据操作语句

        CALL

            CALL sp_name([parameter[,...]])

            CALL sp_name[()]

            eg:

                    CREATE PROCEDURE p (OUT ver_param VARCHAR(25), INOUT incr_param INT)

                    BEGIN

                          # Set value of OUT parameter

                          SELECT VERSION() INTO ver_param;

                          # Increment value of INOUT parameter

                          SET incr_param = incr_param + 1;

                    END;

                    mysql> SET @increment = 10;

                    mysql> CALL p(@version, @increment);

                    mysql> SELECT @version, @increment;

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

                    | @version     | @increment |

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

                    | 5.5.3-m3-log |         11        |

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

        DELETE

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

                        [PARTITION (partition_name,...)]

                        [WHERE where_condition]

                        [ORDER BY ...]

                        [LIMIT row_count]

        DO

            执行表达式但是不返回结果

            DO expr [, expr] ...

        HANDLER

        INSERT

        LOAD DATA INFILE

            LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'

                    [REPLACE | IGNORE]

                    INTO TABLE tbl_name

                    [PARTITION (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,...)]

                    [SET col_name = expr,...]

            eg:

                LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;

                LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test  FIELDS TERMINATED BY ','  LINES STARTING BY 'xxx';

                LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;

                SELECT * INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',' FROM table2;

        LOAD XML

                LOAD XML [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'

                        [REPLACE | IGNORE]

                        INTO TABLE [db_name.]tbl_name

                        [PARTITION (partition_name,...)]

                        [CHARACTER SET charset_name]

                        [ROWS IDENTIFIED BY '<tagname>']

                        [IGNORE number {LINES | ROWS}]

                        [(column_or_user_var,...)]

                        [SET col_name = expr,...]

                eg:

                    shell> mysql --xml -e 'SELECT * FROM mytable' > file.xml

                  mysql> LOAD XML LOCAL INFILE 'person.xml'

                          ->   INTO TABLE person

                          ->   ROWS IDENTIFIED BY '<person>';

        REPLACE

        SELECT

        subquery

        UPDATE

    事务和锁语句

        事务起始,提交,回滚

            START TRANSACTION

                    [transaction_characteristic [, transaction_characteristic] ...]

            transaction_characteristic:

                    WITH CONSISTENT SNAPSHOT

                  | READ WRITE

                  | READ ONLY

            BEGIN [WORK]

            COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

            ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

            SET autocommit = {0 | 1}

       不能回滚的语句

            通常DDL语句不能回滚,例如创建或者删除数据库,表,存储过程

        保存点 

            保存点,回滚到保存点,删除保存点

            SAVEPOINT identifier

            ROLLBACK [WORK] TO [SAVEPOINT] identifier

            RELEASE SAVEPOINT identifier

        

            LOCK TABLES

                    tbl_name [[AS] alias] lock_type

                    [, tbl_name [[AS] alias] lock_type] ...

            lock_type:

                    READ [LOCAL]

                  | [LOW_PRIORITY] WRITE

            UNLOCK TABLES

转载于:https://my.oschina.net/465759695/blog/498948

你可能感兴趣的文章
Educational Codeforces Round 36 (Rated for Div. 2)
查看>>
深入理解javascript原型和闭包——从【自由变量】到【作用域链】
查看>>
Leetcode Sudoku Solver
查看>>
java多线程
查看>>
Navigator - BOM对象
查看>>
js中字符串的操作
查看>>
String类
查看>>
Hello Swift
查看>>
Codevs1029 遍历问题
查看>>
远程连接提示“为Administrator连接到现存会话发生错误(Id 0).操作成功”
查看>>
nginx配置ssl证书
查看>>
fastjson SerializerFeature详解
查看>>
spring源码读书笔记
查看>>
HDOJ-1015 Safecracker 【DFS】
查看>>
读书笔记-->Java经典编程300例--明日科技--清华大学出版社(第一版)
查看>>
如何在存储过程中自动添加分区
查看>>
普通分页笔记
查看>>
STL模板整理 map
查看>>
css常用属性和值
查看>>
webrtc源码编译+vs2017+生成sln
查看>>