您的位置:首页 > 数据库 > MySQL

MySQL学习笔记3(创建、修改、删除表)

2016-03-07 21:24 483 查看

Mysql学习笔记3

创建、修改、删除表

1:创建表的方法

2:表的完整性约束条件

3:查看表结构的方法

4:修改表的方法

5:删除表的方法

1:创建表

MySQL中,创建表是通过SQL语句CREATE TABLE实现的。其语法形式如下:

CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
、、、、、、
属性名 数据类型
);


1.1 完整性约束条件表

PRIMARY KEY标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL标识该属性不能为空
UNIQUE标识该属性的值是唯一的
AUTO_INCREMENT标识该属性的值自动增加。这是MySQL的SQL语句的特色
DEFAULT为该属性设置默认值
1.2 设置表的主键

主键是表的一个特殊字段。该字段能唯一地标识该表中的每条信息。主键主要目的是帮组MySQL以最快的速度查找到表中的某一条信息。主键可以是单一的字段,也可以是多个字段的组合。

例如:

CREATE TABLE tbexample1(
stu_id INT PRIMARY KEY,
stu_nama VARCHAR(20),
stu_sex BOOLEAN
);


CREATE TABLE tbexample2(
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id,course_id)
);


1.3 设置表的外键

外键是表的一个特殊字段。如果字段sno是一个表A的属性,且依赖于表B的主键。那么,称表B为父表,表A为子表,sno为表A的外键。通过sno字段将父表B和子表A建立关系。

设置外键的原则:必须依赖于数据库中已存在的父表的主键;外键可以为空值。

外键的作用是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。例如,stu_id是student表的主键,stu_id是grade表的外键。当stu_id为”123”的同学退学了,需要冲student表中删除该学生的信息。那么,grade表中stu_id为”123”的所有信息也应该同时删除。

设置外键的基本语法规则如下:

CONSTRAINT 外键别名 FOREIGN KEY(属性1,属性2,,,属性n)

REFERENCES 表名(属性1,属性2,,,属性n)

例如:

CREATE TABLE tbexample3(
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
CONSTRAINT wj FOREIGN KEY(stu_id,course_id) REFERENCES tbexample2(stu_id,
course_id)
);


1.4 设置表的非空属性

非空性是指字段的值不能为空值。非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。设置非空约束的基本语法规则如下:

属性名 数据类型 NOT NULL

例如:

CREATE TABLE tbexample4(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
stu_id INT,
CONSTRAINT wj1 FOREIGN KEY(stu_id) REFERENCES tbexample1(stu_id)
);


1.5 设置表的唯一性

唯一性是指所有记录中该字段的值不能重复出现。设置表的唯一性约束是指在创建表时为表的某些特殊字段加上UNIQUE约束条件。

1.6 设置表的属性值自动增加

AUTO_INCREMENT是MySQL数据库中一个特殊的约束条件。其主要用于为表中插入的新纪录自动生成唯一的ID。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。默认情况下,该字段的值是从1开始自增。

设置属性值字段增加的基本语法规则如下:

属性名 数据类型 AUTO_INCREMENT

例如:

CREATE TABLE tbexample5(
id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL
);


1.7 设置表的属性的默认值

在创建表时可以指定表中字段的默认值。如果插入一条新的记录时没有这个字段赋值,那么数据库系统会自动为这个字段插入默认值。默认值通过DEFAULT关键字来设置的。

设置默认值的基本语法规则如下:

属性名 数据类型 DEFAULT 默认值

例如:

CREATE TABLE tbexample6(
id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL,
english VARCHAR(20) DEFAULT 'zoro',
math FLOAT DEFAULT 0,
computor FLOAT DEFAULT 0
);


2:查看表结构

查看表结构是指查看数据库中已存在的表的定义。查看表结构的语句包括DESCRIBE语句和SHOW CREATE TABLE语句。通过这两个语句,可以查看表的字段名、字段的数据类型、完整性约束条件等。

MySQL中,SHOW CREATE TABLE语句可以查看表的详细定义。除DESCRIBE语句查询的内容外还有可以查看表默认存储引擎和字符编码。

3:修改表

修改表是指修改数据库中已存在的表的定义。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务。MySQL中通过ALTER TABLE语句来修改表。修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位子、更改默认存储引擎和产出表的外键约束等。

3.1 修改表名

语法格式如下:

ALTER TABLE 旧表名 RENAME [TO] 新表名;

3.2 修改字段的数据类型

字段的数据类型包括整数型、浮点数型、字符串型、二进制类型、日期和时间类型等。数据类型决定了数据的存储格式、约束条件和有效范围。

其基本的语法如下:

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

3.3 修改字段名

其基本语法如下:

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

其中,“就属性名”参数值修改前的字段名;“新属性名”参数指修改后的字段名;“新数据类型”参数修改后的数据类型,如不需要修改,则将新数据类型设置成与原来一样。

3.4 增加字段

ALTER TABLE 语句增加字段的基本语法如下:

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

[FIRST | AFTER 属性名2]表示添加位置,FIRST 表示添加到第一个位置。AFTER 属性名2表示在该字段后添加。默认添加到末尾。

ALTER TABLE user0 ADD phone VARCHAR(20);

ALTER TABLE user0 ADD age INT(4) NOT NULL;

ALTER TABLE user0 ADD num INT(8) PRIMARY KEY FIRST;


3.5 删除字段

其基本语法如下:

ALTER TABLE 表名 DROP 属性名;

ALTER TABLE user0 DROP id;


3.6 修改字段的排列位置

其基本语法如下:

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

ALTER TABLE user0 MODIFY name VARCHAR(30) FIRST;


3.7 更改表的存储引擎

其基本语法如下:

ALTER TABLE 表名 ENGING=存储引擎名;

3.8 删除表的外键约束

外键是一个特殊字段,其将某一表与其父表建立关联关系。在创建表的时候,外键约束就已经设定好了。由于特殊需要,与父表之间的关联关系需要去除,要求删除外键约束。

其基本语法如下:

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

ALTER TABLE tbexample3 DROP FOREIGN KEY wj;


4:删除表

删除表是指删除数据库中已存在的表。MySQL中通过DROP TABLE 语句来删除表。由于创建表时可能存在外键约束,一些表成为了与之关联的表的父表。要删除这些父表,情况比较复杂。

删除没有关联的表

MySQL中,直接使用DROP TABLE语句可以删除没有被其他关联的普通表。其基本语法如下:

DROP TABLE 表名;

删除有关联的表

先删除与之关联的外键,然后删除该表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: