持续学习&持续更新中…

学习态度:守破离


【宋红康 MySQL数据库】【03】SQL概述_常见的数据库对象

  • SQL概述
    • 什么是SQL
    • SQL背景知识
    • SQL分类
      • DDL(Data Definition Languages、数据定义语言)
      • DML(Data Manipulation Language、数据操作语言)
      • DCL(Data Control Language、数据控制语言)
  • SQL语言的规则与规范
    • 基本规则
    • 大小写规范
    • 注释
    • 命名规则
  • 常见的数据库对象
  • 参考

SQL概述

什么是SQL

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 ANSI 的标准计算机语言

SQL背景知识

  • 1974 年,IBM 研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语言,SQL 的半衰期可以说是非常长了。

  • SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有SQL-86SQL-89SQL-92SQL-99等标准。

  • SQL 有两个重要的标准,分别是 SQL92 和 SQL99,它们分别代表了 92 年和 99 年颁布的 SQL 标准,我们今天使用的 SQL 语言依然遵循这些标准。

  • 不同的数据库生产厂商都支持SQL语句,但都有特有内容。

SQL分类

DDL(Data Definition Languages、数据定义语言)
  • 这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。

  • 主要的语句关键字包括CREATEDROPALTERRENAMETRUNCATE等。

DML(Data Manipulation Language、数据操作语言)
  • 用于添加、删除、更新和查询数据库记录,并检查数据完整性。
  • 主要的语句关键字包括INSERTDELETEUPDATESELECT等。
  • SELECT是SQL语言的基础,最为重要。

因为查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:DQL(数据查询语言)。

DCL(Data Control Language、数据控制语言)
  • 用于定义数据库、表、字段、用户的访问权限和安全级别。
  • 主要的语句关键字包括GRANTREVOKECOMMITROLLBACKSAVEPOINT等。

还有单独将COMMITROLLBACK 取出来称为TCL (Transaction Control Language,事务控制语言)。

SQL语言的规则与规范

基本规则

  • SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
  • 每条命令以 ;\g\G 结束
  • 关键字不能被缩写也不能分行
  • 关于标点符号
    • 必须保证所有的()、单引号、双引号是成对结束的
    • 必须使用英文状态下的半角输入方式
    • 字符串型和日期时间类型的数据可以使用单引号表示
    • 列的别名,尽量使用双引号,而且不建议省略as

大小写规范

  • MySQL 在 Windows 环境下是大小写不敏感的
  • MySQL 在 Linux 环境下是大小写敏感的
    • 数据库名、表名、表的别名、变量名是严格区分大小写的
    • 关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
  • 推荐采用统一的书写规范:
    • 数据库名、表名、表别名、字段名、字段别名等都小写
    • SQL 关键字、函数名、绑定变量等都大写

注释

可以使用如下格式的注释结构

单行注释:#注释文字(MySQL特有的方式)
单行注释:-- 注释文字(--后面必须包含一个空格。)
多行注释:/* 注释文字  */

命名规则

  • 数据库、表名不得超过30个字符,变量名限制为29个
  • 必须只能包含 A–Z, a–z, 0–9, _共63个字符
  • 数据库名、表名、字段名等对象名中间不要包含空格
  • 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  • 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用``(着重号)引起来
  • 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了

举例:

#以下两句是一样的,不区分大小写
show databases;
SHOW DATABASES;#创建表格
#create table student info(...); #表名错误,因为表名有空格
create table student_info(...); #其中order使用``,因为order和系统关键字或系统函数名等预定义标识符重名了
CREATE TABLE `order`(id INT,lname VARCHAR(20)
);select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略
select id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""
select id as "编 号", `name` as "姓 名" from t_stu; #错误,如果字段别名中有空格,那么不能省略""

常见的数据库对象

对象 描述
表(TABLE) 表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录
数据字典 就是系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护,程序员通常不应该修改,只可查看
约束(CONSTRAINT) 执行数据校验的规则,用于保证数据完整性的规则
视图(VIEW) 一个或者多个数据表里的数据的逻辑显示,视图并不存储数据
索引(INDEX) 用于提高查询性能,相当于书的目录
存储过程(PROCEDURE) 用于完成一次完整的业务处理,没有返回值,但可通过传出参数将多个值传给调用环境
存储函数(FUNCTION) 用于完成一次特定的计算,具有一个返回值
触发器(TRIGGER) 相当于一个事件监听器,当数据库发生特定事件后,触发器被触发,完成相应的处理

