来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] MySQL创建数据表(中)三、数据字段属性1、unsigned【无符号】可以让空间增加一倍比如可以让-128~127增加到0~255注意:只能用在数 20540;型字段2、zerofill【前导零】e g createtable if not...
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倚,靠; 可以明显的查询速度! |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com