MySQL常识篇

指导:

    如何使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值