1.表的基本概念:
表示包含数据库中所有数据的数据库对象
表中的数据库对象包含列,索引和触发器
列(列):也称属性列
索引(索引):是指根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,使其索引所指向的列中的数据不重复
触发器(触发器):是指用户定义的事务命令的集合,当对一个表中的数据进行插入,更新或者删除时这组命令就是自动执行,可以用来确保数据的完整性和安全性
2.创建表:
CREATE TABLE table_name(
属性名数据类型,
属性名数据类型,
。
。
属性名数据类型
);
建议表名标识符为t_xxx或tab_xxx
2.1注意事项:
1,创建表之前需要选择数据库,否则报错:未选择数据库(选择数据库的语句:USE database_name)
2、如果数据库中已经存在该表,则报错:Table 'table_name' already exists
3.查看表结构:
3.1查看表的定义:
DESCRIBE table_name;
3.2查看表结构的详细定义:
SHOW CREATE TABLE table_name;
4.删除表:
DROP TABLE table_name;
5.修改表:
5.1修改表名:
ALTER TABLE old_table_name RENAME [TO] new_table_name;(可以通过DESC查询是否修改成功)
5.2增加字段:
在表的最后一个位置增加字段:
ALTER TABLE table_name ADD 属性名 属性类型;
在表的第一个位置增加字段:
ALTER TABLE table_name ADD 属性名 属性类型 FIRST;
在表的指定字段之后增加字段:
ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名;
5.3删除字段:
ALTER TABLE table_name DROP 属性名;
5.4修改字段:
5.4.1修改字段的数据类型:
ALTER TABLE table_name MODIFY 属性名 数据类型;
5.4.2修改字段的名字:
ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型;
5.4.3同时修改字段的名字和属性
ALTER TABLE table_name CHANGE 旧属性名 新属性名 新数据类型;
5.4.4修改字段的顺序:
ALTER TABLE table_name MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
6.操作表的约束:
针对表中的数据做一些完整性检查操作,通过表的约束完成
完整性是指数据的准确性和一致性
MySQL支持的完整性约束:
完整性约束关键字 含义
NOT NULL 约束字段的值不能为空
DEFAULT 设置字段的默认值
UNIQUE KEY(UK) 约束字段的值唯一
PRIMARY KEY(PK) 约束字段为表的主键,可以作为该表记录的唯一标识
AUTO_INCREMENT 约束字段的值为自动增加
FOREIGN KEY(FK) 约束字段为表的外键
6.1约束可以分为两类:
单列约束:即每个约束只约束一列数据;
多列约束:即每个约束可以约束多列数据;
6.2NOT NULL(NK):
CREATE TABLE table_name(
属性名 数据类型 NOT NULL,
);
6.3DEFAULT:
CREATE TABLE table_name(
属性名 数据类型 DEFAULT 默认值,
);
6.4UNIQUE:
CREATE TABLE table_name(
属性名 数据类型 UNIQUE L,
);(如果插入重复报错:ERROR 1062 (23000):Duplicate entry 'c' for key 'dname')
(如果想给字段dname上的UK约束设置一个名字,可以执行SQL语句CONSTRAINT)
例如:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT uk_dname UNIQUE(dname)
);
6.5PRIMARY KEY(PK)
用该字段来唯一标识所有记录,便于数据库管理系统快速查找到表中的记录(分为单子段主键和多字段主键)
6.5.1单子段主键:
CREATE TABLE table_name(
属性名 数据类型 PRIMARY KEY,
);
(如果想给字段dname上的PK约束设置一个名字,可以执行SQL语句CONSTRAINT)
例如:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT pk_dname PRIMARY KEY(dname)
);
6.5.2多字段主键:
CREATE TABLE table_name(
属性名数据类型,
[CONSTRAINT约束名] PRIMARY KEY(属性名,属性名...)
);
(如果想给字段DNAME上的PK约束设置一个名字,可以执行SQL语句约束)
例如:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT pk_dname PRIMARY KEY(dname)
);
6.6AUTO_INCREMENT:
一个数据库表中只能有一个字段使用该约束,该字段的数据类型必须是整数类型
CREATE TABLE table_name(
属性名数据类型AUTO_INCREMENT,
);
6.7FORIGN KEY(FK):
外键保证两个多个表之间的参照完整性
设置外键约束的两个表之间会具有父子关系,子表中的为外键
CREATE TABLE table_name(
属性名数据类型,
属性名数据类型
......
CONSTRAINT外键约束名FOREIGN KEY(属性名1)
参考表名(属性2)
);