值得信赖的彩票平台
下載APP 編程獅,隨時隨地學編程
返回 首頁

SQL 教程

開始閱讀
手冊說明:

SQL數據庫是什么?

結構化查詢語言(Structured Query Language)簡稱SQL(發音:/?es kju? ?el/ "S-Q-L"),是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統;同時也是數據庫腳本文件的擴展名。

結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同數據庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。

如果您想要更快、更系統地學會SQL,您最好采用邊學邊練(SQL微課)的學習模式。

學完本教程,推薦您進行實戰練習:點擊進入實戰

SQL語句結構

結構化查詢語言包含6個部分:

一:數據查詢語言(DQL:Data Query Language):

其語句,也稱為“數據檢索語句”,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類型的SQL語句一起使用。

二:數據操作語言(DML:Data Manipulation Language):

其語句包括動詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱為動作查詢語言。

三:事務處理語言(TPL):

它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

四:數據控制語言(DCL):

它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對數據庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。

五:數據定義語言(DDL):

其語句包括動詞CREATE和DROP。在數據庫中創建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人數據庫目錄中獲得數據有關的保留字。它也是動作查詢的一部分。

六:指針控制語言(CCL):

它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。

SQL數據類型

簡要描述一下結構化查詢語言中的五種數據類型:字符型,文本型,數值型,邏輯型和日期型。

字符型(VARCHARVS CHAR)

VARCHAR型和CHAR型數據的這個差別是細微的,但是非常重要。他們都是用來儲存字符串長度小于255的字符。

假如你向一個長度為四十個字符的VARCHAR型字段中輸入數據Bill Gates。當你以后從這個字段中取出此數據時,你取出的數據其長度為十個字符——字符串Bill Gates的長度。假如你把字符串輸入一個長度為四十個字符的CHAR型字段中,那么當你取出數據時,所取出的數據長度將是四十個字符。字符串的后面會被附加多余的空格。

當你建立自己的站點時,你會發現使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段時,你不需要為剪掉你數據中多余的空格而操心。

VARCHAR型字段的另一個突出的好處是它可以比CHAR型字段占用更少的內存和硬盤空間。當你的數據庫很大時,這種內存和磁盤空間的節省會變得非常重要。


文本型(TEXT)

使用文本型數據,你可以存放超過二十億個字符的字符串。當你需要存儲大串的字符時,應該使用文本型數據。

注意文本型數據沒有長度,而上一節中所講的字符型數據是有長度的。一個文本型字段中的數據通常要么為空,要么很大。

當你從HTML FORM的多行文本編輯框(TEXTAREA)中收集數據時,你應該把收集的信息存儲于文本型字段中。但是,無論何時,只要你能避免使用文本型字段,你就應該不使用它。文本型字段既大且慢,濫用文本型字段會使服務器速度變慢。文本型字段還會吃掉大量的磁盤空間。

一旦你向文本型字段中輸入了任何數據(甚至是空值),就會有2K的空間被自動分配給該數據。除非刪除該記錄,否則你無法收回這部分存儲空間。


數值型(整數INT 、小數NUMERIC、錢數MONEY)
INT 對比 SMALLINT 對比 TINYINT

通常,為了節省空間,應該盡可能的使用最小的整型數據。一個TINYINT型數據只占用一個字節;一個INT型數據占用四個字節。這看起來似乎差別不大,但是在比較大的表中,字節數的增長是很快的。另一方面,一旦你已經創建了一個字段,要修改它是很困難的。因此,為安全起見,你應該預測一下,一個字段所需要存儲的數值最大有可能是多大,然后選擇適當的數據類型。

NUMERIC

為了能對字段所存放的數據有更多的控制,你可以使用NUMERIC型數據來同時表示一個數的整數部分和小數部分。NUMERIC型數據使你能表示非常大的數——比INT型數據要大得多。一個NUMERIC型字段可以存儲從-10^38到10^38范圍內的數。NUMERIC型數據還使你能表示有小數部分的數。例如,你可以在NUMERIC型字段中存儲小數3.14。

MONEY 對比 SMALLMONEY

你可以使用 INT型或NUMERIC型數據來存儲錢數。但是,專門有另外兩種數據類型用于此目的。如果你希望你的網點能掙很多錢,你可以使用MONEY型數據。如果你的野心不大,你可以使用SMALLMONEY型數據。MONEY型數據可以存儲從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要存儲比這還大的金額,你可以使用NUMERIC型數據。

SMALLMONEY型數據只能存儲從-214,748.3648到214,748.3647 的錢數。同樣,如果可以的話,你應該用SMALLMONEY型來代替MONEY型數據,以節省空間。


邏輯型(BIT)

如果你使用復選框(CHECKBOX)從網頁中搜集信息,你可以把此信息存儲在BIT型字段中。BIT型字段只能取兩個值:0或1。

