MySQL:创建、修改和删除表

1.创建数据库:CREATE DATABASE 数据库名;

 删除数据库:DROP DATABASE 数据库名;

 查看数据库编码:SHOW CREATE DATABASE 数据库名;   

 修改数据库默认编码:ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码名 [COLLATE ...]; 

 查询存储引擎的类型:SHOW ENGINES;

查询结果中,Engine参数指存储引擎名称;Support参数说明MySQL是否支持该类型引擎;Comment参数表示对该引擎的评论;Transaction参数表示是否支持事务处理;XA参数表示是否分布式交易处理的XA规范;Savepoints参数表示是否支持保存点,以方便事务的回滚操作;

InnoDB存储引擎是default的,也就是数据库默认的存储引擎,下面我们简单介绍一下InnoDB:InnoDB是MySQL的一种存储引擎,InnoDB给MySQL提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全。InnoDB是MySQL上第一个提供外键约束的表引擎,而且对事务处理的能力,也是其他存储引擎不能比拟的。不过这种引擎的缺点就是读写效率稍差,占用的数据空间相对比较大。

2.创建表:CREATE TABLE 表名 (

        属性名 数据类型 [完整约束条件],

        属性名 数据类型 [完整约束条件],

        ...
        ...

        属性名 数据类型 [完整约束条件]

         );

  在创建之前要选择数据库,格式:USE 数据库名;

  查看表编码:SHOW CREATE TABLE 表名;

  查看字段编码:SHOW FULL COLUMNS FROM 表名;  

  约束条件表:

约束条件

说明

PRIMARY KEY

 标识该属性为该表的主键,可以唯一的标识对应的元组

FOREIGN KEY

 标识该属性为该表的外键,是与之联系某表的主键
 NOT NULL

 标识该属性不能为空

UNIQUE

 标识该属性的值是唯一的
AUTO_INCREMENT

 标识该属性的值是自动增加,这是MySQL的SQL语句的特色

 DEFAULT

为该属性设置默认值

 

 1)设置表的主键:

  单字段主键格式:属性名 数据类型 PRIMARY KEY

CREATE TABLE student1 (
     id int PRIMARY KEY,
     name varchar(20)
     );

  多字段主键格式:PRIMARY KEY(属性名1,属性名2....属性名n)

CREATE TABLE student2 (
        id int,
        stu_id int,
        name varchar(20),
        PRIMARY KEY(id,stu_id)
        );  

 2)设置表的外键:

  CONSTRAINT 外键别名 FOREIGN KEY(属性1,属性2,....属性n) REFERENCES 表名(属性1',属性2',...属性n')

CREATE TABLE teacher (
       id int PRIMARY KEY,
       stu_id int,
       name varchar(20),
       CONSTRAINT STUID FOREIGN KEY(stu_id) REFERENCES student1(id)
        );

 设置表的非空约束:属性名 数据类型 NOT NULL

 设置表的唯一性约束:属性名 数据类型 UNIQUE

 设置表的属性值自动增加:属性名 数据类型 AUTO_INCREMENT

  AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLINT、INT和BIGINT),在默认的情况下,该字段的值是从1开始自增

 设置表的属性的默认值:属性名 数据类型 DEFAULT 默认值

CREATE TABLE student3 (
        id int PRIMARY KEY AUTO_INCREMENT,
        teacher_id int UNIQUE,
        name varchar(20) NOT NULL,
        sex varchar(10) DEFAULT 'male'
        );

 3)查看表结构:

  查看表基本结构语句:DESCRIBE 表名;

    通过查看表的结构,就很明确的对表进行解读,而且可以查看一下自己创建的表有没错误,这个SQL语句必须会用

  查看表详细结构语句:SHOW CREATE TABLE 表名;

    通过这个SQL语句可以查看表的详细定义,除了字段名、字段的数据类型、约束条件外,还可以查看表的默认存储引擎和字符编码

3.修改表

 1)修改表名:ALTER TABLE 旧表名 RENAME 新表名;

 2)修改字段的数据类型:ALTER TABLE 表名 MODIFY 属性名 数据类型;

            ALTER TABLE 表名 CHANGE change address address char(40) ;

 3)修改字段名:ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;

 4)增加字段:ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];

   “属性名1”参数指需要增加的字段的名称;“FIRST”参数是可选参数,其作用是将新增字段设置为表的第一个字段;“AFTER”参数也是可选的参数,其作用是将新增字段添加到“属性名2”后面;“属性名2”当然就是指表中已经有的字段

 5)删除字段:ALTER TABLE 表名 DROP 属性名;

 6)更改表的存储引擎:ALTER TABLE 表名 ENGINE = 存储引擎名;

 7)删除表的外键约束:ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;

 8)修改表的字符编码格式:

    修改表的默认字符集和所有字符列(CHAR,VARCHAR,TEXT):ALTER TABLE 表名 CONVERT TO CHARACTER SET 字符编码名 [COLLATE ...]

    修改表的默认字符集:ALTER TABLE 表名 DEFAULT CHARACTER SET 字符编码名[COLLATE...];  

    修改字段的字符集:ALTER TABLE 表名 CHANGE 属性名1 属性名2 CHARACTER SET 字符编码名 [COLLATE ...];

4.删除表:

 删除没有被关联的普通表:DROP TABLE 表名;

 删除被其他表关联的父表:

  方法一:先删除子表,在删除父表

  方法二:删除父表的外键约束(上面有介绍),再删该表

 修改表的编码:ALTER   TABLE   `Admin_table`   DEFAULT   CHARACTER   SET   utf8   COLLATE   utf8_bin;

posted @ 2017-10-01 14:10  养诚  阅读(684)  评论(0编辑  收藏  举报