一.創建數據表
老規矩,先看實例,再看語法。
USE abcd; //使用名爲student的數據庫
CREATE TABLE asus(
id int auto_increment primary key,
user varchar(30) not null,
password varchar(30) not null,
createtime datetime);
提示我寫錯了,仔細看一看,原來是auto_increment被我少寫了一個e。
一個字錯了,就需要從頭再敲,這太費時間了,這裏教大家另一種方法:
打開第一篇文字講過的Navicat Premium這個軟件,選擇一個數據庫,然後點擊查詢,然後新建查詢,在這裏可直接寫sql語句而不在想控制檯那麼麻煩。
總結語法:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 數據表名
[(create_defintion...)][table_options][select_statement]
-- create_defintion 格式/參數
col_name type[NOT | NULL][DEFAULT default_value][AUTO_INCREMENT][PRIMARY][reference_definition]
CREATE TABLE 語句 相關參數的解釋:
關鍵字 | 說明 |
---|---|
TEMPORARY | 如果使用該關鍵字,表示創建一個臨時表 |
IF NOT EXISTS | 該關鍵字用於避免表存在時MySQL報告的錯誤 |
create_definition | 這是表的列屬性部分。MySQL要求在創建表時,表要至少包含一列 |
table_options | 表的一些特殊參數其中大多數選項涉及的是表數據如何存儲及存儲在何處,如ENGINE選項用於定義表的存儲引擎,多數情況下,用戶不必指定表選項 |
select_statement | SELECT語句描述部分,用它可以快是創建表 |
create_definition參數說明:
參數 | 說明 |
---|---|
col_name | 字段名 |
type | 字段類型 |
NOT NULL | NULL |
DEFAULT default_value | 表示默認值 |
AUTO_INCREMENT | 表示是否時自動編號,每個表只能有一個AUTO_INCREMENT列,並且必須被索引 |
PRIMARY KEY | 表示是否爲主鍵,一個表只能有一個PRIMARY KEY,如表中沒有一個PRIMARY KETY,而某些應用程序需要PRIMARY KEY,MySQL將返回第一個沒有任何NULL列的UNIQUE鍵,作爲PRIMARY KEY |
reference_definition | 爲字段添加註釋 |
二.查看錶結構
使用SHOW COLUMNS 語句查看
SHOW [FULL]COLUMNS FROM 數據表名 [FROM 數據庫名];
--或
SHOW [FULL]COLUMNS FROM 數據表名.數據庫名;
使用DESCRIBE 語句查看
DESCRIBE|DESC 數據表名;
-- 只顯示一列的信息
DESCRIBE 數據表名 列名;
三.修改數據表
添加新字段及修改字段定義:
USE abcd;
ALTER TABLE abcd ADD email VARCHAR(50) not null, --添加新字段
modify user VARCHAR(40); --冰修改字段user的字段類型
通過ALTER 語句修改表列,前提事必須將表中數據全部刪除,然後纔可以修改表列
修改字段名:
ALTER TABLE abcd.asus
CHANGE COLUMN user username VARCHAR(30) NULL DEFAULT NULL;
--將user改爲username NULL DEFAULT NULL的意思是可以爲空,默認空
--類型不可省略
刪除字段:
USE abcd;
ALTER TABLE abcd DROP email;
--刪除abcd表下的email字段
修改表名:
USE abcd;
ALTER TABLE asus RENAME AS asus_my;
語法總結:
ALTER[IGNORE]TABLE 數據表名 alter_spec[,alter_spec]...|table_options
--alter_spec子句語法格式
ADD[COLUMN]create_definition[FIRST|AFTER column_name] -- 添加新字段
|ADD INDEX[index_name](index_col_name,...) --添加索引名稱
|ADD PRIMARY KEY (index_col_name,...) --添加主鍵名稱
|ADD UNIQUE[index_name](index_col_name,...) --添加唯一索引
|ALTER[COLUMN]col_name{SET DEFAULT literal|DROP DEFAULT}--修改字段默認值
|CHANGE[COLUMN]old_name_name create_definition --修改字段名/類型
|MODIFY[COLUMN]create_definition --修改子句定義字段
|DROP[COLUMN]col_name --修改字段名稱
|DROP PRIMARY KEY --刪除主鍵名稱
|DROP INDEX index_name --刪除索引名稱
|RENAME[AS]new_tbl_name --更改表名
--create_definition 定義列的數據類型和屬性
--table_options 用於指定表的一下特性參數,多數情況下,不必指定該選項
數據結構核心原理與算法應用