【数据库原理】(9)SQL简介
2024-01-07 21:55:30
一.SQL 的发展历史
- 起源:SQL 起源于 1970 年代,由 IBM 的研究员 Edgar F. Codd 提出的关系模型概念演化而来。
- 初期:Boyce 和 Chamberlin 在 IBM 开发了 SQUARE 语言的原型,后发展成为 SQL。这是为了更好地利用和管理关系数据库。
- System R:1970年代末,IBM 的 San Jose Research Laboratory 开发了 System R,这是第一个实现 SQL 作为查询语言的关系数据库管理系统原型。
二.SQL的特点
-
综合统一
- SQL 能够处理数据库的定义、操作和控制,这意味着可以使用同一种语言来创建表结构、插入、查询、更新数据,以及设置访问权限和安全性控制。
- 这种一体化设计提高了效率,减少了学习不同语言的需要。
-
高度非过程化
- SQL 用户不需要指定如何达到一个数据操作的目的,只需要声明他们想要的结果。
- 这种声明式的特点使得 SQL 用户无需担心底层数据的存储方式和访问路径,从而简化了数据库操作。
-
面向集合的操作方式
- SQL 操作是基于集合的,这意味着可以一次处理一组数据(例如,一次检索、更新或删除多个记录)。
- 这与一些早期的、面向记录的数据库语言形成对比,后者每次只能操作单个记录。
-
以同一种语法结构提供两种操作方式
- SQL 既可以作为独立的查询语言使用,也可以嵌入到其他编程语言中,如 C、Java 或 Python。
- 这种灵活性使得 SQL 既可以满足简单的数据库查询需求,也能够在复杂的应用程序中发挥作用。
-
语言简洁,易学易用
- SQL 语法结构简单明了,接近自然语言,这使得学习和使用 SQL 相对容易。
- 尽管功能强大,但 SQL 的核心部分只包含一些基本的关键词和语法规则。
三.SQL语言简介
-
常量
- 包括字符串、数字等。它们是查询中直接使用的值,如
'Hello World'
、100
等。
- 包括字符串、数字等。它们是查询中直接使用的值,如
-
数据类型
- 定义表中列的数据类型,例如整型(
INT
)、字符型(CHAR
、VARCHAR
)、数值型(NUMERIC
、FLOAT
)等。不同数据库可能支持不同的数据类型。
- 定义表中列的数据类型,例如整型(
数据类型 | 说明符号 | 注释 |
---|---|---|
整型 | INT | 定长16位 |
长整型 | LONG | 定长32位 |
十进制数 | NUMBERIC(m,n) | m为十进制位数,n为小数点位数 |
浮点数 | FLOAT | 定长64位(双精度) |
字符型(定长) | CHAR(n) | 按固定长度n存储字符串,自动补充空格 |
变长字符型 | VARCHAR(n) | 按实际长度n存储字符串 |
日期型 | DATE | 格式为:yyyymmdd(年月日) |
时间型 | TIME | 格式为:hhmmss(时分秒) |
-
运算符
- 用于构建表达式,包括算术运算符(如
+
,-
,*
,/
)、比较运算符(如 =,<>
,>
)、逻辑运算符(如AND
,OR
,NOT
),字符串运算符(||),集合运算符(UNION、INTERSECT、MINUS)等。
- 用于构建表达式,包括算术运算符(如
-
函数
- 提供数据处理功能,如字符串函数、数学函数、聚合函数(如
SUM()
,COUNT()
等)。 - 一般函数引用形式:
函数名([DISTINCT/ALL<表达式>])
- 提供数据处理功能,如字符串函数、数学函数、聚合函数(如
-
谓词
- 用于构建复杂的条件表达式,如
BETWEEN
,IN
,LIKE
等,以支持更灵活的数据查询。
- 用于构建复杂的条件表达式,如
-
表达式
- 由值、函数和运算符组成的结构,可以计算得出一个结果。
-
条件
- 用于在
WHERE
、HAVING
等子句中定义数据过滤的逻辑条件。
- 用于在
-
命令
- SQL 的核心部分,包括数据定义命令(如
CREATE
,ALTER
,DROP
)、数据操纵命令(如SELECT
,INSERT
,UPDATE
,DELETE
)和数据控制命令(如GRANT
,REVOKE
)。
- SQL 的核心部分,包括数据定义命令(如
文章来源:https://blog.csdn.net/qq_40951951/article/details/135405918
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!