关系型数据库
基本概念
关系模型把世界看作是由实体和联系组成
Entity:实体,现实世界客观存在并可相互区别的事物。实体所具有的某一特性称为属性(Attribute)
Relationship:联系
以关系模型来创建的数据库称为关系型数据库 Relational Database,相似的实体被存入表 table 中,table 是关系型数据库的核心单元
表 table 的内部数据分为列 column 和 行 row ,一行代表一个实体,每一列代表一个属性
主键 Primary Key 表中每一行与其他行的区分
外键 Foreign Key 表达表与表之间的关联关系
表之间的关联关系分为
1.one2one
2.one2many
3.many2many
关系型数据库管理系统:Relational DataBase Management System (RDBMS)
结构化查询语言:Structured Query Language (SQL)
SQL语句分类:
1.数据定义语言(DDL):创建、修改、删除数据结构 CREATE、DROP、RENAME
2.数据查询语言(DQL):查询数据 SELECT
3.数据操作语言(DML):插入、更新、删除数据 INSERT、UPDATE、DELETE
4.数据控制语言(DCL):GRANT、REVOKE
管理数据库和表
创建和使用数据库
创建数据库:
CREATE DATABASE 数据库名;
连接到数据库:
USE 数据库名;
删除数据库:
DROP DATABASE 数据库名;
数据类型
常用的数据类型如下:
INT / DECIMAL / VARCHAR / TEXT / DATETIME
管理表
创建表:
CREATE TABLE 表名 (列名 列的数据类型 (列的约束))
删除表:
DROP TABLE 表名
表中添加列:
ALTER TABLE 表名 ADD 列名 列的数据类型 (列的约束)
表中删除列:
ALTER TABLE 表名 DROP COLUMN 列名
表中更改列:
ALTER TABLE CHANGE 修改前列名 修改后列名 新列数据类型(列的约束)
创建索引:
CREATE (UNIQUE) INDEX 索引名 ON 表名 列名
删除索引:
ALTER TABLE 表名 DROP INDEX 索引名
数据完整性
包括:
1.实体完整性:主键约束、唯一约束
2.域完整性:外键约束、检查约束、默认值定义、非空约束
3.引用完整性:外键约束
4.用户自定义完整性
非空约束
句末 + NOT NULL
主键约束
ALTER TABLE class PRIMARY KEY auto_increment; //主键约束+自动编号
ALTER TABLE class CHANGE cla_id cla_id int AUTO_INCREMENT //增加主键
ALTER TABLE class cla_id int AUTO_INCREMENT = 100 //从100开始自动编号
ALTER TABLE class DROP primary key //删除主键
唯一约束
UNIQUE; //可以为空 NULL
create table t1(
t1_id int ,
t1_name varchar(20) ,
CONSTRAINT unq_name UNIQUE(t1_name)
)
ALTER TABLE class DROP INDEX 唯一约束列名, //删除唯一约束
默认值约束
DEFAULT '约束的具体内容'
检查约束
CHECK(U_Type = 0 OR U_Type = 1); //示例
外键约束
注意:
1.一般情况下,外键只能连主键
2.外键和主键的类型必须一样
3.外键一般写在多方中
语法示例:
CREATE TABLE classes(
cla_id INT PRIMARY KEY auto_increment,
cla_name VARCHAR(20),
cla_address VARCHAR(30)
)
CREATE TABLE student(
stu_id INT PRIMARY KEY auto_increment,
stu_name VARCHAR(20),
stu_age INT,
stu_address VARCHAR(30)DEFAULT'红瓦寺',
cla_id INT,
CONSTRAINT FK_student_claId FOREIGN KEY(cla_id)REFERENCES classes(cla_id)
)
删除外键约束:
ALTER TABLE 表名 DROP FOREIGN KEY (外键名 FK_student_claId);