注意:在你創建好一個表之后,你不能向表中添加 BIT型字段。如果你打算在一個表中包含BIT型字段,你必須在創建表時完成。


日期型(DATETIME 對比 SMALLDATETIME)

一個 DATETIME型的字段可以存儲的日期范圍是從1753年1月1日第一毫秒到9999年12月31日最后一毫秒。

如果你不需要覆蓋這么大范圍的日期和時間,你可以使用SMALLDATETIME型數據。它與DATETIME型數據同樣使用,只不過它能表示的日期和時間范圍比DATETIME型數據小,而且不如DATETIME型數據精確。一個SMALLDATETIME型的字段能夠存儲從1900年1月1日到2079年6月6日的日期,它只能精確到秒。

DATETIME型字段在你輸入日期和時間之前并不包含實際的數據,認識這一點是重要的。

附加資料

SQL API文檔:http://www.sdsyxdcdy.com/sql/82rg1ozi.html

SQL 教程:http://www.sdsyxdcdy.com/sql/y93wmfol.html


目錄

SQL 教程

開始學習SQL
SQL 簡介
SQL RDBMS 概念
SQL 語法
SQL Select(選擇) 語法
SQL SELECT DISTINCT(選擇不同) 語法
SQL WHERE Clause(查詢子句)
SQL AND, OR and NOT(與,或不是運算符)
SQL ORDER BY Keyword(按關鍵字排序)
SQL INSERT INTO 語句(在表中插入)
SQL NULL Values(空值)
SQL UPDATE 語句(更新表中的記錄)
SQL Delete 語句(刪除表中的記錄)
SQL 運算符
SQL 表達式
SQL 選擇數據庫 USE語句

SQL 高級教程

SQL SELECT TOP, LIMIT, ROWNUM
SQL LIKE 運算符
SQL Wildcards 通配符
SQL IN 運算符
SQL BETWEEN運算符
SQL 通用數據類型
SQL 語句快速參考
SQL Join連接
SQL INNER JOIN 關鍵字(內部連接)
SQL 左連接 LEFT JOIN 關鍵字
SQL右連接 RIGHT JOIN 關鍵字
SQL FULL OUTER JOIN 關鍵字(完整外部連接)
SQL自連接 Self JOIN
SQL UNION 運算符
SQL SELECT INTO 語句
SQL INSERT INTO SELECT 語句
SQL 撤銷索引、表以及數據庫
SQL CREATE DATABASE 語句
SQL CREATE TABLE 語句
SQL ALTER TABLE 語句
SQL AUTO INCREMENT 字段
SQL CREATE VIEW、REPLACE VIEW、 DROP VIEW 語句
SQL Server 和 MySQL 中的 Date 函數
SQL NULL 值 – IS NULL 和 IS NOT NULL

SQL 進階

SQL Aliases 別名
SQL 約束
SQL NOT NULL 約束
SQL UNIQUE 約束
SQL PRIMARY KEY 約束
SQL FOREIGN KEY 約束
SQL DEFAULT 約束
SQL CHECK 約束
SQL JOIN 連接
SQL UNION 子句
SQL 克隆數據表
SQL 索引
SQL 子查詢
SQL ALTER TABLE 命令
SQL TRUNCATE TABLE 命令
SQL 處理重復數據
SQL 使用視圖
SQL 注入
SQL HAVING 子句
SQL 事務
SQL 使用序列
SQL 通配符
SQL 臨時表
SQL MS Access、MySQL 和 SQL Server 數據類型

SQL 函數

SQL 函數
SQL MAX() 函數
SQL MIN() 函數
SQL COUNT() 函數
SQL AVG() 函數
SQL SUM() 函數
SQL 日期函數
SQL FIELD()函數
SQL FIRST() 函數
SQL LAST() 函數
SQL GROUP BY 語句
SQL HAVING 子句
SQL 字母大小寫轉換函數UPPER()、UCASE()、LOWER()和LCASE()
SQL UPPER()函數
SQL LOWER()函數
SQL UCASE() 函數
SQL LCASE() 函數
SQL MID() 函數
SQL LEN() 函數
SQL ROUND() 函數
SQL NOW() 函數
SQL FORMAT() 函數
SQL SQRT() 函數
SQL RAND() 函數
SQL CONCAT() 函數
SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函數
SQL REPLACE()字符串替換函數
SQL TRIM()函數去除字符串頭尾空格
SQL 主機
SQL 總結

實例/測驗

SQL 測驗

拓展閱讀

詳盡的SQL語句大全分類整理(打包下載)
詳細實例全面解析SQL存儲過程

關閉

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; } 值得信赖的彩票平台

              黑山县| 金堂县| 宁城县| 大新县| 华池县| 和林格尔县| 花莲县| 阿拉善盟| 板桥市| 长治县| 克东县| 瓦房店市| 福建省| 武夷山市| 营山县| 栾川县| 增城市| 上犹县|