建立資料表
1、建立資料表的語法格式
資料表屬於資料庫,在建立資料表之前要使用「use 」指定操作是在哪個資料庫中進行的,如果沒有選擇資料庫,將會出現「no database selected」的錯誤
建立資料表的語句為:
create table ,
語法規則為:
create table
欄位1 資料型別 [列級約束條件] [預設值],
欄位2 資料型別 [列級約束條件] [預設值],
[表級約束條件]
使用create table建立表的時候,必須指定以下資訊:
(1)要建立的表的名稱,不區分大小寫,不能使用sql語言中的關鍵字,如drop、alter、insert等。
(2)建立表中每一列的名稱、資料型別時,如果要建立多個列,要使用逗號。
範例:建立員工表employee。
首先選擇建立表的資料庫:
use study
建立employee表的sql語句:
create table employee
id int(11),
name varchar(25),
deptid int(11),
salary float,
使用show tables;查詢資料表是否建立成功。
2、主鍵約束
主鍵,又稱主碼,是表中一列或多列的組合。逐漸約束要求主鍵列的資料唯一,並且不允許為空。主鍵能唯一的表示表中的一條資料,可以結合外來鍵來定義不同資料表之間的關係,並且可以加快資料查詢的速度。主鍵分為兩種型別:單字段主鍵和多字段聯合主鍵。
單字段主鍵
單字段主鍵是有乙個字段組成,sql語句格式分為以下兩種情況:
(1)在定義列的同時指定主鍵,語法規則如下:
欄位名 資料型別 primary key [預設值]
範例:定義資料表employee2,其主鍵為id
create table employee2
id int (11) primary key,
name varchar(25),
deptid int(11),
salary float
(2)在定義完所有的列之後指定主鍵
[constraint ] primary key(欄位名)
範例:定義資料表employee3,其主鍵為id,sql語句如下
create table employee3
id int(11),
name varchar(25),
deptid int(11),
salary float,
primary key(id)
多欄位聯合主鍵
多欄位聯合主鍵是由多個字段聯合組成的,語法規則如下:
primary key [欄位1,欄位2,......欄位n]
範例:定義資料表employee4,假設表中沒有主鍵id,為了唯一確定乙個員工,可以把name和deptid聯合起來作為主鍵,sql語句如下:
create table employee4
name varchar(25),
deptid int(11),
salary float,
primary key (name,deptid)
3、使用外來鍵約束
外來鍵用來在兩個表之間建立連線,他可以是一列或多列。乙個表可以有乙個或多個外來鍵。外來鍵對應的是參照完整性,乙個表的外來鍵可以為空值,若不為空值,則每個外鍵值必須等於另乙個表中主鍵的某個值。
外來鍵:外來鍵是表中的乙個字段,外來鍵可以不是本表的主鍵,但是外來鍵應該是另乙個表的主鍵。外加的主要作用就是儲存資料引用的完整性,定義外來鍵後,不允許刪除在另一表中具有關聯關係的行。外來鍵的作用是保持資料的一致性,完整性。例如:部門表department的主鍵是id,在員工表employee5中有乙個鍵deptid與這個id關聯。
建立外來鍵的語法格式:
[constraint ] foreign key 欄位名1 [,欄位名2,...]
references 主鍵列1 [,主鍵列2,....]
「外鍵名」為定義的外來鍵約束的名稱。乙個表中不能有相同的外來鍵;「欄位名」表示子表需要新增外來鍵約束的字段列;「主表名」即被子表外來鍵所依賴的表的名稱;「主鍵列」表示主表中定義的主鍵列或列組合
範例:定義資料表emplpyee5,並在employee5表上建立外來鍵約束。
建立乙個部門表department:
create table department
id int(11) primary key,
name varchar(22) not null;
location varchar(50)
定義資料表employee5,讓它的鍵deptid作為外來鍵關聯到deparment的主鍵:
create table employee5
id int(11) primary key,
name varchar(25),
deptid int(11),
salary float,
constraint foreign_key_emy_dept foreign key(deptid) references department(id)
以上語句執行成功後,在表emplyee5上新增了名為foreign_key_emy_dept的外來鍵約束。外鍵名稱為的deptid,其依賴於主表department的主鍵id
4、使用非空約束
非空約束指的是字段的值不能為空。對於使用了非空約束的字段,如果使用者在新增資料時沒有指定值,資料庫系統會報錯。
非空約束的語法規則如下:
欄位名 資料型別 not null
範例:定義資料表employee6,指定員工的名稱不能為空:
create table employee6
id int(11) primary key,
name varchar(25) not null,
deptid int(11),
salary float,
constraint foreign_key_emy_dept2 foreign key(deptid) references department(id)
執行後,在employee6中建立了乙個name欄位,其插入值不能為空。
5、使用唯一性約束
唯一性約束要求該列唯一,允許為空,但是只能出現乙個空值。唯一性約束可以確保一列或者幾列不出現重複值。
非空約束的語法規則如下:
(1)在定義列之後直接定義唯一性約束。語法規則如下:
欄位名 資料型別 unique
範例:建立department2,指定部門名稱唯一:
create table department2
id int(11) primary key,
name varchar(22) unique,
location varchar(50)
(2)在定義完所有的列之後指定唯一性約束,語法規則如下:
[constraint] unique ()
範例:定義資料表department3,指定部門名稱唯一。
create table department3
id int(11) not null,
name varchar(22),
location varchar(50),
constraint sth unique(name)
unique和primary key的區別:乙個表中可以有多個字段宣告為unique,但是只能有乙個primary key宣告;宣告為primary key 的列不允許有空值,但是宣告為unique的字段可以有空值。
6、使用預設約束
預設約束指定某列的預設值。如男同學較多,性別就可以設定為預設的』男『。如果插入一條新的記錄時沒有為這個字段賦值,那麼系統會自動將這個字段賦值為』男『。
預設約束的語法格式:
欄位名 資料型別 defualt 預設值
範例:定義資料表employee7,指定員工的部門編號預設為1111:
create table employee7
id int(11) primary key,
name varchar(24) not null,
deptid int(11) default 1111,
salary float,
constraint foreign_key_emp_dept4 foreign key(deptid) references department(id);
7、設定表中的屬性值自動增加
在資料庫中,經常希望在每次插入新紀錄時,系統自動生成欄位的主鍵值。可以通過為表的主鍵新增auto_increment關鍵字來實現。預設的,在mysql中,auto_increment的初始值是1,每新增一條記錄,字段值自動加1.乙個表只能有乙個字段使用auto_increment約束,且該字段必須為主鍵的一部分。auto_incre ment約束的字段可以是任何的整數型別(tinyint/samllin/int/bigintd等)
設定自動增加的語法規則:
欄位名 資料型別 auto_increment
範例:create table employee8
mysql自學完整 MySQL自學篇(八)
2 字串函式 1 計算字串字元數的函式和字串長度的函式 char length str 返回字串str所包含的字元個數。乙個多位元組字元字元算作乙個單字元 select char length date char length egg char length 中國 2 合併字串函式concat s1...
mysql自學得多久 MYSQL自學經歷
這是我自己學習的過程記錄,希望能和看到這篇文章的朋友們一起進步!mysql自學總結 首先sql有三大類指令 ddl 資料定義語言,主要用來建立 刪除儲存資料用的資料庫及資料庫中的表等物件。包含了以下幾種指令 create 建立資料庫和表等物件 drop 刪除資料庫和表等物件 alter 修改資料庫和...
mysql自學基礎
mysql 檢視庫列表 show databases 使用庫 use mysql 檢視庫中的資料表資訊 show tables 顯示資料表結構 describle mysql.user 檢視使用者 describe user create 建立新庫名字為auth create database au...