参考

尚硅谷宋红康: MySQL数据库(入门到高级,菜鸟到大牛).


本文完,感谢您的关注支持!


【宋红康 MySQL数据库】【03】SQL概述_常见的数据库对象相关推荐

  1. 【宋红康 MySQL数据库】【01】数据库概述

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库][01]数据库概述 1. 为什么要使用数据库 2. 数据库与数据库管理系统 2.1 数据库的相关概念 2.2 数据库与数据 ...

  2. 【宋红康 MySQL数据库 】【高级篇】【03】MySQL的数据目录

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][03]MySQL的数据目录 MySQL8的主要目录 数据文件的存放目录 命令存放目录 配置文件目录 数据库和 ...

  3. 【宋红康 MySQL数据库】【00】课程大纲

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库][00]课程大纲 MySQL数据库基础篇大纲 1. 数据库概述与MySQL安装篇 2. SQL之SELECT使用篇 3. ...

  4. 【宋红康 MySQL数据库 】【高级篇】【12】性能分析工具的使用

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][12]性能分析工具的使用 数据库服务器的优化步骤 查看系统性能参数 统计SQL的查询成本:last_quer ...

  5. 【宋红康 MySQL数据库 】【高级篇】【16】事务基础知识

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][16]事务基础知识 数据库事务概述 存储引擎支持情况 基本概念 事务的ACID特性 事务的状态 如何使用事务 ...

  6. 【宋红康 MySQL数据库】【14】视图

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库][14]视图 视图概述 为什么使用视图 视图的理解 创建视图 如何创建视图 创建单表视图 创建多表联合视图 利用视图对数据 ...

  7. 【宋红康 MySQL数据库 】【高级篇】【02】MySQL字符集、比较规则、大小写规范、sql_mode

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][02]MySQL字符集.比较规则.大小写规范.sql_mode 默认字符集 MySQL8 MySQL5 修改 ...

  8. 【宋红康 MySQL数据库 】【高级篇】【17】MySQL事务日志:redo、undo

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][17]MySQL事务日志 概述 redo日志 为什么需要redo日志 redo日志的好处.特点 redo的组 ...

  9. 【宋红康 MySQL数据库 】【高级篇】【06】MySQL的逻辑架构

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][06]MySQL的逻辑架构 逻辑架构剖析 服务器处理客户端请求 Connectors 第一层 连接层 第二层 ...

最新文章

  1. 查找只有一个字母不相同的单词
  2. linux centos7 设置 grub2
  3. Nginx之windows下搭建
  4. 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)
  5. HH SaaS电商系统的商品系统设计
  6. 基于javaEE技术的课程设计管理系统设计与实现
  7. .Net字符暂存池(String Intern Pool)
  8. Vue Devtools 安装
  9. 微信公众开放平台开发08---纯java 实现微信开发:编写自定义菜单
  10. 智能优化算法:象群算法-附代码
  11. linux 打开cgm软件,cgm文件扩展名,cgm文件怎么打开?
  12. 台达A2/B2伺服电机编码器改功率软件 台达A2/B2伺服电机编码修改, 用于更换编码器写匹配电机参数
  13. 基础Astar算法及节点优化python代码实现
  14. sketch软件_Sketch制作交互流程图,哪种工具最高效?
  15. c语言程序书写遵循的规则,C程序书写时应遵循的规则
  16. 科普:Flutter应用打包、修改图标、修改启动页和app名字、加固后重新V1V2签名
  17. RxJava个人笔记,具象化理解
  18. 关于学习管理系统 LMS
  19. wchar_t的用法
  20. 【youcans 的 OpenCV 例程200篇】128. 形态算法之骨架 (skimage)

热门文章

  1. Codeforces 786 A. Berzerk
  2. signature=dedda52028ba9cc6699359258f4ed5db,Нужны ли антибиотики при интравитреальных инъекциях?...
  3. java响铃_android 闹铃(响铃、震动)
  4. 人力资源知识图谱搭建及应用
  5. 刁生富:《重估:人工智能与人的生存》
  6. 探针台选型的注意事项有哪些
  7. STGCN、ASTGCN、STSGCN、STFGNN模型的对比实验操作步骤
  8. openssl(CVE-2014-0160)心脏出血漏洞复现
  9. 菊花台-中国朝代歌[摘]
  10. 电脑壁纸该换了,mac必备壁纸软件Dynamic Wallpaper