第二章未总结的:
*修改表
表创建后,我们还可以通过添加,删除,修改表的列来修改表的定义。
1. 例如给Friend表添加一个 名为Address的新列:
ALTER TABLE Friend ADD Address VARCHAR(30);
2.一次添加多个列:
ALTER TABLE Friend ADD Email VARCHAR(30),IGR VARCHAR(25);
3.重命名:
ALTER TABLE Friend RENAME NewFriend;
4.修改列的属性:
ALTER TABLE 表名 MODIFY COLUMN 列名 要修改的数据类型
5.修改列名:
ALTER TABLE 表名 CHANGE 原列名 新列名+数据类型
6.中间加列:
ALTER TABLE 表名 ADD 列+数据类型 AFTER 列名
6.删除列:
ALTER TABLE 表名 DROP.COLUMN 要删的列名
*管理索引
注意:有了索引后,查询速度会变快,但当修改表时,会降低速率,所以索引要适可而止的用
创建索引:
^创建索引的关键字:CREATE INDEX
CREATE INDEX <索引名> ON <表名> (<列名一>,[<列名二>],...); [此为创建的非唯一索引]
CREATE UNIQUE INDEX <索引名> ON <表名> (<列名一>); [唯一索引]
^删除索引:
ALTER TABLE 表名 DROP INDEX 列名索引
^索引:从左往右匹配
保证数据完整性
3.1数据库完整性概述
* 数据完整性的重要性:防止储存垃圾数据,提高数据库的执行效率
*数据完整性实施的方法:
实体完整性(针对每一行有效) 主键约束(行) 唯一约束(列)
域完整性(针对每一列有效) 非空约束 默认约束
引用完整性(引用的编号有效)
用户自定义完整性(保证自定义规则)
*创建非空约束
^不允许在Name和PhoneNo列上输入NULL值得语法为:
CREATE TABLE Friend (
Name VARCHAR(40) NOT NULL,
PhoneNo VARCHAR(30) NOTNULL);
*主键约束(Primary Key Constraint):默认情况下,不会为空;只用一次;为非空约束
法一:
CREATE TABLE afterClass(
id INT NOT NULL,
NAME VARCHAR(20),
sex CHAR(2),
CONSTRAINT myprimary PRIMARY KEY (NAME)
);
法二:
CREATE TABLE afterClass(
id INT NOT NULL,
NAME VARCHAR(20),
sex CHAR(2),
PRIMARY KEY(id)
);
法三:
CREATE TABLE afterClass(
id INT NOT NULL PRIMARY KEY,
NAME VARCHAR(20),
sex CHAR(2)
);
*唯一约束:可以用多次,可以为空约束
法一:
唯一约束和默认约束:
CREATE TABLE afterClass(
id INT NOT NULL PRIMARY KEY,
NAME VARCHAR(20),
sex CHAR(2),
photonum INT UNIQUE DEFAULT 128900
);