[SQL] SQL學習筆記之基礎操作
1 SQL介紹
SQL 是用於訪問和處理資料庫的標準的計算機語言。關於SQL的具體介紹,我們通過回答如下三個問題來進行。
SQL 是什麼?
- SQL,指結構化查詢語言,全稱是 Structured Query Language。
- SQL 是一種 ANSI(American National Standards Institute 美國國家標準化組織)標準的計算機語言。
SQL 能做什麼?
- SQL 面向資料庫執行查詢
- SQL 可從資料庫取回資料
- SQL 可在資料庫中插入新的記錄
- SQL 可更新資料庫中的資料
- SQL 可從資料庫刪除記錄
- SQL 可建立新資料庫
- SQL 可在資料庫中建立新表
- SQL 可在資料庫中建立儲存過程
- SQL 可在資料庫中建立檢視
- SQL 可以設定表、儲存過程和檢視的許可權
雖然 SQL 是一門 ANSI(American National Standards Institute 美國國家標準化組織)標準的計算機語言,但是仍然存在著多種不同版本的 SQL 語言。然而,為了與 ANSI 標準相相容,它們必須以相似的方式共同地來支援一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。
註釋:除了 SQL 標準之外,大部分 SQL 資料庫程式都擁有它們自己的專有擴充套件! |
在網站上如何使用 SQL?
要建立一個顯示資料庫中資料的網站,需要:
- RDBMS 資料庫程式(比如 MS Access、SQL Server、MySQL)
- 使用伺服器端指令碼語言,比如 PHP 或 ASP
- 使用 SQL 來獲取您想要的資料
- 使用 HTML / CSS
註釋:RDBMS (Relational Database Management System)指關係型資料庫管理系統。RDBMS 是 SQL 的基礎,同樣也是所有現代資料庫系統的基礎,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。 |
2 SQL語句
在資料庫上執行的大部分工作都由 SQL 語句完成。我們先介紹幾個有關SQL的注意事項,為我們接下來詳細介紹每一條SQL做一個基礎。
1)SQL語句的大小寫問題:
SQL 對大小寫不敏感:SELECT 與 select 是相同的。
2)SQL 語句後面的分號問題:
某些資料庫系統要求在每條 SQL 語句的末端使用分號。
分號是在資料庫系統中分隔每條 SQL 語句的標準方法,這樣就可以在對伺服器的相同請求中執行一條以上的 SQL 語句。
3)一些重要的 SQL 命令:
- SELECT - 從資料庫中提取資料
- UPDATE - 更新資料庫中的資料
- DELETE - 從資料庫中刪除資料
- INSERT INTO - 向資料庫中插入新資料
- CREATE DATABASE - 建立新資料庫
- ALTER DATABASE - 修改資料庫
- CREATE TABLE - 建立新表
- ALTER TABLE - 變更(改變)資料庫表
- DROP TABLE - 刪除表
- CREATE INDEX - 建立索引(搜尋鍵)
- DROP INDEX - 刪除索引
3 SQL SELECT語句
SELECT 語句用於從資料庫中選取資料,結果被儲存在一個結果表中,稱為結果集。
SQL SELECT 語法:
SELECT column_name,column_name FROM table_name;
與
SELECT * FROM table_name;
本文中,我們使用眾所周知的 Northwind 樣本資料庫進行舉例介紹。下面是選自 "Customers" 表的資料:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
下面的 SQL 語句從 "Customers" 表中選取 "CustomerName" 和 "City" 列:
SELECT CustomerName,City FROM Customers;
下面的 SQL 語句從 "Customers" 表中選取所有列:
SELECT * FROM Customers;
在表中,一個列可能會包含多個重複值,有時也許希望僅僅列出不同(distinct)的值。DISTINCT 關鍵詞用於返回唯一不同的值。
SQL SELECT DISTINCT 語法:
SELECT DISTINCT column_name,column_name FROM table_name;
4 SQL WHERE語句
WHERE 子句用於提取那些滿足指定標準的記錄。
SQL WHERE語法:
SELECT column_name,column_name FROM table_name WHERE column_name operator value;
下面的 SQL 語句從 "Customers" 表中選取國家為 "Mexico" 的所有客戶:
SELECT * FROM Customers WHERE Country='Mexico';
SQL 使用單引號來環繞文字值(大部分資料庫系統也接受雙引號)。如果是數值欄位,請不要使用引號。
SELECT * FROM Customers WHERE CustomerID=1;
WHERE 子句中的運算子
下面的運算子可以在 WHERE 子句中使用:
運算子 | 描述 |
---|---|
= | 等於 |
<> |
不等於。 註釋:在 SQL 的一些版本中,該操作符可被寫成 != |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
BETWEEN | 在某個範圍內 |
LIKE | 搜尋某種模式 |
IN | 指定針對某個列的多個可能值 |
5 SQL AND與OR關鍵字
AND & OR 運算子用於基於一個以上的條件對記錄進行過濾。
下面的 SQL 語句從 "Customers" 表中選取國家為 "Germany" 且城市為 "Berlin" 的所有客戶:
SELECT * FROM Customers WHERE Country='Germany' AND City='Berlin';
下面的 SQL 語句從 "Customers" 表中選取城市為 "Berlin" 或者 "München" 的所有客戶:
SELECT * FROM Customers WHERE City='Berlin' OR City='München';
下面的 SQL 語句從 "Customers" 表中選取國家為 "Germany" 且城市為 "Berlin" 或者 "München" 的所有客戶:
SELECT * FROM Customers WHERE Country='Germany' AND (City='Berlin' OR City='München');
6 SQL ORDER BY關鍵字
ORDER BY 關鍵字用於對結果集按照一個列或者多個列進行排序。ORDER BY 關鍵字預設按照升序對記錄進行排序。如果需要按照降序對記錄進行排序,您可以使用 DESC 關鍵字。
ORDER BY語法:
SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC;
下面的 SQL 語句從 "Customers" 表中選取所有客戶,並按照 "Country" 列升序排序:
SELECT * FROM Customers ORDER BY Country;
下面的 SQL 語句從 "Customers" 表中選取所有客戶,並按照 "Country" 列降序排序:
SELECT * FROM Customers ORDER BY Country DESC;
下面的 SQL 語句從 "Customers" 表中選取所有客戶,並按照 "Country" 和 "CustomerName" 列排序:
SELECT * FROM Customers ORDER BY Country,CustomerName;
7 SQL INSERT INTO語句
INSERT INTO 語句用於向表中插入新記錄。
INSERT INTO 語句可以有兩種編寫形式。第一種形式無需指定要插入資料的列名,只需提供被插入的值即可:
INSERT INTO table_name VALUES (value1,value2,value3,...);
第二種形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
假如插入操作前的表如下所示:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
87 | Wartian Herkku | Pirkko Koskitalo | Torikatu 38 | Oulu | 90110 | Finland |
88 | Wellington Importadora | Paula Parente | Rua do Mercado, 12 | Resende | 08737-363 | Brazil |
89 | White Clover Markets | Karl Jablonski | 305 - 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
我們要向 "Customers" 表中插入一個新行。我們可以使用下面的 SQL 語句:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');
執行插入操作以後的表如下所示:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
87 | Wartian Herkku | Pirkko Koskitalo | Torikatu 38 | Oulu | 90110 | Finland |
88 | Wellington Importadora | Paula Parente | Rua do Mercado, 12 | Resende | 08737-363 | Brazil |
89 | White Clover Markets | Karl Jablonski | 305 - 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
92 | Cardinal | Tom B. Erichsen | Skagen 21 | Stavanger | 4006 | Norway |
註釋:我們無需插入CustomerID列,它是自動更新的。 |
我們也可以在指定的列插入資料。
下面的 SQL 語句將插入一個新行,但是隻在 "CustomerName"、"City" 和 "Country" 列插入資料(CustomerID 欄位會自動更新):
INSERT INTO Customers (CustomerName, City, Country) VALUES ('Cardinal', 'Stavanger', 'Norway');
插入後的表如下所示:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
87 | Wartian Herkku | Pirkko Koskitalo | Torikatu 38 | Oulu | 90110 | Finland |
88 | Wellington Importadora | Paula Parente | Rua do Mercado, 12 | Resende | 08737-363 | Brazil |
89 | White Clover Markets | Karl Jablonski | 305 - 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
92 | Cardinal | null | null | Stavanger | null | Norway |
註釋:沒有複製的列被自動填充為null。 |
8 SQL DELETE語句
DELETE 語句用於刪除表中的行。
SQL DELETE 語法:
DELETE FROM table_name WHERE some_column=some_value;
請注意 SQL DELETE 語句中的 WHERE 子句! |
假設我們要從 "Customers" 表中刪除客戶 "Alfreds Futterkiste"。我們使用下面的 SQL 語句:
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';
您可以在不刪除表的情況下,刪除表中所有的行。這意味著表結構、屬性、索引將保持不變:
DELETE FROM table_name; or DELETE * FROM table_name;
註釋:在刪除記錄時要格外小心!因為不能重來! |
9 SQL UPDATE語句
UPDATE 語句用於更新表中已存在的記錄。
SQL UPDATE語法:
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
請注意 SQL UPDATE 語句中的 WHERE 子句! WHERE 子句規定哪條記錄或者哪些記錄需要更新。如果您省略了 WHERE 子句,所有的記錄都將被更新! |
假設我們要把客戶 "Alfreds Futterkiste" 更新為一個新的聯絡人和城市。
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
我們使用下面的 SQL 語句:
UPDATE Customers SET ContactName='Alfred Schmidt', City='Hamburg' WHERE CustomerName='Alfreds Futterkiste';
更新後結果:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Alfred Schmidt | Obere Str. 57 | Hamburg | 12209 | Germany |
10 參考內容
相關推薦
[SQL] SQL學習筆記之基礎操作
1 SQL介紹 SQL 是用於訪問和處理資料庫的標準的計算機語言。關於SQL的具體介紹,我們通過回答如下三個問題來進行。 SQL 是什麼? SQL,指結構化查詢語言,全稱是 Structured Query Language。 SQL 是一種 ANSI(American National
python學習筆記之基礎操作(五)字串格式化(1)%格式化
格式化基本格式 s = "i am %s ,i am %d years old ,and i like %s"%("haiyang",20,"zhu") print(s) #區分資料型別,無法自動在字串
python學習筆記之基礎操作(五)字串格式化(2)format
format格式化 1,基本格式 #對於每一個大括號,在後面的引數中找到對應的引數插進來 #format操作類似於於將傳入的引數製成多個數據的資料結構元組或者字典,然後依照索引插入引數 s = "i a
python學習筆記之基礎操作(六)生成器和迭代器
生成器總結 語法上和函式類似:生成器函式幾乎和常規函式一樣,不同的又兩點, 第一點是返回使用yield關鍵字,第二點是在連續邏輯內可以多次返回 這是yield的特點決定的,yield會記住函式執行的位
ODB學習筆記之基礎環境搭建
com x文件 應用 er關系 c++ sqli size err deb 一,簡介 ODB是應用於C++的一個開源、跨平臺、跨數據庫的對象關系映射(ORM)系統。 它可以讓你持久化C++對象到關系數據庫,而不必處理表、列或者SQL,無需手動編寫任何映射代碼。 ODB
java學習筆記之基礎語法(二)
讓其 實例 高效率 使用 個數 存儲 記錄 棧內存 數組 1.數組: 概念:同一種類型數據的集合,其實,數組就是一個容器 優點:可以方便的對其進行操作,編號從0開始,方便操作這些元素。 2,數組的格式 元素類型[]數組名=new 元素類型[數組元素個
Linux學習筆記之基礎命令與獲取幫助文檔
內容 大寫 用戶 協議 當前時間 switch 使用 主機 當前 一、linux的基本原則:1、 由目的單一的小程序組成,組合小程序,完成復雜任務;2、 一切皆文件;3、 盡量避免捕獲用戶接口;4、 配置文件保存為純文本格式二、shellGUI :Graphic U
C++ 學習筆記之——檔案操作和檔案流
1. 檔案的概念 對於使用者來說,常用到的檔案有兩大類:程式檔案和資料檔案。而根據檔案中資料的組織方式,則可以將檔案分為 ASCII 檔案和二進位制檔案。 ASCII 檔案,又稱字元檔案或者文字檔案,它的每一個位元組放一個 ASCII 程式碼,代表一個字元。 二進位制檔案,又稱內部格式檔案或位元
Aerospike學習筆記之基礎知識
Aerospike基礎知識 介紹 Aerospike是一個分散式,可擴充套件的NoSQL資料庫。該架構有三個主要目標: 為Web級應用程式建立靈活,可擴充套件的平臺。 提供傳統資料庫所期望的穩健性和可靠性(如ACID)。 以最少的人工參與提供運營效率
Spring4.x學習筆記——JdbcTemplate基礎操作
一、相關概念 spring是一個一站式的框架,對不同持久層的技術都進行了封裝(處理資料庫技術,基本的crud操作即增刪改查),如JDBC、Hibermate、MaBatis、JPA等。 二、spring對JDBC的封裝使用步驟大體如下: 匯入jar包
51微控制器學習筆記之基礎部分
目錄 一、普中微控制器詳解 二、51微控制器介紹 三、C語言基礎 四、微控制器最小系統 五、開發軟體安裝與工程建立 從0開始,重新學微控制器,from 0 to 100. ----2019/1/14 一、普中微控制器詳解 電源介面(火牛介面):額定電壓5V ch
Vijava 學習筆記之 VirtualMachine操作(關機、待機和重新載入)
package com.vmware.client; import com.vmware.util.ClientSesion; import com.vmware.vim25.mo.*; import java.net.URL; /** * Created by v
Python3學習筆記之基礎教程二
fibo.py __author__ = 'Administrator' def fib(n): a,b=0,1 while b<n: print(b,end=' ') a,b=b,a+b print() de
紅黑樹學習筆記之插入操作
紅黑樹是234樹的一種,它是自平衡的二叉查詢樹,其優點為可以在㏒(n)時間內完成查詢,刪除和插入的動作。性質1:節點為有色的(紅色和黑色)性質2:根節點以及所有的葉子節點為黑色性質3:所有的紅色節點的父節點為黑色節點(黑色節點的父節點可以為紅色也可以為黑色)性質4:從任意節點
Spring Boot學習筆記之使用Spring Boots實現資料庫操作(IntelliJ IDEA+navicat for Sql Server)
這裡使用Spring Boot實現了一個簡單的專案,能夠實現簡單的資料庫操作,工具使用的是IntelliJ IDEA2017.3,資料庫工具使用的是navicat for Sql Server,語言使用的Java。 1.新建一個空的Maven專案 2.匯入需要的jar包 pom.xml:
Oracle學習筆記之PL/SQL編程
.cn 數據操作 dmi int 直接 字節 sql編程 gin number SQL(Structure Query Language)的含義是結構化查詢語句,最早由Boyce和Chambedin在1974年提出,稱為SEQUEL語言。1976年
學習筆記之ACCESS和MS-SQL數據庫與ZBLOG系統如何選擇搭配?
站點 通過 如何 建議 轉換 但是 net 們的 zblog 我開始接觸ZBLOG系統是因為先了解了月光博客和盧松松之後,因為他們的博客很強悍,讓我學習到了不少知識,因此也開始建站了,那時候由於是早期,數據量一般都小,而且系統也都不成熟,因此只有ACCESS這樣的小型數據庫
學習筆記之T-SQL插入數據INSERT語法和數據庫編程實戰技巧[圖]
INSERT 數據庫 IT 編程 學習 一直以來就有寫博客的習慣,記錄一下學習心得、生活點滴等等,感覺也蠻好的,去年開始萌生了建立一個讀書和文學博客的想法,於是就開始實施了,中途也遇到不少難題,不過還好,都逐漸解決了,雖然我在技術方面有欠缺,但好在有同學們幫忙。 今天想和大家分享的學習筆記
SQL學習筆記之DataGridView學習
.com rtti 應用程序 頻率 sele 卡號 res lin 說明 SQL學習筆記之DataGridView學習 一:DataGridView介紹 使用 DataGridView 控件,可以顯示和編輯來自多種不同類型的數據源的表格數據。 二: DataGridView
mybatis學習筆記之——連線SQL server資料庫(IDEA)
我們新建一個普通的專案,File --> New --> Project -->Java --> Java EE。然後新建專案即可。 專案完成後我們新建一個conf資料夾,用來存放配置資訊,新建一個lib資料夾,用來存放jar包。 我們將mybatis的jar包,連線