从来就没有救世主  也不靠神仙皇帝  要创造人类的幸福  全靠我们自己  

mysql ---表的操作

 

创建表、查看表结构、修改表、删除表

 

1. 创建表

  创建表之前选定数据库:use testx;

create table table2(属性名 数据类型 [约束],
                    属性名 数据类型 [约束]
                    ) ENGINE=XX AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

  约束:

    PRIMARY KEY              该属性/字段设为此表主键

    FOREIGN KEY              该属性/字段为该表外键,即另一个表的主键

    NOT NULL                     属性不能为空

    UNIQUE                         属性值唯一

    AUTO_INCREMENT     属性值自动增加

    DEFAULT                       属性值为默认值

 

(1)设置主键

  ①设置单个字段为主键

create table table2( id INT PRIMARY KEY,
                     name VARCHAR(20)
                    );

  ②设置多个字段为主键

create table table2( id1 int,
                     id2 int,
                     name VARCHAR(20),
                     primary key(id1,id2)
                    );

  通过多个主键组合确定唯一的记录

 

(2)设置外键

  表A有一个字段是表B的主键,则B为父表,A为子表。

  子表的外键关联的必须是父表的主键,且数据类型必须一致

  创建了table2,有两个主键id1、id2,将这两个字段作为表table3的外键

create table table2( id1 int,
                     id2 int,
                     name VARCHAR(20),
                     address varchar(20),
                     primary key(id1,id2)
                    );

 

create table table3( id int primary key,
                     id1 int,
                     id2 int,
                     constraint ids foreign key(id1,id2) references table2(id1,id2)
                    );

 

 

(3)自动增加属性

  该字段必须是主键的一部分,一个表只能有一个字段(必须是整数类型)使用 AUTO_INCREMENT 约束。

  如果该字段增加到了其数据类型能表示的最大值,则继续插入数据会产生错误。

  每插入一条数据,该字段为上条记录该字段值增1

create table table4( id int primary key auto_increment,
                     name varchar(20)
                    );

 

 

  插入数据:  

  ①该字段值填 null或0,则该字段值为上条记录该字段值加1

insert into table values(0,'a')
insert into table values(0,'b')
insert into table values(0,'c')

  

  ②该字段插入非0数,则该字段值就是插入的值

insert into table values(5,'a')
insert into table values(0,'d')

  

  ③插入数据时,不指定该字段

insert into table(name) values('xx')

  

 

 

 

(4)设置字段默认值

  属性名  数据类型 DEFAULT 默认值

 

 

2.  查看表结构

(1)DESC 表名

DESC table4;
DESCRIBE table4;

  

 

 

 

(2)查看表详细结构

  查看字段名、数据类型、约束、存储引擎、字符编码

SHOW CREATE TABLE table4;

  

 

 

 

 

3. 修改表

 

(1)修改表名

ALTER TABLE 旧表名 RENAME 新表名;

 

(2)修改数据类型

  整型、浮点、字符串、二进制、日期时间类型

  数据类型决定了数据的存储格式、约束、有效范围

ALTER TABLE 表名 MODIFY 属性名 数据类型;

 

(3)修改字段名

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 数据类型;

  可修改字段名的同时修改数据类型

 

(4)增加字段

ALTER TABLE 表名 ADD 属性1 数据类型 [约束] [FIRST | AFTER 属性2];

 

(5)删除字段

ALTER TABLE 表名 DROP 属性名;

 

(6)修改字段的位置

ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST | AFTER 属性名2;

 

(7)修改存储引擎

ALTER TABLE 表名 ENGINE=存取引擎名;

 

(8)删除表的外键约束(当然是对子表操作)

ALTER TABLE 表明 DROP FOREIGN KEY 外键别名;

 

4. 删除表

(1)删除没有被关联的普通表

DROP TABLE 表名;

 

(2)删除被其它表关联的父表

  在1的(2)建立了两个表,table2为父表,table3为子表

  尝试删除父表:DROP TABLE table2;

  

 

 

  

  查看子表结构:子表table3通过外键 ids与父表table2建立关联

  

 

 

 

  要删除父表table2,则需要先删除子表table3中的外键约束:3的(8)

ALTER TABLE table3 DROP FOREIGN KEY ids;

 

posted @ 2020-05-03 21:58  T,X  阅读(175)  评论(0编辑  收藏  举报