mysql中为什么删除一个表中的主键约束后该字段不能为空_MySQL数据表的操作
MySQL数据表的操作
一、表的操作
表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成。主要用来存储数据记录。表的操作,包含创建表、删除表、修改表等。
1、创建表
语法形式:CREATE TABLE table_name(
属性名1 数据类型,
。。。。,
属性名N 数据类型,
)
例:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
addr VARCHAR(40)
)
2、删除表
SQL语句:DROP TABLE t_dept;
表示删除表t_dept,要删除的表必须存在否则会报错。
3、修改表
3.1、修改表名
SQL语句:ALTER TABLE t_dept RENAME tab_dept
3.2、增加字段
SQL语句:ALTER TABLE table_name ADD 属性名 属性类型,在表的最后一个位置增加一个字段。
SQL语句:ALTER TABLE table_name ADD 属性名 属性类型 FIRST,在表的第一个位置增加一个字段。
SQL语句:ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名,在表的指定的字段之后增加字段。
3.3、删除字段
SQL语句:ALTER TABLE table_name DROP 属性名,删除表中指定的字段。
3.4、修改字段
修改某个字段的数据类型:ALTER TABLE table_name MODIFY 属性名 属性类型。
修改某个字段的名称:ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧属性的数据类型。例如:ALTER TABLE tab_dept CHANGE addr address VARCHAR(40)
同时修改某个字段的名称和数据类型:ALTER TABLE table_name 旧属性名 新属性名 新属性的数据类型。
3.5、修改字段的顺序
调整某个字段到表的第一个位置,ALTER TABLE table_name MODIFY 属性名 数据类型 FIRST。
调整某个字段到表的某个字段之后,ALTER TABLE table_name MODIFY 属性名1 数据类型 AFTER 属性名2。说明:属性名1是要调整的字段,属性名2 是要调整到字段后面。
二、表的约束
完整性是指数据的准确性和一致性,而完整性检查就是指的是检查数据的准确性和一致性。
1、设置非空约束(NOT NULL,NK)
当数据库表中的某个字段如果不希望设置为空时候,则可以使用NK约束。为字段加上NOT NULL约束的时候,就可以保证该字段不能为空,如果用户插入的记录该字段为空的话,数据库就会报错。
SQL语句:
CREATE TABLE table_name(
属性名 数据类型 NOT NULL,
…
)
2、设置字段的默认值 (DEFAULT)
当数据库表插入一条数据时候,如果没有为某个字段赋值,那么数据库系统就会自动给该字段赋值。
CREATE TABLE table_name(
属性名 数据类型 DEFAULT 默认值,
…
)
3、 设置唯一约束(UNIQUE,UK)
当数据库表中的某个字段不允许重复的时候,可以设置UK约束。
CREATE TABLE table_name(
属性名 数据类型 UNIQUE,
…
)
4、设置主键约束
当数据库表中的某个字段用来唯一标识所有的记录的时候,就可以设置PK约束。主键字段是唯一、非空的值。
CREATE TABLE table_name(
属性名 数据类型 PRIMARY KEY,
…
)
主键约束相当于非空约束+唯一约束。
多字段主键(联合主键)设置如下,
CREATE TABLE table_name(
属性名 数据类型,
…
CONSTRAINT 约束名 PRIMARY KEY(属性名1,属性名2…)
5、设置字段值自动增加(AUTO_INCREMENT)
设置AUTO_INCREMENT约束后,字段会生成一个唯一的ID值。该字段必须是整数类型。
CREATE TABLE table_name(
属性名 数据类型 AUTO_INCREMENT,
…
)
6、设置外键约束(FOREIGN KEY,FK)
设置外键约束的两个表必须具有父与子的关系。设置FK约束的字段,必须依赖于数据库中已经存在的父表的主键。
CREATE TABLE table_name(
属性名 数据类型,
…
CONSTRAINT 外键约束名 FOREIGN KEY (属性名1)
REFERENCES 表名 (属性名2)
)
END
图文:网络
排版:96编辑器