計算機程序設計

基本的SQL語句

SQL標準於1992年,至今仍在使用獲得通過。 他已經成為許多標杆 數據庫管理系統。 當然,有些廠商使用自己的標準的解釋。 但是,在任何系統中,還存在著的主要組成部分 - SQL語句。

介紹

在數據庫中使用SQL語句,將出現值管理表和它們進行進一步的分析和顯示準備。 它們是一組關鍵字,通過該系統知道如何處理的數據做。

定義幾類SQL語句:

  • 數據庫對象的定義;
  • 操縱值;
  • 保護和管理;
  • 會話參數;
  • 有關的基本信息;
  • 靜態SQL;
  • 動態SQL。

數據操作SQL語句

該類別包括通過它可以控制在數據庫中的值的位置的關鍵字。

INSERT。 插入在現有的表中的一行。 它可以用來作為一個單一的值或多個,通過一定的條件來定義。 例如:

INSERT INTO

表名(第1欄名,列名2)

VALUES(值1值2)。

要使用操作 SQL語句 有多個值INSERT,請使用以下語法:

INSERT INTO

1表名(列1的名,列名2)

SELECT列名1,列2的名

FROM表名2

WHERE名稱2.imya表列1> 2

這個查詢選擇表2中的所有數據,這些數據是大於2 1列,並將其粘貼到第一。

UPDATE。 顧名思義,這個語句更新了一定的基礎上在現有表的SQL查詢數據。

例如:

UPDATE表名1

SET列名= 2“羅勒”

WHERE表名1.imya列1 = 1

這種結構填充值羅勒滿足在第一列中的數字1的所有行。

DELETE。 從表中刪除的數據。 您可以指定任何條件或刪除所有行。

DELETE FROM表名

WHERE名稱tablitsy.imya列1 = 1

上面的查詢將在第一列中的值一個從數據庫中刪除所有數據。 這裡是你如何清除整個表:

DELETE FROM表名。

接下來要講述的SELECT語句。 他是一個最重要的,因此他將不得不投入單獨的一章。

SELECT語句

SELECT的主要目的 - 根據特定的條件數據的選擇。 他的工作的結果總是與選定的數據的新表。 MS操作者SQL SELECT可用於加權不同的請求。 因此,與它一起,你可以考慮其他相關的關鍵字。

要選擇所有數據符號“*”的是從特定的表中。

SELECT *

FROM表名1

此查詢的結果將表1的精確副本。

這裡是通過取WHERE在列1小於2的條件,從表1中翻出,所有的值越大。

SELECT *

FROM表名1

WHERE名稱1.imya表列1> 2

您還可以指定在只需要某些列的選擇。

SELECT表名1.imya列1

FROM表名1

這個查詢的結果將與使用MS SQL運營商可以創建它自己的表,在替換,計算和替換某些值的過程中第1列的值的所有行。

SELECT

表名1.imya列1

表名1.imya列2

表名1.imya列3

«=»AS EQ

表名* 1.imya列3 AS SUMMA的表名1.imya列2

FROM表名1

這個看似複雜的查詢取表1的所有值,然後創建一個新的列和EQ SUMMA。 首先進入“+”符號,在產品2和3該結果可以被表示為一個表,對了解它是如何工作的第二數據欄:

第1列

第2列

第3列

EQ

SUMMA

產品名稱1

10

50

+

500

產品名稱2

15

100

+

1500

如果您使用的是SELECT語句,你可以立即花費任何理由的訂貨數據。 它使用單詞ORDER BY。

SELECT

表名1.imya列1

表名1.imya列2

表名1.imya列3

FROM表名1

ORDER BY列名2

結果表如下所示:

第1列

第2列

第3列

1

1

54

3

2

12

7

3

100

2

1

也就是說,所有的行已被安裝在這樣的方式的第2列的值分別為升序。

數據也可以從多個表中獲得的。 為了清楚起見,你必須首先想像,他們有兩個,有些是在數據庫:

表“員工”

1

Vasya

Vasin

2

彼佳

佩廷

表“工資”

與記

1

1

10000

2

0.5

3500

