SQL必知必會


數據庫基礎——數據庫術語 數據庫:數據庫是一個以某種有組織的方式存儲的數據集合。 數據庫(database) 保存有組織的數據的容器(通常是一個文件或一組文件)。 數據庫軟件應稱為數據庫管理系統(DBMS)。數據庫是通過 DBMS 創建和操縱的容器。 表(table) 某種特定類型數據的結構化清單。 模式(schema) 關於數據庫和表的布局及特性的信息。 表由列組成。列存儲表中某部分的信息。 列(column) 表中的一個字段。所有表都是由一個或多個列組成的。 正確地將數據分解為多個列極為重要。 數據庫中每個列都有相應的數據類型。數據類型(datatype)定義了列可 以存儲哪些數據種類。 數據類型 所允許的數據的類型。每個表列都有相應的數據類型,它限制(或允 許)該列中存儲的數據。 行(row) 表中的一個記錄。 表中每一行都應該有一列(或幾列)可以唯一標識自己。 主鍵(primary key) 一列(或一組列),其值能夠唯一標識表中每一行。 表中的任何列都可以作為主鍵,只要它滿足以下條件:  任意兩行都不具有相同的主鍵值;  每一行都必須具有一個主鍵值(主鍵列不允許 NULL 值);  主鍵列中的值不允許修改或更新;  主鍵值不能重用(如果某行從表中刪除,它的主鍵不能賦給以后的新行)。

SQL(發音為字母 S-Q-L或 sequel)是 Structured Query Language(結構 化查詢語言)的縮寫。SQL是一種專門用來與數據庫溝通的語言。

編寫 SQL語句需要良好地理解基本數據庫設計。

如果使用 DISTINCT 關鍵字,它必須直接放在列名的前面。

SELECT prod_name FROM Products LIMIT 5 OFFSET 5; 所以, LIMIT 指定返回的行數。 LIMIT 帶的 OFFSET 指定從哪兒開始。

請注意, DESC 是 DESCENDING 的縮寫,這兩個關鍵字都可以使用。與 DESC 相對的是 ASC (或 ASCENDING ),在升序排序時可以指定它。但實際上, ASC 沒有多大用處,因為升序是默認的(如果既不指定 ASC 也不指定 DESC ,則假定為 ASC )。

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY 2, 3; SELECT 清單中指定的是選擇列的相對位置而不是列名。

通配符搜索只能用於文本字段(字符串),非文本數據類型字段不能使用通配符搜索。 需要特別注意,除了能匹配一個或多個字符外, % 還能匹配 0 個字符。 %代表搜索模式中給定位置的 0個、1個或多個字符

另一個有用的通配符是下划線( _ )。下划線的用途與 % 一樣,但它只匹配單個字符,而不是多個字符。 使用通配符的技巧

concat()函數 1、功能:將多個字符串連接成一個字符串。 2、語法:concat(str1, str2,...) 返回結果為連接參數產生的字符串,如果有任何一個參數為null,則返回值為null 做好注釋

分組是使用 SELECT 語句的 GROUP BY 子句建立的

GROUP BY 子句中列出的每一列都必須是檢索列或有效的表達式(但不能是聚集函數)。如果在 SELECT 中使用表達式,則必須在 GROUP BY子句中指定相同的表達式。不能使用別名。 GROUP BY 子句必須出現在 WHERE 子句之后, ORDER BY 子句之前。 關鍵是,相同的數據出現多次決不是一件好事,這是關系數據庫設計的 基礎。關系表的設計就是要把信息分解成多個表,一類數據一個表。各 表通過某些共同的值互相關聯(所以才叫關系數據庫)。 總之,關系數據可以有效地存儲,方便地處理。因此,關系數據庫的可 伸縮性遠比非關系數據庫要好。

自聯結(self-join)、自然聯結(natural join)和外聯結(outer join)

目前為止使用的聯結稱為等值聯結(equijoin),它基於兩個表之間的相等測試。這種聯結也稱為內聯結(inner join)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM