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

来源:互联网 发布:软件开发招标 编辑:程序博客网 时间:2024/04/30 19:14

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 表名;

删除有关联的表
先删除与之关联的外键,然后删除该表。

1 0
原创粉丝点击