現在你需要,如連接兩個表來獲得共同的價值觀。 使用基本的SQL語句,它可以如下進行:

SELECT

Sotrudniki.Nomer

Sotrudniki.Imya

Zarplata.Stavka

Zarplata.Nachisleno

從員工薪酬

WHERE Sotrudniki.Nomer = Zarplata.Nomer

有一個從價值觀的兩個不同的表,按編號統一牽強。 結果是如下數據集:

與記

1

Vasya

1

10000

2

彼佳

0.5

3500

多一點對SELECT。 使用聚合函數

一個基本的SQL SELECT語句中可以產生的樣品中一些計算。 要做到這一點,他使用某些功能和公式。

例如,要獲得從表“員工”的記錄數,您需要使用查詢:

SELECT COUNT(*)如N

FROM員工

其結果將是一個柱和值的表。

ñ

2

功能可以在計算總和,最大值和最小值,以及平均值查詢中使用。 要做到這一點,關鍵字用於SUM,MAX,MIN,AVG。

例如,有必要保持已知的“工資”表的一個示例:

與記

1

1

10000

2

0.5

3500

您可以將這樣的請求,並看看會發生什麼:

SELECT

SUM(Zarplata.Nachisleno)AS SUMMA

MAX(Zarplata.Nachisleno)為max

MIN(Zarplata.Nachisleno)為min

AVG(Zarplata.Nachisleno)AS SRED

始自於工資

決賽桌將是如下:

SUMMA

MAX

MIN

SRED

13500

10000

3500

6750

就是這樣,你可以從數據庫中選擇在飛行適當的值來執行各種功能的計算。

聯盟,交集和差

結合在SQL多重查詢

SELECT Sotrudniki.Imya

FROM員工

WHERE Sotrudniki.Nomer = 1

UNION

SELECT Sotrudniki.Imya

從員工薪酬

WHERE Zarplata.Nomer = 1

應該記住,在這個關聯表必須是兼容的負擔。 也就是說,具有相同的列數。

SELECT語句的語法和處理程序

的第一件事SELECT確定從它會採取數據的區域。 要做到這一點,使用關鍵字FROM。 如果沒有指定,選擇什麼。

然後,您可以呈現在SQL語句的WHERE。 隨著SELECT的幫助下通過表的每一行運行,並檢查數據是否符合條件。

如果查詢有GROUP BY,再有就是這些參數的值的分組。

運營商比較數據

他們有幾種類型。 在SQL比較運算符可以測試不同類型的值。

  • “=”。 表示,正如你可能已經猜到,兩個表達式的平等。 例如,它已經在實施例中使用上述的 - WHERE Zarplata.Nomer = 1。

  • “>”。 大於號。 如果表達式的左側的值大於邏輯TRUE返回並滿足條件。

  • “<”。 小於號。 扭轉以前的運營商。

  • 的“<=”和“> =”跡象。 它從簡單的操作員的不同多和少是與等於操作數條件也是如此。

  • “<>”。 我不在乎。 該條件被認為是TRUE,如果只有一個操作數不等於另一個。 他有一個更詮釋 - “!=”。

LIKE

翻譯此關鍵字可以是作為“類似”。 像SQL操作大致使用同樣的原則 - 從運行的模板查詢。 也就是說,它可以讓你從擴大使用正則表達式數據庫中的樣本數據。

例如,它設置這樣的任務:從已知基地“工作人員”讓所有名字以“I”結尾的人。 則該請求可以被組成如下:

SELECT *

FROM員工

WHERE名稱LIKE'%我心底

在這種情況下百分號意味著面具,那就是,任何字符,其數量。 而在信中,“I”SQL確定的最後一個字符是這個樣子。

CASE

這種說法SQL Server是選擇題的實現。 它類似於一個switch語句中的很多編程語言。 在SQL CASE語句執行幾個條件的動作。

例如,從表中“工資”的最大值和最小值選擇。

與記

1

1

10000

2

0.5

3500

則該請求可以被組成如下:

SELECT *

始自於工資

WHERE CASE時選擇MAX(充電)THEN最大

