1. 程式人生 > >[SQL] SQL學習筆記之基礎操作

[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 等等)。

lamp 註釋:除了 SQL 標準之外,大部分 SQL 資料庫程式都擁有它們自己的專有擴充套件!

  在網站上如何使用 SQL?

  要建立一個顯示資料庫中資料的網站,需要:

  • RDBMS 資料庫程式(比如 MS Access、SQL Server、MySQL)
  • 使用伺服器端指令碼語言,比如 PHP 或 ASP
  • 使用 SQL 來獲取您想要的資料
  • 使用 HTML / CSS
lamp

註釋:RDBMS (Relational Database Management System)指關係型資料庫管理系統。RDBMS 是 SQL 的基礎,同樣也是所有現代資料庫系統的基礎,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

RDBMS 中的資料儲存在被稱為表的資料庫物件中。表是相關的資料項的集合,它由列和行組成。

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" 表的資料:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
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,...);

  假如插入操作前的表如下所示:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
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');

  執行插入操作以後的表如下所示:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
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
lamp

註釋:我們無需插入CustomerID列,它是自動更新的。

  我們也可以在指定的列插入資料。

  下面的 SQL 語句將插入一個新行,但是隻在 "CustomerName"、"City" 和 "Country" 列插入資料(CustomerID 欄位會自動更新):

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

  插入後的表如下所示:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
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
lamp

註釋:沒有複製的列被自動填充為null。

8 SQL DELETE語句

  DELETE 語句用於刪除表中的行。

  SQL DELETE 語法:

DELETE FROM table_name
WHERE some_column=some_value;
lamp

請注意 SQL DELETE 語句中的 WHERE 子句!
WHERE 子句規定哪條記錄或者哪些記錄需要刪除。如果您省略了 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;
lamp

註釋:在刪除記錄時要格外小心!因為不能重來!

9 SQL UPDATE語句

  UPDATE 語句用於更新表中已存在的記錄。

  SQL UPDATE語法:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
lamp 請注意 SQL UPDATE 語句中的 WHERE 子句!
WHERE 子句規定哪條記錄或者哪些記錄需要更新。如果您省略了 WHERE 子句,所有的記錄都將被更新!

  假設我們要把客戶 "Alfreds Futterkiste" 更新為一個新的聯絡人和城市。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany

  我們使用下面的 SQL 語句:

UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';

更新後結果:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
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包,連線