SQL語句彙總(一)
阿新 • • 發佈:2018-12-14
"SQL"是 “Structured Query Language” 即“結構化查詢語言”的簡稱,它是用來管理關係型資料庫的。
其包括:
–資料定義語言(DDL)
–資料查詢語言(DQL)
–資料操作語言(DML)
–資料控制語言(DCL)
建立資料庫:
CREATE DATABASE 資料庫名;
資料庫名命名規則:
- 第一個字元必須為下列之一:字母、下劃線、#及@符號。
- 後續字元由字母、十進位制數、下劃線、#、$及@符號組成。
- 不能為RDBMS(資料庫管理系統)的保留關鍵字。(參考這個)
- 不允許空格及其他字元。
複製表:
CREATE TABLE copy_student SELECT * FROM t_student;
如此我們便複製了一張名為copy_student的表,它包括t_student表中的內容與結構。注意:複製表的同時表的約束並不能複製過來。
只複製表結構而不復製表內容:
CREATE TABLE copy_student SELECT * FROM t_student WHERE 1=0;
只需在WHERE條件中加入一個永不為真的值即可。
資料庫完整性
保證資料庫的完整性是為了防止垃圾資料的產生,以免影響資料庫的執行效率。這裡簡要說一些,因為畢竟不是理論類的文章,這裡主要是整理彙總SQL語句。
分類:
1.實體完整性
保證一行資料是有效的
2.域完整性
保證一列資料是有效的
3.引用完整性
保證引用的編號是有效的
4.使用者自定義完整性
保證自定義規則
實體完整性–主鍵約束:
PRIMARY KEY
主鍵列不能為空也不能重複,通常加在表的id列中。
CREATE TABLE t_student( student_id INT PRIMARY KEY, student_name VARCHAR(10), student_birthday DATETIME, student_phone INT, student_score FLOAT);
實體完整性–唯一約束:
UNIQUE
唯一約束是指給定列的值必須唯一,與主鍵約束不同的是它可以為空。通常加在表中不能重複的資訊中,如電話號碼。
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10),
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT);
域完整性–非空約束:
NOT NULL
非空約束可以加在諸如姓名等列上。
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10) NOT NULL,
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT);
域完整性--預設約束:
設定預設值後,可以在新增此列時不指定值,資料庫會自動填充設定的預設值。
DEFAULT
現給學生表加入性別列,預設值設為“男”,這樣新增新的學生資訊時如果沒有填寫具體的性別均會預設為男性:
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
student_name VARCHAR(10) NOT NULL,
student_sex VARCHAR(5) DEFAULT '男',
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT);
引用完整性–外來鍵約束:
外來鍵約束是指在外來鍵關聯主鍵上強制加上一個約束,如果違反該約束,則不允許該條資料的修改。
建立主表–班級表:
CREATE TABLE t_class(
class_id INT PRIMARY KEY,
class_name VARCHAR(20) UNIQUE NOT NULL);
)
建立從表–學生表,並設定外來鍵約束:
CREATE TABLE t_student(
student_id INT PRIMARY KEY,
s_c_id INT REFERENCES t_class(class_id),
student_name VARCHAR(10) NOT NULL,
student_sex VARCHAR(5) DEFAULT '男',
student_birthday DATETIME,
student_phone INT UNIQUE,
student_score FLOAT
CONSTRAINT FOREIGN KEY(s_c_id) REFERENCES t_class(class_id);