時,選擇MIN(帶電)THEN最小

最終結果

在此背景下,“收費”,系統會查找最大和最小值。 然後,使用創建的“總”的END字段,這將在“最大”或取決於條件的結果“最低”被記錄。

順便說一句,在SQL有CASE的更緊湊的形式 - COALESCE。

數據定義

這種觀點可以讓你開展各種變化表 - 創建,刪除,修改,並與索引工作。

第一個,這是一個值得考慮 - CREATE TABLE。 他確實沒有什麼比創建一個表人。 如果您只需鍵入CREATE TABLE查詢,什麼都不會發生,因為你需要指定幾個參數。

例如,創建熟悉表“員工”要使用的命令:

CREATE TABLE員工

(ID號碼(10)NOT NULL

名稱VARCHAR(50)NOT NULL

姓VARCHAR(50)NOT NULL)

在這一要求中,括號中立即定義的字段的名字和類型,以及是否可以為NULL。

DROP TABLE

執行一個簡單的任務 - 移除該表。 它有一個額外的選項,如果存在。 刪除的時候,如果需要的表不存在它吸收了錯誤。 使用示例:

DROP TABLE職工一方存在。

CREATE INDEX

在SQL中,有指標的系統,它允許對數據的快速訪問。 在一般情況下,它是指向一個特定的列中的鏈接。 創建索引可以是一個簡單的要求:

CREATE INDEX nazvanie_indeksa

ON nazvanie_tablitsy(nazvanie_stolbtsa)

在使用T-SQL,甲骨文,SQL PL和許多其他解釋技術,這一說法。

ALTER TABLE

功能強大的運營商,眾多的選擇。 一般來說,改變產生的結構的定義和分配表。 運營商是Oracle SQL,Postgres的,和許多其他人使用。

現在將參考使用ALTER TABLE各種選項呈現。

  • ADD。 執行在表中添加列。 語法他這個:ALTER TABLE ADD nazvanie_tablitsy nazvanie_stolbtsa tip_hranimyh_dannyh。 能有一個參數IF NOT EXISTS,如果列已經創造了其抑制錯誤;

  • DROP。 刪除列。 IF EXISTS也完成,這將產生一個錯誤,指出所請求的列不存在;

  • CHANGE。 用於重命名指定的字段名。 實例:ALTER TABLE CHANGE nazvanie_tablitsy OLDNAME NEW_NAME;

  • 修改。 此命令將改變的特定列和附加屬性的類型。 它這樣使用:ALTER TABLE MODIFY nazvanie_tablitsy nazvanie_stolbtsa數據類型屬性;

CREATE VIEW

在SQL中,有這樣的事,作為一個主意。 總之,它是一種虛擬表中的數據。 它使用的語言SQL SELECT語句作為樣品的結果形成。 視圖可以限制對數據庫的訪問隱藏起來,以取代真正的列名。

創建的過程中出現由一個簡單的查詢:

CREATE VIEW視圖名AS選擇*表名

取樣可能發生的整個數據庫作為一個整體,並在一定的條件。

一些關於特徵

在SQL查詢經常使用不同的內置功能,讓您與數據進行交互,並將它們轉換的飛行。 這是值得考慮他們,因為他們是一個結構化語言的一個組成部分。

  • 計數。 在產生特定的表計算行或條目。 作為一個選項,你可以指定列名,那麼數據就會從他身上取。 SELECT COUNT * FROM員工;

  • AVG。 此功能僅適用於數字數據列。 其結果是所有值的算術平均值的決心;

  • MIN和MAX。 這些功能已經在這篇文章中被使用。 他們定義的最大值和所述列的最小值;

  • SUM。 這很簡單 - 函數計算的列值的總和。 它是專門用於數字數據類型。 添加DISTINCT請求參數,將僅添加到唯一值;

  • ROUND。 功能捨去小數小數。 通過列名和小數的數量使用的語法;

  • LEN。 一個簡單的函數計算所述柱的長度。 其結果將是表示字符的數目的新表;

  • NOW。 此關鍵字用於計算當前的日期和時間。

另外運營商

