数据库基础知识

数据库

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

数据模型

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

事务

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

相关推荐

昨天 10:17
门头沟学院 Java
昨天面美团,jvm,juc问的好深啊,感觉小林coding不太够喔,牛油们有没有什么推荐的八股网站嘛🕒&nbsp;岗位/面试时间👥&nbsp;面试题目🤔&nbsp;面试感受
明天不下雨了:小林Coding:https://xiaolincoding.com/ 全栈哥:https://www.pdai.tech/ Guide哥:https://javaguide.cn/ 秀哥:https://interviewguide.cn/ 沉默王二:https://javabetter.cn/home.html 磊哥:https://www.javacn.site/interview/basic/ 小傅哥:https://bugstack.cn/ 源码哥:https://doocs.github.io/source-code-hunter/#/ 各大厂的公众号技术文章和一些经典的书籍
面试太紧张了怎么办?
点赞 评论 收藏
分享
牛客54175811...:今年对双非很难。1、争取一段大厂实习经历,2、狂磕八股,3、再跑个难度提升的项目。
点赞 评论 收藏
分享
青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务