1. 程式人生 > >SQL語句彙總(一)

SQL語句彙總(一)

"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);