一、創建一個數據表 create table 表名 ( 列名1 數據類型1 [完整性約束條件], 列名2 數據類型2 [完整性約束條件], 列名3 數據類型3 [完整性約束條件], 列名4 數據類型4 [完整性約束條件], …… 列名n 數據類型n ); 表名:所要創建的表的名稱 列名:表示表中字段的名稱 數據類型:指定參數的數據類型 完整性約束條件:指定字段的某些特殊約束條件 注意: 1、在創建表時,首先需要選擇數據庫‘use 數據庫名’,否則會顯示錯誤 2、一個表中可以有一個或者多個屬性,定義時,字母大小寫均可,各個屬性之間用逗號隔開,最后一個屬性后不需要加逗號 二、表的完整性約束條件 primary key : 標識該屬性為該表的主鍵,可以唯一的標識對應的元組 foreign key : 標識該屬性為該表的外鍵,是與之聯系某表的主鍵 not null : 標識該屬性不能為空 unique : 標識該屬性的值是唯一的 default : 為該屬性設置默認值 auto_increment : 標識該屬性的值自動增加 三、完整性約束條件 1、設置表的主鍵 主鍵的主要目的是幫助以最快的速度找到表中的某一條記錄,主鍵必須滿足的條件就是主鍵必須是唯一的; 表中任意2條的主鍵的值必須是不同的,主鍵是非空值; 主鍵可以是單一的字段,也可以是多個字段的組合; 舉例1:設置單個字段的主鍵 create table example0 ( stu_id int primary key, stu_name varchar(20), stu_sex boolean ); 舉例2:設置多個字段的主鍵 create table example1 ( stu_id int, course_id int, grade float, primary key(stu_id,course_id) ); 2、設置表的外鍵 設置外鍵的原則就是必須依賴於數據庫中已經存在的父表的主鍵,外鍵可以為空值 外鍵的作用是建立該表與其父表的關聯關系 3、設置表的非空約束 非空性是指字段的值不能為空值(NULL),非空約束將保證所有記錄中該字段都有值 設置表的非空約束是指在創建表時為表的某些特殊字段加上 NOT NULL 約束條件 舉例: create table example4 ( id int not null primary kye, name varchar(20) not null, stu_id int, constraint d_fk foreign key(stu_id) references example1(stu_id) ); 注釋: stu_id字段為外鍵,d_fk為外鍵的別名,example1表為example4表的父表,example4表的外鍵依賴於父表的主鍵stu_id 4、設置表的唯一性約束 唯一性是指所有記錄中該字段的值不能重復出現 舉例: create table example5( id int primary key, stu_id int unique, name varchar(20) not null ); 5、設置表的屬性值自動增加 auto_increment是MYSQL中的一個特殊約束條件,其主要作用是為表中新插入的新紀錄自動生成唯一的ID; 一個表只能有一個字段使用auto_increment約束,且該字段必須為主鍵的一部分; auto_increment約束的字段可以是任何整數類型; 默認情況下,該字段的值是從1開始增加 舉例: create table example6( id int primary key auto_increment, stu_id int unique, name varchar(20) not null ); 注釋:如果第一條記錄設置了該字段的初始值,那么新增加的記錄就會從初始值開始增加 6、設置表的屬性的默認值 在創建表時可以指定表中字段的默認值, 如果在插入一條新的記錄時,沒有為這個字段賦值,那么數據庫系統會自動為這個字段插入默認值 舉例: create table example7 (id int primary key auto_increment, stu_id int unique, name varchar(20) not null, english varchar(20) default 'zero', math float default 0, computer float default 0 ); 注釋:如果沒有使用default關鍵字指定字段的默認值,也沒有指定字段為非空,那么字段的默認值為空NULL 四、查看表結構 查看表結構是指:查看數據庫中已經存在的表的定義 1、查看表基本結構的語句:describe describe語句可以查看表的基本定義:其中包括字段名、字段數據類型、是否為主鍵和默認值等; describe語句的語法格式如下: describe 表名; describe可以縮寫為desc 2、查看表的詳細結構語句show create table 該語句可以查看表的字段名、字段的數據類型、完整性約束條件等信息。除此之外還可以查看表的默認的存儲引擎和字符編碼 show create table的語法格式如下: show create table 表名; 以整潔的格式顯示的語法格式如下: show create table 表名 \G; 舉例: show create table example \G; 五、修改表 1、修改表名 語法格式:alter table 舊表名 rename [to] 新表名; 舉例:alter table example1 rename user; 注釋:修改后example1表就不存在了,只存在名為user的新表,但是其內容是一致的,只是換了個名稱
2、修改字段的數據類型 語法格式:alter table 表名 modify 屬性名 數據類型; 注釋:表名指所要修改數據類型的字段的表的名稱; 屬性名指:所要修改數據類型字段的名稱; 數據類型指:修改后的新的數據類型 舉例:alter table user modify name varchar(30); 修改前先desc user 修改后再desc user 就會發現name字段的數據類型改變了 3、修改字段名 語法格式:alter table 表名 change 舊屬性名 新屬性名 新數據類型; 舉例:alter table example1 change stu_sex sex int(2); 注釋:新數據類型指修改后的數據類型,如不需要修改,則將新數據類型設置成與原來一樣 修改整數類型時可能會影響表中的數據,特別注意的是字符類型的字段最好不要修改成整數類型或者浮點數類型 4、增加字段 語法格式:alter table 表名 add 屬性名1 數據類型 [完整性約束條件] [first | after 屬性名2]; 完整性約束條件:是可選參數,用來設置新增字段的完整性約束條件 first:是可選參數,其作用是將新增字段設置為表的第一個字的 after:是可選參數,其作用是將新增字段添加到“屬性名2”所指的字段后 如果執行的SQL語句中沒有“first”或者“after 屬性名2”參數指定新增字段的位置,則新增字段默認為表的最后一個字段 (1)增加無完整性約束條件的字段 舉例:alter table user add phone varchar(20); (2)增加有完整性約束條件的字段 舉例:alter table user add age int(4) not null; (3)表的第一個位置增加字段 舉例:alter table user add num int(8) primary key first; (4)表的指定位置之后增加字段 舉例:alter table user add address varchar(20) not null after phone; 5、刪除字段 刪除字段是刪除表中已經定義好的表中的某個字段,刪除后其字段所屬的數據都會被刪除 語法格式:alter table 表名 drop 屬性名; 6、修改字段的排列位置 語法格式:alter table 表名 modify 屬性名1 數據類型 first|after 屬性名2; (1)字段修改到第一個位置 舉例:alter table user modify name varchar(20) first; (2)字段修改到指定位置 舉例:alter table user modify sex tinyint(1) after age; 7、更改表的存儲引擎 語法格式:alter table 表名 engine=存儲引擎名; 8、刪除表的外鍵約束 ********************************************************************** 9、刪除表 (1)刪除沒有被關聯的普通表 語法格式:drop table 表名; (2)刪除被其它表關聯的父表 刪除子表的外鍵約束,再刪除父表 *****************************************************************************