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

MySQL學習筆記_3_MySQL創建數據表(中)

編輯:MySQL綜合教程

MySQL學習筆記_3_MySQL創建數據表(中)




MySQL創建數據表(中)

三、數據字段屬性

1、unsigned【無符號】

可以讓空間增加一倍 比如可以讓-128~127增加到0~255

注意:只能用在數值型字段

2、zerofill【前導零】

e.g. createtable if not exists t2(num int(5) zerofill,price float(7,2)zerofill,name varchar(10));

注意:只能用在數值型字段,自動加上無符號屬性

3、auto_increment【自增】 #auto自動;increment增量,增加

當插入值為:NULL,0,留空時,會自動+1;當插入已經存在的值時,則會報錯

注意:只能用於整數,字段值不允許重復(需要結合其他屬性實現,如:primarykey) #primary主要的;初級的,基本的。

e.g. createtable if not exists t3(id int auto_increment primary key,namechar(10));

insertinto t3(id,name) values(null,”xiaofang”); #可以連續插入n次,null可以換成0

insertinto t3(name) values(“xiaofang”);

插入時,會按照最大的數加1的順序插入

e.g. deletefrom t3 where id >1 and id <9;

然後按照前面的語句插入

select* from t3 order by id;

deletefrom t3;

insertinto t3(name) values(“xiaofang”); # * 5

select* from t3;

insertinto t3(id,name) values(100,”ashun”);

insertinto t3(name) values(“jichang”) # * 5

select* from t3 order by id;

最佳實踐:每個表最好都設置一個ID字段,設置為自增長屬性,auto_increment

4、NULL和 NOTNULL

NULL:默認是空

建議:在創建表時,每個字段都不要插入空值,因為NULL值在轉換為其他程序語言時存在很多不確定因素。

NOTNULL:非空

e.g. createtable if not exists t4(id int not null,name varchar(10) notnull,price double(7,2) not null) ;

5、default【缺省值】

e.g. createtable if not exists t5(id int not null default 0,name varchar(10) notnull default “NULL”,price double(7,2) not null default 0.00);

6、綜合

createtable users(

idint unsigned not null auto_increment primary key,

namevarchar(30) not null default “”,

heightdouble(10,2) not null default 1.00,

ageint unsigned not null default 1,

sexvarchar(5) not null default ”man”);

四、創建索引

1、主鍵索引【primarykey】 #duplicate復制,使加倍 entry進入,侵入

作用:確定數據庫表裡一條特定數據記錄的位置,一個表只能有一個主鍵,並且,主鍵的值不能為空。

建議:最好為每一個數據表定義一個主鍵!

e.g. 1)create table t7(id int not null auto_increment primary key,namevarchar(10));

2) createtable t7(

idint not null auto_increment,

namevarchar(10) not null '',

primarykey(id)); #在最後指定主鍵索引

2、唯一索引【unique】 #unique唯一的,獨一無二的

都可以防止創建重復的值,但是,每個表可以有多個唯一索引

createtable if not exists users(id int not null auto_increment,namevarchar(30) not null default '' unique,age int,primary key(id));

3、常規索引【index/key】

是最重要的技術,可以提升數據庫的性能,是數據庫優化最先考慮的方面。索引可以提高查找的速度,但是會減慢插入,刪除,修改的速度

和表一樣是獨立的數據對象,可以在創建表時使用,也可單獨使用

單獨使用時:createindex ind1 on users(name,age);

dropindex ind1 on users; #刪除索引

創建時使用:

createtable carts(

idint not null auto_increment,

uidint not null,

sidint not null,

primarykey(id),

keycuid(uid),

indexcsid(sid));

4、全文索引

fulltext類型索引,只能MyISAM表類型上使用,只有在varchar,char,text上使用。也可以在多個數據列上使用。

createtable books(

idint not null auto_increment,

booknamevarchar(30) not null unique,

pricedouble,

detailtext not null,

fulltext(detail),

indexind(bookname),

primarykey(id));

原始查詢:select* from books where bookname like '%C++%';

現在查詢:selectbookname,price from books where match(detail)against('C++');

select match(detail) against('C++') from books; #match 匹配;against倚,靠;

可以明顯的查詢速度!

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