<轉載>SQL 基礎知識梳理(一)- 資料庫與 SQL SQL 基礎知識梳理(一) - 資料庫與 SQLSQL 基礎知識梳理(二) - 查詢基礎SQL 基礎知識梳理(四) - 資料更新
【博主】反骨仔 【原文地址】http://www.cnblogs.com/liqingwen/p/5902856.html
目錄
一、What's 資料庫
1.資料庫(Database,DB):將大量資料儲存起來,通過計算機加工而成的可以進行高效訪問的資料集合。如:大型-銀行儲存的資訊,小型-電話簿。
2.資料庫管理系統(Batabase Management System,DBMS):用來管理資料庫的計算機系統。
3.關係型資料庫(Relational Database,RDB):目前應用最廣泛的資料庫。
4.結構化查詢語言(Structured Query Language,SQL):專門用於操作 RDB。
5.常見的 5 種關係型資料庫管理系統(Relational Database Management System,RDBMS):
①Oracle Database:甲骨文公司
②SQL Server:微軟公司
③DB2:IBM 公司
④PostgreSQL:開源
⑤MySQL:開源
二、資料庫結構
1.伺服器:用於接收並處理其它程式發出的請求的程式(軟體),或者是安裝此類程式的裝置(計算機)。
2.客戶端:向伺服器發出請求的程式(軟體),或者是安裝此類程式的裝置(計算機)。
3.表(table):類似 Excel,由行和列組成的二維表。
4.欄位:表的列(垂直方向)。
5.記錄:表的行(水平方向)。【注意】關係資料庫必須以行為單位進行資料讀寫。
6.單元格:行列交匯處。【注意】與 Excel 不同,一個單元格只能輸入一個數據。
三、SQL 概要
1.SQL 語句:用關鍵字、表名和列名等組合而成的一條語句。
2.3 種 SQL 語句種類:
(1)DDL(Data Definition Language,資料定義語言):建立、刪除或修改資料庫以及資料庫中的表等物件。
①CREATE:建立資料庫和表等物件
②DROP:刪除資料庫和表等物件
③ALTER:修改資料庫和表等物件
(2)DML(Data Manipulation Language,資料操作語言):查詢或修改表中的記錄。
①SELECT:查詢表中的資料
②INSERT:向表中插入資料
③UPDATE:修改表中的資料
④DELETE:刪除表中的資料
(3)DCL(Data Control Language,資料控制語言):確認或取消對資料庫中的資料變更的執行操作,以及對使用者的操作資料庫中的物件許可權進行設定。
①COMMIT:確認對資料庫中的資料進行的變更
②ROLLBACK:取消對資料庫中的資料進行的變更
③GRANT:賦予使用者的操作許可權
④REVOKE:取消使用者的操作許可權
【備註】DML 使用最頻繁。
3.SQL 語句書寫規範:
①以分號(;)結尾;
②大小寫不敏感,不區分關鍵字的大小寫;【注意】插入到表中的資料是區分大小寫的,如“HI”、“Hi”和“hi”都不同。
③該系列隨筆將採用“關鍵字大寫,表名和列名的首字母大寫”的格式。
④單詞使用半形空格或換行符隔開
4.常數的書寫方式:
字串、日期:用單引號括起來('),如'Hello','2016-09-24'。
數字:直接書寫,不用加單引號,如:5。
四、建立資料庫與表
1.資料庫建立:
-- 語法:CREATE DATABASE <資料庫名稱>
CREATE DATABASE Shop -- 建立名為 Shop 的資料庫
2.表的建立
-- 語法: -- CREATE TABLE <表名> -- ( -- <列名1> <資料型別> <約束>, -- <列名1> <資料型別> <約束>, -- ... -- <表約束1>, -- <表約束2>, -- ... -- )
-- 建立名為 Shohin 的表 CREATE TABLE Shohin ( shohin_id CHAR(4) NOT NULL, shohin_mei VARCHAR(100) NOT NULL, shohin_bunrui VARCHAR(32) NOT NULL, hanbai_tanka INTEGER , shiire_tanka INTEGER , torokubi DATE , PRIMARY KEY (shohin_id) );
3.命名規則:
①只能使用半形英文字母、數字、下劃線(_)作為資料庫、表和列的名稱;
②規範要求命名以半形英文字元開頭;
③名稱不能重複。
4.資料型別的指定:宣告該列的資料型別,是一種約束。
5.資料型別介紹:
①INTEGER:整型,意味不能儲存小數;
②CHAR:字串型,如 CHAR(10)和 CHAR(100)中的括號表名該列可以儲存的字串的最大長度。它是“定長字串”,如 CHAR(8) 表示在列中插入 'abc' 時會自動儲存成 'abc '(後面5個半形空格)的形式;
③VARCHAR:字串型,類似 CHAR,不同的是它是 “可變長字串”,如 VARCHAR(8) 在插入 'abc',儲存的就是字串 'abc';
④DATE:日期型別;
... ...
6.約束:
①非空約束:NULL 是空白(無記錄)的意思的關鍵字,NOT NULL 表示必須輸入的約束。
②主鍵約束:主鍵是可以確定一行資料的列,一般通過它取特定行的資料,它是唯一的,不允許重複。
... ...
五、更新和刪除表
1.刪除表
-- 語法:DROP TABLE <表名>
DROP TABLE Shohin; -- 刪除名為 Shohin 的表
【注意】被刪的表,無法恢復。
2.更新表
(1)新增列
-- 語法:ALTER TABLE <表名> ADD <列名> <型別>;
ALTER TABLE Shohin ADD Shohin_mei_Kana VARCHAR(100); -- 在 Shohin 中新增名為 Shohin_mei_Kana 型別為 VARCHAR(100) 的列
(2)刪除列
-- 語法:ALTER TABLE <表名> DROP COLUMN <列名>;
ALTER TABLE Shohin DROP COLUMN Shohin_mei_Kana; -- 刪除 Shohin 表中名為 Shohin_mei_Kana 的列
【注意】表定義變更後無法恢復。