当前位置: 首页 > news >正文

【数据库原理】(9)SQL简介

一.SQL 的发展历史

  • 起源:SQL 起源于 1970 年代,由 IBM 的研究员 Edgar F. Codd 提出的关系模型概念演化而来。
  • 初期:Boyce 和 Chamberlin 在 IBM 开发了 SQUARE 语言的原型,后发展成为 SQL。这是为了更好地利用和管理关系数据库。
  • System R:1970年代末,IBM 的 San Jose Research Laboratory 开发了 System R,这是第一个实现 SQL 作为查询语言的关系数据库管理系统原型。

二.SQL的特点

  1. 综合统一

    • SQL 能够处理数据库的定义、操作和控制,这意味着可以使用同一种语言来创建表结构、插入、查询、更新数据,以及设置访问权限和安全性控制。
    • 这种一体化设计提高了效率,减少了学习不同语言的需要。
  2. 高度非过程化

    • SQL 用户不需要指定如何达到一个数据操作的目的,只需要声明他们想要的结果。
    • 这种声明式的特点使得 SQL 用户无需担心底层数据的存储方式和访问路径,从而简化了数据库操作。
  3. 面向集合的操作方式

    • SQL 操作是基于集合的,这意味着可以一次处理一组数据(例如,一次检索、更新或删除多个记录)。
    • 这与一些早期的、面向记录的数据库语言形成对比,后者每次只能操作单个记录。
  4. 以同一种语法结构提供两种操作方式

    • SQL 既可以作为独立的查询语言使用,也可以嵌入到其他编程语言中,如 C、Java 或 Python。
    • 这种灵活性使得 SQL 既可以满足简单的数据库查询需求,也能够在复杂的应用程序中发挥作用。
  5. 语言简洁,易学易用

    • SQL 语法结构简单明了,接近自然语言,这使得学习和使用 SQL 相对容易。
    • 尽管功能强大,但 SQL 的核心部分只包含一些基本的关键词和语法规则。

在这里插入图片描述

三.SQL语言简介

  1. 常量

    • 包括字符串、数字等。它们是查询中直接使用的值,如 'Hello World'100 等。
  2. 数据类型

    • 定义表中列的数据类型,例如整型(INT)、字符型(CHARVARCHAR)、数值型(NUMERICFLOAT)等。不同数据库可能支持不同的数据类型。
数据类型说明符号注释
整型INT定长16位
长整型LONG定长32位
十进制数NUMBERIC(m,n)m为十进制位数,n为小数点位数
浮点数FLOAT定长64位(双精度)
字符型(定长)CHAR(n)按固定长度n存储字符串,自动补充空格
变长字符型VARCHAR(n)按实际长度n存储字符串
日期型DATE格式为:yyyymmdd(年月日)
时间型TIME格式为:hhmmss(时分秒)
  1. 运算符

    • 用于构建表达式,包括算术运算符(如 +, -, *, /)、比较运算符(如 =, <>, >)、逻辑运算符(如 AND, OR, NOT),字符串运算符(||),集合运算符(UNION、INTERSECT、MINUS)等。
  2. 函数

    • 提供数据处理功能,如字符串函数、数学函数、聚合函数(如 SUM(), COUNT() 等)。
    • 一般函数引用形式:函数名([DISTINCT/ALL<表达式>])
  3. 谓词

    • 用于构建复杂的条件表达式,如 BETWEEN, IN, LIKE 等,以支持更灵活的数据查询。
  4. 表达式

    • 由值、函数和运算符组成的结构,可以计算得出一个结果。
  5. 条件

    • 用于在 WHEREHAVING 等子句中定义数据过滤的逻辑条件。
  6. 命令

    • SQL 的核心部分,包括数据定义命令(如 CREATE, ALTER, DROP)、数据操纵命令(如 SELECT, INSERT, UPDATE, DELETE)和数据控制命令(如 GRANT, REVOKE)。
http://www.lryc.cn/news/275574.html

相关文章:

  • 第二百五十二回
  • Leetcode 3701 · Find Nearest Right Node in Binary Tree (遍历和BFS好题)
  • 网站被攻击了,接入CDN对比直接使用高防服务器有哪些优势
  • location常用属性和方法
  • 二分图
  • [VUE]3-路由
  • Kafka(六)消费者
  • RK3399平台入门到精通系列讲解(实验篇)共享工作队列的使用
  • STM32 基于 MPU6050 的飞行器姿态控制设计与实现
  • 大数据平台Bug Bash大扫除最佳实践
  • JavaScript 中的数组过滤
  • 随机森林(Random Forest)
  • 本地引入Element UI后导致图标显示异常
  • UE5.1_UMG序列帧动画制作
  • 总结HarmonyOS的技术特点
  • 从0到1入门C++编程——04 类和对象之封装、构造函数、析构函数、this指针、友元
  • Robot Operating System 2: Design, Architecture, and Uses In The Wild
  • TinyEngine 服务端正式开源啦!!!
  • 网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea 【企业公司宣传网站(HTML静态网页项目实战)附源码】
  • Avalonia学习(二十)-登录界面演示
  • Spring依赖注入的魔法:深入DI的实现原理【beans 五】
  • 【学习笔记】1、数字逻辑概论
  • 设置代理IP地址对网络有什么影响?爬虫代理IP主要有哪些作用?
  • 聊聊jvm的mapped buffer的统计
  • matrix-breakout-2-morpheus 靶场 练习思路
  • 【Flutter 开发实战】Dart 基础篇:从了解背景开始
  • 西电期末1017.有序序列插值
  • day10 用栈实现队列 用队列实现栈
  • 解决跨域问题(SpringBoot)
  • LeetCode——2487. 从链表中移除节点