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

SQL概述及其规则与规范

SQL概述及其规则与规范

1.SQL概述

1.1 SQL背景知识

1946年,世界第一台电脑诞生,如今,互联网已经非常壮大,在这几十年间互联网得到了飞速的发展,无数的技术在其中起起伏伏,但是有一门技术从未消失,甚至愈发充满活力,那就是SQL

1974年,IBM研究院发布了一片解开数据库技术的论文《SEQUEL:一门结构化的编程语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语言,SQL的半衰期非常长了。

无论是前端工程师,还是后端算法工程师,都一定得和数据打交道,都需要了解如何又快又准确的提取自己想要的数据。
SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道, 由于IBM上世纪开发出来。后来由美国国家标准局制定SQL标准,现有SQL-86, SQL-89, SQL-99等标准。

SQL由两个最重要的标准,分别是SQL-92SQL-99,我们今天使用的SQL语言依旧遵循这些标准。

1.3 SQL分类

SQL语言在功能上主要分为如下3大类

  • DDL(Data Definition Languages,数据定义语言),这些语句定义了不同的数据库,表,试图,索引等数据库对象,还可以创建,删除,修改数据库和数据表的结构。
    • 主要的语句关键词包括CREATEDROPALTER等。
  • DML(Data Manipulation Language,数据操作语言),用于添加删除更新查询数据库记录,并检查数据完整性。
    • 主要的语句关键字包括INSERTDELETEUPDATESELECT等。
  • DCL(Data Control Language,数据控制语言),用于定义数据库,表,字段,用户访问权限和安全级别。
    • 主要的语句关键字包括GRANTREVOKECOMMITROLLBACKSAVEPOINT等。

因为查询语句使用的非常频繁,所以很多人把查询语句单独拿出来分一类,DQL(Data Query Language,数据查询语言)。还有单独把COMMITROLLBACK取出来称为TCL(Transaction Control Language, 事物控制语言)

2.SQL语言的规则和规范

2.1 常见的一些规则规范

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

2.2 SQL大小写规范(建议遵守)

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

2.3 注释

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

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

2.4 命名规则

  • 数据库,表明不得超过30个字符,变量名限制为29个。
  • 必须只能包含大小写字母和数字
  • 数据库名,表明,字段名等对象名之间不能包含空格要用下划线来__连接
  • 同一个MySQL软件中,数据库不能重名,同一个库中,表不能重名,同一个表中,字段不能重名
  • 必须保证你的字段没有和保留字,数据库系统或常用方法冲突,如果一定要使用,请在SQL语句中用 ` 引起来
  • 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性, 假如数据类型在一个表里是整数,另一个表里可别变成字符型了

举例:

#以下两句是一样的,不区分大小写
show databases;
SHOW DATABASES;#创建表格
#create table student info(...)#表名错误,因为表名有空格create table student_info(...)#正确

2.5数据导入指令

在命令行客户端登录mysql,使用source指令导入

#首先登录
mysql -uroot -p
#输入密码
enter password:********#登录成功后, 导入sql文件
source 文件路径

这篇文章就到这里,下篇文章我将会告诉总结有关select的综合运用!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【BUG】已解决:NOAUTH Authentication required
  • ctfshow-web入门-php特性(web127-web131)
  • VulnHub:CK00
  • Python编程工具PyCharm和Jupyter Notebook的使用差异
  • LeetCode-随机链表的复制
  • gin框架 POST 请求参数绑定 JSON数据ShouldBind 使用注意事项 - 结构体必须定义json标签
  • 使用llama-cpp-python制作api接口
  • 力扣第十五题——三数之和
  • 基于秒杀系统的企业开发设计思考
  • LFU算法实现笔记
  • 【postgresql】pg_dump备份数据库
  • 六爻排盘 api数据接口
  • mmc-utils 的 MMC 测试工具
  • nng协议nni_posix_resolv_sysinit()系统初始化
  • iOS ------ ARC的工作原理
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Android Volley源码解析
  • Brief introduction of how to 'Call, Apply and Bind'
  • go append函数以及写入
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript服务器推送技术之 WebSocket
  • Js基础——数据类型之Null和Undefined
  • k个最大的数及变种小结
  • mysql 5.6 原生Online DDL解析
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 包装类对象
  • 从零搭建Koa2 Server
  • 关于extract.autodesk.io的一些说明
  • 漂亮刷新控件-iOS
  • 容器服务kubernetes弹性伸缩高级用法
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # Apache SeaTunnel 究竟是什么?
  • (1)svelte 教程:hello world
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (7) cmake 编译C++程序(二)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (八)Flask之app.route装饰器函数的参数
  • (四)软件性能测试
  • (一)Docker基本介绍
  • (转)菜鸟学数据库(三)——存储过程
  • (转)原始图像数据和PDF中的图像数据
  • .dwp和.webpart的区别
  • .NET DataGridView数据绑定说明
  • .NET MVC 验证码
  • .net 反编译_.net反编译的相关问题
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET实现之(自动更新)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件