SQL 语言规范与基础操作指南

SQL 作为数据库操作的核心语言,遵循规范的语法和书写习惯不仅能提高代码可读性,还能减少错误。本文整理了 SQL 的基础规则、书写规范及常用操作,适合初学者快速上手。

一、SQL 基本规则

1. 书写格式

  • SQL 语句可写在一行或多行,推荐各子句分行书写并适当缩进,例如:
SELECT id, name 
FROM student 
WHERE age > 18;
  • 每条命令必须使用下列其中一个用在末尾用结束语句(; 最常用
    • ;
    • \g
    • \G

2. 关键字与标点

  • 关键字(如SELECT、FROM、WHERE)不可缩写或分行,需完整书写。

  • 标点符号必须使用英文半角(如’、"、()),且需成对出现(如引号、括号不能遗漏闭合)。

  • 字符串和日期时间类型的值需用单引号(’ ') 包裹,例如 ‘2023-01-01’。

  • 列的别名建议用双引号(" "),且AS关键字可省略(但不建议),例如:

SELECT id AS "编号", name "姓名" FROM student; -- 正确

二、大小写规范

MySQL 的大小写敏感性与操作系统相关,遵循以下规则可避免混淆:

  • Windows 环境:大小写不敏感(例如select和SELECT等效)。

  • Linux 环境:大小写敏感(数据库名、表名、表别名严格区分大小写)。

推荐书写规范

  • 数据库名、表名、字段名、别名等全部小写(如student_info、user_id)。

  • SQL 关键字、函数名全部大写(如SELECT、INSERT、COUNT())。

示例:

-- 推荐写法
SELECT id, name FROM student WHERE age > 20;-- 不推荐(大小写混乱)
Select ID, Name from Student where Age>20;

三、SQL 注释用法

注释是代码的 “说明书”,SQL 支持三种注释方式:

  1. 单行注释(#):MySQL 特有的方式,#后直接写注释内容
# 查询所有学生信息
SELECT * FROM student;
  1. 单行注释(-- ):通用方式,–后必须加空格
-- 查询年龄大于18的学生
SELECT * FROM student WHERE age > 18;
  1. 多行注释(/ */)*:适合大段说明
/*
功能:查询学生表中
年龄大于20且性别为男的记录
*/
SELECT * FROM student WHERE age > 20 AND gender = '男';

四、命名规则

合理的命名是规范的核心,需注意以下几点:

  1. 长度限制:数据库名、表名最多 30 个字符,变量名最多 29 个字符。

  2. 允许字符:只能包含 A-Z、a-z、0-9、_(下划线),不可包含空格

  3. 唯一性

    • 同一 MySQL 实例中,数据库名不可重复;
    • 同一数据库中,表名不可重复;
    • 同一表中,字段名不可重复。
  1. 避免保留字:若字段名与关键字(如order、select)重名,需用 ** 着重号(`)** 包裹:
-- 正确:用`包裹关键字作为表名
CREATE TABLE `order` (id INT,order_no VARCHAR(20)
);
  1. 类型一致性:同一字段在不同表中类型需一致(如user_id在 A 表是INT,在 B 表也应是INT)。

五、数据导入指令

当需要批量导入数据时,可通过source命令导入 SQL 文件,步骤如下:

  1. 打开命令行客户端,登录 MySQL:
mysql -u 用户名 -p
  1. 输入密码后,使用source指令导入(文件路径需用绝对路径):
source D:\data\mydb.sql; -- Windows系统
-- 或
source /home/user/data/mydb.sql; -- Linux系统

六、基础 SELECT 语句

SELECT是 SQL 中最常用的查询语句,基础语法如下:

1. 选择全部列

SELECT * FROM 表名; -- 查询表中所有字段的所有记录
-- 示例:查询student表所有数据
SELECT * FROM student;

2. 选择指定列

SELECT1,2, ... FROM 表名;
-- 示例:查询student表的id和name字段
SELECT id, name FROM student;

3. 列的别名规则

  • 别名无空格时,可省略双引号:
SELECT id AS 编号, name 姓名 FROM student; -- 正确
  • 别名有空格时,必须加双引号
SELECT id AS "学生编号", name "学生姓名" FROM student; -- 正确
SELECT id AS 学生 编号; -- 错误(空格未加引号)

总结

遵循 SQL 规范不仅能让代码更易读、易维护,还能减少因语法问题导致的错误。核心要点包括:统一大小写、规范命名、正确使用注释、遵循标点规则。熟练掌握这些基础,能为复杂的数据库操作打下坚实基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93417.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93417.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93417.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产业园IBMS智能化集成系统功能有哪些?

产业园 IBMS(建筑集成管理系统)智能化集成系统是针对产业园 “多业态、多系统、多租户” 特点设计的全局管理平台,通过整合楼宇自控、安防、消防、能源、停车、租户服务等子系统,实现 “集中监控、协同联动、数据驱动、灵活服务”…

线性代数之两个宇宙文明关于距离的对话

矢量的客观性和主观性宇宙中飘过来一个自由矢量,全世界的人都可以看到,大家都在想,怎么描述它呢,总不能指着它说“那个矢量”吧。数学家很聪明,于是建立了一个坐标系,这个矢量投影到坐标系下,就…

Camx-Tuning参数加载流程分析

调用时序图 一、效果参数在开机时加载 CreateTuningDataManager逻辑分析 1.从xxx_module.xml获取sensor名称和效果参数名称, 比如效果参数名称为:xtc_tsp_sc520cs那么效果库的完整名称就是:com.qti.tuned.xtc_tsp_sc520cs.bin 2.优先从/data/…

《P4180 [BJWC2010] 严格次小生成树》

题目描述小 C 最近学了很多最小生成树的算法,Prim 算法、Kruskal 算法、消圈算法等等。正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了。小 P 说,让小 C 求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的&#xff…

Transformer浅说

rag系列文章目录 文章目录rag系列文章目录前言一、简介二、注意力机制三、架构优势四、模型加速总结前言 近两年大模型爆火,大模型的背后是transformer架构,transformer成为家喻户晓的词,人人都知道它,但是想要详细讲清楚&#x…

后台管理系统-3-vue3之左侧菜单栏和头部导航栏的静态搭建

文章目录1 CommonAside组件(静态搭建)1.1 Menu菜单1.2 准备菜单数据1.3 循环渲染菜单1.3.1 el-menu结构1.3.2 动态渲染图标1.4 样式设计1.5 整体代码(CommonAside.vue)2 CommonHeader组件(静态搭建)2.1 准备图片URL数据2.2 页面布局2.3 样式设计2.4 整体代码(CommonHeader.vue)…

VS Code配置MinGW64编译非线性优化库NLopt

VS Code用MinGW64编译C代码安装MSYS2软件并配置非线性优化库NLopt和测试引用库代码的完整具体步骤。 1. 安装MSYS2 下载安装程序: 访问 MSYS2官网下载 msys2-x86_64-xxxx.exe 并运行 完成安装: 默认安装路径:C:\msys64安装完成后&#xff0c…

C#通过TCP_IP与PLC通信

C#通过TCP/IP与PLC通信 本文将全面介绍如何使用C#通过TCP/IP协议与各种PLC进行通信,包括西门子、罗克韦尔、三菱等主流品牌PLC的连接方法。 一、PLC通信基础 PLC通信协议概览协议类型适用品牌特点Modbus TCP通用协议简单易用,广泛支持Siemens S7西门子PL…

Java 学习笔记(基础篇3)

1. 数组&#xff1a;① 静态初始化&#xff1a;(1) 格式&#xff1a;int[] arr {1, 2, 3};② 遍历/* 格式&#xff1a; 数组名.length */ for(int i 0; i < arr.length; i){//在循环的过程中&#xff0c;i依次表示数组中的每一个索引sout(arr[i]);//就可以把数组里面的每一…

知识点汇总linuxC高级-3 shell脚本编程

shell脚本编程shell ---> 解析器&#xff1a;sh csh ksh bashshell命令 ---> shell解析的命令shell脚本 --> shell命令的有序集合shell脚本编程&#xff1a;将shell命令结合按照一定逻辑集合到一起&#xff0c;写到一个 .sh 文件&#xff0c;去实现一个或多个功能&…

【C++学习篇】:基础

文章目录前言1. main() 函数2. 变量赋值3. cin和cout的一些细节4. 基本类型运算5. 内存占用6. 引用7. 常量前言 C 语法的学习整理&#xff0c;作为个人总结使用。 1. main() 函数 #include <iostream> //使用输入输出流库&#xff08;cin&#xff0c;cout&#xff09;…

使用nginx反向代理kkfile

这篇说一下我解决的思路和方式哈&#xff0c;不一定适用于大家&#xff0c;可以做个参考比如我们的系统服务是http://10.63.25.35:80&#xff0c;而我们的文件服务是在10.63.25.37:8012上&#xff0c;正常不使用代理的话&#xff0c;我们前端调用后端接口&#xff0c;后端调用k…

【低成本扩容】动态扩容实战指南

面对扩容操作时&#xff0c;下面这种操作是否也会迷惑你&#xff1f;下面来为大家解惑~size_t newcapacity 2*_capacity > (_size len)?2*_capacity:(_sizelen); //len为即将插入的字符串有效字符个数//_size为当前字符串有效字符个数//_capacity为当前容量大小//newcapa…

Product Hunt 每日热榜 | 2025-08-14

1. Autumn 标语&#xff1a;为AI初创公司简化的Stripe服务 介绍&#xff1a;Autumn帮助AI初创公司通过只需三个API调用来定价、计量和控制使用情况。基于Stripe搭建&#xff0c;它可以在一个地方管理订阅、使用情况和访问权限。无需复杂的webhooks或后端逻辑&#xff0c;非常…

Scrapy + Django爬虫可视化项目实战(二) 详细版

系列文章 Scrapy + Django爬虫可视化项目实战(一)_django scrapy-CSDN博客 实现技术 Scrapy Django Echarts 引言 可视化部分需要读者具备一定的Django基础!!! 上一个文章我们已经实现了爬取景点的数据,那么接下来就是根据爬取到的数据进行可视化 一、环境搭建 (一) 创…

选择式与生成式超启发算法总结

这里写目录标题Selection HHGeneration HHGPHH示例存在大量针对特定问题设计的启发式算法&#xff0c;近年来学术界提出了一个关键问题&#xff1a;如何选择最合适的启发式方法。这一问题推动了超启发式&#xff08;hyper-heuristic&#xff09;方法的研究发展。超启发式是一种…

NetBIOS 设置

在 Windows 系统中,WINS (Windows Internet Name Service) 和 NetBIOS 紧密相关,主要用于 NetBIOS 名称解析(将计算机名转换为 IP 地址)。WINS 是一个动态数据库,类似于 DNS,但专门用于 NetBIOS 名称解析,适用于早期 Windows 网络(如 Windows NT/2000/XP)。 1. 查看 N…

vue2 + SimpleMindMap 制作思维导图

vue2 SimpleMindMap 制作思维导图 该代码包含SimpleMindMap已知的所有功能&#xff0c;有需要的小伙伴可自行copy&#xff0c;框架使用el-ementui。其中有些图标是阿里巴巴矢量图的图片&#xff0c;可自行进行替换。保姆级教程 以下是vue文件&#xff1a; <template><…

Discord x Pulsar: 使用 Pulsar、Flink 和 Iceberg 搭建流式机器学习平台

本文整理自 Discord 机器学习工程师 David Christle 在 Pulsar Summit NA 上的演讲内容&#xff0c;一起来看 Discord 是如何基于 Pulsar 实现兼顾安全和个性化功能的实时流式机器学习平台的&#xff5e;1. 背景Discord 是一个实时⾳视频通信平台&#xff0c;⽀持⽂本/语⾳/视频…

【数据结构入门】二叉树(2)

目录 1.二叉树遍历顺序 1.1 前序&#xff08;先根&#xff09;遍历 1.2 中序&#xff08;中根&#xff09;遍历 1.3 后序&#xff08;后根&#xff09;遍历 1.4 层序遍历 1.5 深度优先遍历&广度优先遍历 2.二叉树的遍历 2.1 前根遍历&#xff08;递归&#xff09; …