SQL数据库基础知识--sql语言分类DQL、DML、DDL、DCL

数据库概论

数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一
定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围
内可以被多个用户共享
数据模型:层次模型、网状模型、关系模型,据说下一代是对象模型
关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数
据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的
数据能以不同的方式被存取或者重新召集,而不需要更新组织数据库的表格。
目前常见RDBMS主要有Oracle收费【运行稳定、性能优异、大型企业级应用开发首选】、MySQL免费
【开源免费、体积小、速度快、适用于中小型企业应用开发】、DB2收费【速度快、可靠性好、适用于
海量数据存储,主要用于在使用IBM组件时】、SQLServer【主要在.net应用】、Sybase【电信行业历
史原因使用】
DBMS数据库管理系统
是位于用户和操作系统之间的一层数据管理软件。科学地组织和存储数据,高效地获取和维护数据
基础功能:数据定义功能DDL、数据操纵功能DML、数据库的运行管理、数据库的建立和维护功能
数据库特点:
数据库中的数据尽可能不重复,以最优化的方式为多种应用服务
数据结构独立于应用
对数据的CRUD由统一软件进行管理和控制DBMS

数据模型

数据模型从应用开发的角度上来说可以分为2个不同的层次
概念模型或者逻辑模型,从用户的观点来对数据和信息进行建模,可以使用ER图进行描述
E实体(矩形),属性列采用椭圆表示,采用无定向线连接实体和属性
R关系(菱形框),数据和数据之间的关系有三种:1:1、1:n或者n:1、n:m
容易出现的错误:不能分析出主外键(主键是标识属性,不可能有外键)
学号 姓名 年龄 性别
物理模型。在概念模型的基础上考虑各种具体的技术实现因素,进行数据库体系结构设计。需要确
定所有的表和列,定义主外键,基于用户需求考虑范式的问题
数据库选型—SQL语句
关系模式—带表头【元数据】的二维表格。具体存储位置对用户透明
关系模型的特点
建立在严格的数学概念之上【唯一】
实体和各类联系都用关系表示
数据的操纵对象是关系,返回结果也是关系
关系模型的存取路径对用户透明,优点在于数据独立性、高安全性,简化编程
缺点:存储路径对用户透明导致查询效率不如非关系型数据库
SQL
SQL结构化查询语言是一种数据库操作的非过程式编程语言,用于存取数据以及查询、更新和管理关系
型数据库系统,一般脚本文件后缀为.sql
经过ANSI和ISO标准化组织结构进行标准化,但是各个数据库管理系统都对标准SQL规范进行了编改和
扩充,扩展部分各个数据库不通用,标准部分通用
SQL的特点:
统合统一、高度非过程化
面向集合的操作方式
以同一种语法结构提供两种使用方法,命令行方式交互和嵌入主语言
语法简单,其中只有94个英文单词,核心功能只有6个单词【insert update delete select】
NoSQL
NoSQL泛指非关系型数据库,主要用于针对超大规模和高并发的社交SNS类型网站的解决方案
常见的NoSQL数据库有4种类型:
key-value数据库,使用hash表存储数据。例如Redis
列存储数据库,主要针对分布式的海量数据,例如HBase
文档型数据库,主要存储版本化的文档信息,例如MongoDB
图形化数据库,主要用于计算数据之间的关系,例如Neo4j
NoSQL适用场景
数据模型比较简单
需要灵活性很强的IT系统中
对数据库性能要求较高
不需要高度数据一致性
SQL vs NoSQL
复杂查询SQL数据库比较擅长
SQL数据库不适合分层次的数据存储,NoSQL可以很好的实现数据的分层次存储,更适合大数据
对于要求数据严格一致性的应用中SQL非常使用,而且稳定,能够保证数据操作的原子性和一致
性;而NoSQL对事务的处理能力有限,一般保证最终一致性
SQL厂商支持,而NoSQL是社区支持
性能对比中,NoSQL明显优于SQL数据库,一般NoSQL都充分的利用系统的内存资源
NoSQL数据库开发方便,不用考虑数据关系和格式
MySQL数据库
MySQL使用的是SQL语句,体积小、速度快、免费开源的关系型数据库
MySQL可以支持6万多张表,约50亿行的企业级数据库应用
每个表可以最多支持64个索引,每个所以可以由1-16个列构成,最大索引宽度为为1000字节
正常字符串的比较不区分大小写
MySQL数据库最大限制取决于操作系统对文件大小的限制,不是MySQL内部限制
使用MySQL8
MySQL8比MySQL5.7快2倍
MySQL体系结构概述
MySQL是由SQL接口、解析器、优化器、缓存、存储引擎
1、客户端向MySQL服务器发送一个SQL语句
2、服务器首先检查缓存,如果命中则立刻返回存储在缓存中的结果,否则下一步
3、服务器首先进行SQL语句解析、预处理,再由优化器生成对应的执行计划
4、MySQL服务器根据执行计划,调用存储引擎的API执行查询
5、最后将查询结果返回客户端,同时缓存查询结果

DQL、DML、DDL、DCL的概念与区别

SQL(Structure Query Language)语言是数据库的核心语言。SQL的发展是从1974年开始的,其发展过程如下:
1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R时改为SQL。
1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。
1982年-----IBM公司出版第一个RDBMS语言SQL/DS。
1985年-----IBM公司出版第一个RDBMS语言DB2。
1986年-----美国国家标准化组织ANSI宣布SQL作为数据库工业标准。

SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。它功能强,效率高,简单易学易维护。然而SQL语言由于以上优点,同时也出现了这样一个问题:它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困难的。

二. SQL语言的分类

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL

1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>

2 .数据操纵语言DML
数据操纵语言DML主要有三种形式:
\1) 插入:INSERT
\2) 更新:UPDATE
\3) 删除:DELETE

3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:CREATE TABLE / VIEW / INDEX / SYN / CLUSTER| 表 视图 索引 同义词 簇。DDL操作是隐性提交的!不能rollback

4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
\1) GRANT:授权。
\2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。回滚—ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;
\3) COMMIT [WORK]:提交。在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。

(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;

(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值