数据库基础知识

数据库

数据库定义:数据库是长期存储在计算机上的有组织的、大量的、共享的数据的集合。具有较高独立性和较低冗余度。
数据库核心:数据模型。数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据、操作数据的。

数据模型

数据模型分为:概念模型(用于数据库设计);逻辑模型和物理模型;
数据模型的三要素:数据结构;数据操作;完整性约束
数据模型的完整性约束:实体完整性、参照完整性、用户自定义的完整性

事务

事务:指用户定义的一个数据库操作序列
事务的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;
全部评论

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务