RDBMS即關係型數據庫系統,該數據庫系統採用的系統結構最常見的是CS結構,即客戶服務器模式。
在該客戶服務器模式中,客戶端爲發起SQL請求的一端,而服務端則連接有數據庫,可以進行數據庫的讀取。而SQL數據庫是這麼組織的:行稱爲記錄,列被稱爲字段,二者相交的地方被稱作單元格。SQL語句大致分爲以下三類:
- DDL(Data Definition Language,數據定義語言) 用來創建或者刪除存儲數據用的數據庫以及數據庫中的表等對象。
- DML(Data Manipulation Language,數據操縱語言) 用來查詢或者變更表中的記錄。
- DCL(Data Control Language,數據控制語言) 用來確認或者取消對數據庫中的數據進行的變更。除此之外,還可以對 RDBMS 的用戶是否有權限操作數據庫中的對象(數據庫表等)進行設定。
一.三種SQL語句
1.DDL(數據定義語言)
-
CREATE : 創建數據庫和表等對象
-
DROP : 刪除數據庫和表等對象
-
ALTER : 修改數據庫和表等對象的結構
2.DML(數據操縱語言)
-
SELECT :查詢表中的數據
-
INSERT :向表中插入新數據
-
UPDATE :更新表中的數據
-
DELETE :刪除表中的數據
上面四種操作,想必就是我們常說的增刪改查了。
3.DCL(數據控制語言)
-
COMMIT : 確認對數據庫中的數據進行的變更
-
ROLLBACK : 取消對數據庫中的數據進行的變更
-
GRANT : 賦予用戶操作權限
-
REVOKE : 取消用戶的操作權限
二.一些具體常用語句
1.數據庫創建
CREATE DADABASE modao;
2.表的創建
CREATE TABLE modaotable( data DATE);
3.命名規則
只能以小寫英文字母開頭
4.數據類型
- INTEGER 型
- CHAR 型
定長字符串
- VARCHAR 型
變長字符串
- DATE 型
5.數據約束
NOT NULL
是非空約束,即該列必須輸入數據。
PRIMARY KEY
是主鍵約束,代表該列是唯一值,可以通過該列取出特定的行的數據。
6.刪和改
假如要刪除modao1,只需要 DROP TABLE modao1;
要添加一列可以存儲100位的可變長字符串的 modao_age列
ALTER TABLE modao ADD COLUMN modao_age VARCHAR(100);
要刪除 modao_age列
ALTER TABLE modao DROP COLUMN modao_age;
清空表內容
TRUNCATE TABLE TABLE_NAME;
數據的更新
-- 修改所有的出生時間 UPDATE modao SET born_date = '2001-10-10'; -- 僅修改部分modao的技能點 UPDATE modao SET jineng =jinneg * 10 WHERE modaoname = 'buaoye';
練習題
1.編寫一條 CREATE TABLE 語句,用來創建一個包含表 中所列各項的表 Addressbook (地址簿),併爲 regist_no (註冊編號)列設置主鍵約束
CREATE TABLE Addressbook (regist_no INTEGER NOT NULL, name VARCHAR(128) NOT NULL, address VARCHAR(256) NOT NULL, tel_no CHAR(10), mail_address CHAR(20), PRIMARY KEY (regist_no));
運行完左邊就出來了這一table(注意要刷新)
2.假設在創建練習1中的 Addressbook 表時忘記添加如下一列 postal_code (郵政編碼)了,請把此列添加到 Addressbook 表中。
列名 : postal_code
數據類型 :定長字符串類型(長度爲 8)
約束 :不能爲 NULL
ALTER TABLE addressbook ADD COLUMN postal_code CHAR(8) NOT NULL;
3.編寫 SQL 語句來刪除 Addressbook 表。
DROP TABLE addressbook;
4.編寫 SQL 語句來恢復刪除掉的 Addressbook 表。
這裏要注意的是,因爲刪除的表無法恢復,因此我們這裏只能重新插入
CREATE TABLE Addressbook (regist_no INTEGER NOT NULL, name VARCHAR(128) NOT NULL, address VARCHAR(256) NOT NULL, tel_no CHAR(10), mail_address CHAR(20), postal_code CHAR(8) NOT NULL, PRIMARY KEY (regist_no));