程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL自學篇

MySQL自學篇

編輯:MySQL綜合教程

MySQL自學篇


創建數據表

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

(

id int(11) primary key auto_increment,

name varchar(25) not null,

deptId int(11)

);

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved