数据库高级
学习数据库相关知识后,请务必一定要看注意事项。
《数据库语句需要注意的事项》:https://blog.csdn.net/qq_43098690/article/details/121661835
一、数据库的完整性
顾名思义,保证保存在数据库中的数据必须是有效的,即有效性和准确性。
确保数据的完整性 = 在创建表时给表中添加约束(多个约束条件之间使用空格间隔)
完整性的分类:
- 实体完整性(行完整性)
- 域完整性(列完整性)
- 引用完整性(关联表完整性)
主键约束:primary key
唯一约束:unique [key]
非空约束:not null
默认约束:default
自动增长:auto_increment
外键约束: foreign key
建议这些约束应该在创建表的时候设置
下面有个例子,可以使用:
## 建立一个 学生表
create table student(
studentno int primary key auto_increment,
loginPwd varchar(20) not null default '123456',
studentname varchar(50) not null,
sex char(2) not null,
gradeid int not null,
phone varchar(255) not null,
address varchar(255) default '学生宿舍',
borndate datetime,
email varchar(50)
);
1. 实体完整性(行完整性)
啥叫实体?
实体:即表中的一行(一条记录)代表一个实体(entity)
实体完整性的作用:标识每一行数据不重复。
实体完整性主要用到的约束类型:
主键约束(primary key)
唯一约束(unique)
自动增长列(auto_increment)
1.1 主键约束(primary key)
注:每个表中要有一个主键。 数据唯一,且不能为 null
示例
第一种添加方式
## 直接在需要设置的列名 设置主键
CREATE TABLE student( id int primary key, name varchar(50) );
第二种添加方式
## 此种方式优势在于,可以创建联合主键
## 标明 需要被定为主键 的 列名
CREATE TABLE student( id int, name varchar(50), primary key(id) );
CREATE TABLE student( classid int, stuid int, name varchar(50), primary key(classid,stuid) );
第三种添加方式
## 通过 修改 的方式,给表添加主键
CREATE TABLE student( id int, name varchar(50) );
ALTER TABLE student ADD PRIMARY KEY (id);
1.2 唯一约束(unique)
特点:数据不能重复。
比如,常见的身份证号码不能重复
## 设置身份证号 唯一
CREATE TABLE student( Id int primary key, Name varchar(15),idcardnum varchar(18) unique );
1.3 自动增长列(auto_increment)
sqlserver数据库 (identity-标识列)
oracle数据库(sequence-序列)
给主键添加自动增长的数值,列只能是整数类型
## 设置 学生id,自动增长
CREATE TABLE student( Id int primary key auto_increment, Name varchar(50) );
INSERT INTO student(name) values(‘tom’);
2. 域完整性
域是什么东西?
域代表当前单元格
域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较
域完整性约束