SQL語句的許多例子是執行小任務,但仍然大大簡化樣品或數據庫活動的關鍵詞。

  • AS。 當你想直觀地安排分配指定的名稱得到一個表的結果時使用。

  • BETWEEN。 採樣用的非常方便的工具。 它表示的值的範圍,包括需要獲取數據。 輸入參數從和向數範圍用於接收。

  • 不是。 操作者給出的表達式的對面。

  • TRUNCATE。 去除所述基部的數據。 從那些其使用後無法恢復數據運營商不同。 值得一提的是,在不同的SQL某個特定關鍵字的實現可以有不同的解釋。 所以,你嘗試使用截形,與背景信息更好地了解前。

  • 限制。 設置的輸出線的數目。 運營商的特點是,它總是位於末端。 這需要一個強制的和一個可選的參數。 第一個表示與所選擇的數據有多少行顯示。 而如果第二個,然後操作員操作值的兩個範圍。

  • UNION。 非常人性化的操作到多個查詢組合。 他已經這樣本文中的例子中得到滿足。 您可以從多個表中顯示的行,UNION將它們組合起來更方便使用。 語法他這個:SELECT列名FROM表UNION選擇imya_drugogo_stolbtsa imya_drugoy表。 其結果是美國需求的匯總表。

  • PRIMARY KEY。 翻譯成“主鍵”。 實際上,這樣的術語在參考材料中使用。 他是該行的唯一標識符。 創建表時,表明將包含它的領域它是用來作為一項規則。

  • DEFAULT。 正如前面的操作中,創建一個查詢的實現中使用。 它定義的默認值,這將在本領域中創建時被填充。

一些提示,以建立一個平台,讓SQL工作

  1. NULL。 初學者而不僅僅是程序員的要求編制往往忽視了NULL值的可用性。 其結果是,該代碼誤差逐漸在,這是難以跟踪在調試過程。 因此,創建表時,重新計算或樣本值需要停下來思考,以及是否發生NULL考慮在查詢區域。

  2. 內存。 在本文中,我們示出了多種功能,能夠執行某些任務。 在外殼與數據庫工作的發展,你可以“超過”簡單表達對數據庫系統的計算。 在某些情況下,這給在性能上顯著提升。

  3. 限制。 如果你想從數千只兩行的數據庫得到的,它是需要使用運營商,如限價或頂部。 無需用語言發展的外殼的手段來獲取數據。

  4. 連接。 一旦收到來自幾個表的數據,許多程序員開始減少他們一起信封存儲裝置。 但是,為什麼? 畢竟,你可以在其中悉數到場的請求。 你不必編寫一次代碼,並在系統中保留更多的內存。

  5. 排序。 如果有可能應用在監管的要求,那就是,在DBMS的力量,就必須使用它。 這將大大節省資源的程序或服務時。

  6. 許多要求。 如果你需要插入大量的順序記錄,那麼優化應該考慮的分組數據插入一個請求。 這也將提高整個系統的性能。

  7. 數據的仔細放置。 制定基本結構之前需要考慮如何以及是否這樣一些必要的表和字段。 也許有一種方法將它們結合起來,或者放棄一些。 很多時候,程序員使用已無處從未使用過的數據過量。

  8. 類型。 為了節省空間和資源,需要註冊後才能使用的類型的數據很敏感。 如果你可以採取的較“重”的內存類型的優勢,你必須用自己的名字。 例如,如果已知在該領域是數字值將不超過255,為什麼使用4字節INT的,如果存在TINYINT 1個字節。

結論

總之,應該指出的是,語言的結構SQL查詢現在使用幾乎無處不在 - 網站,Web服務,桌面軟件,移動應用程序。 因此,SQL知識將幫助發展的所有部門。

然而,本地語言標準修改有時彼此不同。 例如,PL SQL運營商可能有不同的語法比在SQL Server中。 在開始使用此技術的發展做之前,有必要的話,被指引熟悉它。

在未來的同行,這可能超過了SQL的功能和性能,這是不太可能出現,所以這個範圍為任何程序員非常有前途的利基。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.birmiss.com. Theme powered by WordPress.