建立表操作的sql語句可以分為以下幾個部分
create table 表名(欄位名 資料型別 [約束條件] ,欄位名 資料型別 [約束條件] ,欄位名 資料型別 [約束條件]);
數值型別:tinyint, smallint, mediumint, int/integer, bigint, float, double, decimal(m,n)取值範圍在m和n之 間
字元型別(有blob的都是二進位制形式文字資料):char, varchar, tinyblob, blob, text, mediumblob, mediumtext, longblob, longtext
日期和時間型別:date(yyyy-mm-dd), time(hh-mm-ss), datetime(yyyy-mm-dd hh-mm-ss), year(yyyy), datestamp(yyyymmddhhmmss)
create table student(
id int,
name varchar(20),
primary key(id)
);create table student(
id int,
name varchar(20),
primary key(id,name)
);
(primary可以省略不寫)可以設定復合主鍵,主鍵必須唯一
not null(非空):
create table if not exists student(
id int,
name varchar(20) not null,
primary key(id)
)
字段設定非空約束,就必須給值,給null字串也可以成功插入,但必須給值
auto_increment(自增長)
create table if not exists student(
id int primary key auto_icrement,
name varchar(20) not null
)auto_incrment=100
自增長初始值預設從1開始,可以通過auto_increment=n設定初始值為n
default(預設值)
create table if not exists student(
id int primary key auto_increment,
name varchar(20) not null,
*** char(2) default '男'
)auto_increment=100
如果被設定有預設值的字段沒有賦值,則會自動給預設值
unique key(唯一約束,唯一字段可以設定多個)
create table if not exists student(
id int primary key auto_incremary,
name varchar(20) not null,
*** char(2) default '男',
stu_id int unique
)auto_increment=100
設定唯一約束的字段,值不可以重複
charset(設定字元編碼):預設utf-8
engine(儲存引擎):預設innodb
create table if not exists student(
id int primary key auto_incremary,
name varchar(20) not null,
*** char(2) default '男',
stu_id int unique
)engine=innodb,charset=utf-8,auto_increment=100
drop table 表名;
alter table 表名 add|drop|modify|change|alter|rename
alter table student add class_id int;//接最後一列新增新字段class_id
alter table student add class_id int first;//在第一列新增新字段class_id
alert table student add class_id int after ***;//在***字段之後新增新字段class_id
alter table student drop class_id;//刪除class_id欄位
modify和change都可以修改字段,其區別就在於:
change必須指定新的欄位名而modify則不需要(如果需要修改欄位名只能用change,否則用哪個都可以)
alter table student change class_id c_id varchar(20);//將class_id欄位名改為c_id並修改資料型別為varchar(20)
alter table student change class_id class_id varchar(20);//修改class_id資料型別為varchar(20)不修改欄位名
alter table student modify class_id varchar(20);//將class_id資料型別修改為varchar(20)
alter table student alter class_id set default 0;//設定預設值為0
alter table student alter class_id drop default;//刪除預設值
*為什麼有了modify和change還要來個alter呢?這是因為另外兩個在修改的時候會把字段之前舊的屬性全部覆蓋掉
舉個栗子:現在需要修改class_id default的值,我們需要這麼寫
alter table student modify class_id varchar(20) default 10;
而採用alter則不需要則可以只需要設定預設值
alter table student rename to student_test;//將student表名改為student_test
alter table student engine=myisam;//將儲存引擎修改為myisam
MYSQL基礎筆記 三 表操作基礎
資料表的操作 表與字段是密不可分的。新增資料表 1 create table if not exists 表名 2欄位名 資料型別,3欄位名 資料型別,4 欄位n 資料型別 最後一行不需要加逗號 5 表選項 if not exists 如果表名不存在,那麼就建立,否則不執行建立 實現檢查功能。表選項...
MYSQL 庫 表 資料基礎操作
資料庫 儲存大量資料的倉庫。主要儲存在磁碟和記憶體中。分類 1 關係型資料庫 sql 儲存方式固定,安全。主要用mysql來查詢資料。2 非關聯式資料庫 nosql 儲存方式比較靈活,儲存資料的效率比較高,不太安全。一種關係型資料庫管理系統,效能高,成本低,可靠性好。表裡面存放著資料,資料庫裡面儲存...
mysql基礎操作語句 Mysql基礎操作語句
比如乙個學生表student有三個欄位id,name,資料型別分別為int varchar varchar 增加資料 語法 insert into 表名 values val1,val2.例 insert into student values 1516,張三 男 部分字段插入 insert int...