数据库基础知识
数据库
数据库定义:数据库是长期存储在计算机上的有组织的、大量的、共享的数据的集合。具有较高独立性和较低冗余度。
数据库核心:数据模型。数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据、操作数据的。
数据模型
数据模型分为:概念模型(用于数据库设计);逻辑模型和物理模型;
数据模型的三要素:数据结构;数据操作;完整性约束
数据模型的完整性约束:实体完整性、参照完整性、用户自定义的完整性
事务
事务:指用户定义的一个数据库操作序列
事务的ACID特性:原子性(操作序列要么全部执行、要么全部回滚);一致性(数据库只能从一个一致性状态到另一个一致性状态);隔离性(不同用户并发访问时是互不影响的);持续性(事务对数据库的修改是永久的);
索引
CREATE UNIQUE INDEX stusno ON Student(sno desc) ALTER TABLE Student DROP INDEX stusno
视图
CREATE VIEW CS_Student AS SELECT sno, sname FROM Student WHERE sdept='CS' CREATE VIEW CS_Student AS SELECT sno, sname FROM Student WHERE sdept='CS' WITH CHECK OPTION
SQL 语句
数据定义 CREATE ALTER DROP
数据定义针对的是列,也就是表属性 CREATE TABLE Student( sno CHAR(9) PRIMARY KEY, sname CHAR(20) UNIQUE, ssex CHAR(2), sage SMALLINT, sdept CHAR(20) ) ALTER TABLE Student ADD sentrance DATE/ ADD UNIQUE(sname) DROP COLUMN sname MODIFY COLUMN sage INT DROP TABLE <表名> [RESTRICT|CASCADE]
数据查询 SELECT
SELECT [ALL|DISTINCE]: ALL表示返回所有行,DISTINCE表示返回不重复的行 SELECT * from Student WHERE sname='Bill GATES'; SELECT * from Student WHERE sname like '%Bill%' 通配符:%(代表任意长度的字符串), _(代表任意单词字符) BETWEEN ... AND ...; NOT BETWEEN ... AND ... IN ...; NOT IN ... ORDER BY Sage [ASC|DESC] LIMIT: SELECT * FROM Student LIMIT [offset], rows | rows OFFSET offset 聚集函数:count(*), sum(field1), avg(field1), max(field1), min(field1) GROUP BY: SELECT Sage, count(*) from Student group by sage having count(*)>1 链接查询: SELECT Student.*, SC.* FROM Student, SC WHERE Student.sno = SC.sno
数据操纵 INSERT UPDATE DELETE
数据操纵针对的是记录,也就是行 INSERT INTO table1(filed1, field2, ...) VALUES (value1, value2, ...) UPDATE table1 SET field1=value1, field2=value2 WHERE 范围 DELETE FROM table1 WHERE 范围 <----------------删除行,删除列用ALTER语句的DROP
数据控制 GRANT REVOKE
将指定操作对象的指定操作权限授予给指定用户 grant <权限> [,<权限>]… on <对象类型 > <对象名> [,<对象类型 > <对象名>].. to <用户> [,<用户>]… [with grant option] grant select, update(Sno) on table Student to U1; 回收权限 revoke <权限> [,<权限>]… on <对象类型 > <对象名> [,<对象类型 > <对象名>].. from <用户> [,<用户>]… [cascade | restrict] revoke select on table sc from public;