首页 > 代码库 > mysql学习笔记(5-DDL命令)

mysql学习笔记(5-DDL命令)

服务器端命令:

     DDL:数据定义语言,主要用于管理数据库组件,例如表、索引、视图、用户、存储过程

     CREATE、ALTER、DROP

     DML:数据操纵语言,主要用管理表中的数据,实现数据的增、删、改、查;

     INSERT, DELETE, UPDATE, SELECT


     获取命令帮助:

     mysql> help  KEYWORD


数据库管理:

创建:

     CREATE  {DATABASE | SCHEMA}  [IF NOT EXISTS]  db_name;

         [DEFAULT]  CHARACTER SET [=] charset_name

         [DEFAULT]  COLLATE [=] collation_name

创建表:

CREATE TABLE [IF NOT EXISTS] tb_name (col1_def, col2_def, PRIMARY KEY(col_name,...), UNIQUE (col1,...), INDEX (col1,...)) [table_option]

使用示例:

MariaDB [datetype]> CREATE DATABASE data1 CHARSET ‘UTF8‘;

     查看支持的所有字符集:SHOW CHARACTER SET 

     查看支持的所有排序规则:SHOW  COLLATION


修改:

     ALTER {DATABASE | SCHEMA}  [db_name]

         [DEFAULT]  CHARACTER SET [=] charset_name

         [DEFAULT]  COLLATE [=] collation_name

示例:

MariaDB [datetype]> ALTER DATABASE data1 CHARSET ‘latin2‘ COLLATE ‘latin2_bin‘;


删除:

    DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

MariaDB [datetype]> DROP DATABASE data1;
Query OK, 0 rows affected (0.00 sec)


查看:

    SHOW DATABASES LIKE  ’‘;

MariaDB [datetype]> SHOW DATABASES LIKE ‘data%‘;    # %任意长度的任意字符
+------------------+
| Database (data%) |
+------------------+
| data1            |
+------------------+
1 row in set (0.00 sec)
MariaDB [datetype]> SHOW DATABASES LIKE ‘data_‘;    # _代表单个字符



表管理:

创建:

CREATE TABLE  [IF NOT EXISTS]  tbl_name  (create_defination)  [table_options]


     create_defination:

         字段:col_name  data_type

         键:

             PRIMARY KEY (col1, col2, ...)

             UNIQUE KEY  (col1, col2,...)

             FOREIGN KEY (column)

         索引:

              KEY|INDEX  [index_name]  (col1, col2,...)

CREATE TABLE t1 (id int unsigned auto_increment primary key not null,name char(5) not null);

    table_options:

          ENGINE [=] engine_name


    查看数据库支持的所有存储引擎类型:

    mysql> SHOW  ENGINES;


     查看某表的存储引擎类型:

          mysql> SHOW  TABLES  STATUS  [LIKE  ‘tbl_name‘]


    第二种创建方式:

        复制表结构;

        CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

              { LIKE old_tbl_name | (LIKE old_tbl_name) }


    注意:Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎;

    同一个库中表要使用同一种存储引擎类型;

修改:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name  [alter_specification [, alter_specification] ...]


alter_specification:

     字段:

         添加:ADD  [COLUMN]  col_name  data_type  [FIRST | AFTER col_name ]

         删除:DROP  [COLUMN] col_name 

     修改:

         CHANGE [COLUMN] old_col_name new_col_name column_definition  [FIRST|AFTER col_name]

         MODIFY [COLUMN] col_name column_definition  [FIRST | AFTER col_name]

     键:

         添加:ADD  {PRIMARY|UNIQUE|FOREIGN}  KEY (col1, col2,...)

     删除:

         主键:DROP PRIMARY KEY

         外键:DROP FOREIGN KEY fk_symbol

     索引:

         添加:ADD {INDEX|KEY} [index_name]  (col1, col2,...)

         删除:DROP {INDEX|KEY}  index_name

     表选项:

         ENGINE [=] engine_name

    

     查看表上的索引的信息:

     mysql> SHOW INDEXES FROM tbl_name;


删除:

    DROP  TABLE  [IF EXISTS]   tbl_name [, tbl_name] ...


表的引用方式:

    tbl_name

    db_name.tbl_name




索引:要有索引名称;


     创建:

     CREATE  [UNIQUE|FULLTEXT|SPATIAL] INDEX  index_name  [BTREE|HASH]  ON tbl_name (col1, col2,,...)

    

     删除:

     DROP  INDEX index_name ON tbl_name


本文出自 “汪立明” 博客,请务必保留此出处http://afterdawn.blog.51cto.com/7503144/1925916

mysql学习笔记(5-DDL命令)