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

【数据库】第三章 SQL

3.1 SQL概述

SQL(Structured Query Language)是关系数据库的标准语言,也称结构化查询语言SQL是一种综合性的数据库语言,实现对数据的定义、操纵和控制等功能。

3.1.1 SQL的特点

3.1.2 SQL体系结构

3.2 SQL的定义功能(DDL)

3.2.1 基本表的定义

3.2.2 基本表的修改和删除

3.2.3 索引的建立与删除

  • 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。
  • 索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B树)中,使数据库可以快速有效地查找与键值关联的行。
  • MySQL有主索引、候选索引、普通索引和唯一索引4种类型的索引
  • Access中有主索引、重复索引和非重复索引
  • SQL Server中则是聚簇索引、非聚簇索引和唯一索引。
  • 聚集索引和非聚集索引都可以是唯一的。
  • 索引也可以不是唯一的,即多行可以共享同一键值。
  • 在创建PRIMARY KEY约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引。主键列不允许空值。
  • 在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引,以便强制UNIQUE约束。如果不存在该表的聚集索引,则可以指定唯一聚集索引。

  • 在一个基本表上最多只能建立一个聚簇索引
  • 聚簇索引的用途:对于某些类型的查询,可以提高查询效率
  • 聚簇索引的适用范围
    • 很少对基表进行增删操作
    • 很少对其中的变长列进行修改操作
  • 小表不需要索引
  • 数据列中有较多不相同数据时可使用索引
  • 查询要返回的数据很少时可用索引
  • 需要经常更新数据时不宜用索引
  • 只有主索引或聚集索引才会引起数据表中数据的排序

3.3 数据查询(DQL)

  • 根据WHERE子句中的条件表达式,从FROM子句指定的基本表,视图等中找出满足条件的元组;
  • 再根据SELECT子句中指出的属性,选出元组中的分量形成结果表。
  • 并不是所有的查询都会用到所有的子句,最小限度情况下,查询只需要一个SELECT 和一个FROM子句。
  • 实际上,SELECT子句所完成的功能类似于关系代数中的投影运算, 而WHERE子句的功能类似于关系代数中的选择运算
  • GROUP BY子句将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录,通常会在每组中使用集函数。若有HAVING短语,则结果只有满足指定条件的组才被选出来。

  • ORDER BY子句是将查询的结果按<列名2>的值进行排序显示,ASC表示升序,DESC表示降序,默认为升序。
  • 可选项[ALL|DISTINCT]的含义是,如果没有指定DISTINCT短语,则默认为ALL, 即保留结果中所有重复的行
  • SQL查询语句的结果也是一个关系。关系代数中基于关系是一个集合这样的数学概念,因此,重复的元组不会在关系中出现但在实践当中,要删除查询结果中的重复元组是相当费时的!

3.3.1 单表查询

1.SQL中的投影:对应于SQL中利用SELECT子句指定属性的功能

    http://www.cnnetsun.cn/news/4101705.html

    相关文章:

  • 基于Arduino与MAX7219的LED点阵Pong游戏实现
  • 前端诊断接口设计,先统一指标和版本
  • 基于Python的电影推荐系统的设计与实现(源码+文档+部署讲解等)
  • 从需求到实现:构建分层智能照明系统,提升工作坊效率与舒适度
  • 【Bug已解决】create_agent: model_to_tools router can return “model“ but path_map omits it -> KeyError(‘m…
  • B站成分检测器安装使用指南:3分钟让评论区每个账号的“成分“无处遁形
  • 【Windows 安装 Redis 图文解析附下载链接】Redis 的下载、配置、部署全流程保姆级操作教学
  • 【2026 最新附图文】Node.js 从下载安装、环境配置到全局运行保姆级教程(含常见问题说明)
  • 开源维护中的协作边界
  • 大语言模型与ROS 2融合:六足机器人智能决策与运动控制实践
  • 免费三国杀卡牌制作器实战指南:5分钟做出一张能打印的武将卡
  • 电子血压计拆解与维修指南:从结构解析到故障诊断
  • RS-232转以太网转换器:原理、配置与工业应用实战指南
  • 网络通信基石:IP地址、子网掩码、网关与DNS配置与排错全指南
  • 基于SpringBoot的宠物店管理系统的设计与实现毕业设计项目源码文档
  • 实时系统升级前的回退验证
  • 5 分钟上手 MASA全家桶汉化包:7 款 Masa Mods 模组从此告别英文词典
  • 手部卫生学:从微生物传播到科学清洁的完整实践指南
  • springboot高考志愿填报推荐系统---附源码14332
  • 英雄联盟辅助工具 League Akari 完整上手指南:从自动选人到训练房一条龙
  • ESP8266 RTOS SDK Wi-Fi嗅探器自定义失败与替代方案实战
  • pkNX宝可梦编辑器终极攻略:把Switch游戏改造成你的私人乐园
  • TortoiseGit推送到远端,如何配置
  • 大模型驱动的人形机器人持续学习:从感知到执行的智能家居任务实践
  • 丰田86停产与斯巴鲁BRZ独行:燃油性能车在电动化时代的战略抉择与技术未来
  • 从计算机架构视角重构多智能体内存:层次、一致性与性能挑战
  • 【架构实战】缓存架构设计实战:从Redis到多级缓存,彻底搞定高并发读
  • 【架构实战】全链路追踪:如何用OpenTelemetry把分布式系统的每一次调用都可视化
  • 基于LLM智能体与树搜索的自动化形式化验证技术解析
  • 多智能体大模型协作失效?解析探索机制缺失与动态交互设计