SQL 語言規范與基礎操作指南

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; …