关系型数据库 基本概念 关系模型把世界看作是由实体和联系组成 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);