• MySQL学习笔记_3_MySQL创建数据表(中)


    MySQL创建数据表(中)

    三、数据字段属性

    1unsigned【无符号】

    可以让空间增加一倍 比如可以让-128127增加到0255

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



    2zerofill【前导零】

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

    注意:只能用在数值型字段,自动加上无符号属性



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

    当插入值为:NULL0,留空时,会自动+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



    4NULLNOTNULL

    NULL:默认是空

    建议:在创建表时,每个字段都不要插入空值,因为NULL值在转换为其他程序语言时存在很多不确定因素。

    NOTNULL:非空

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

    5default【缺省值】

    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倚,靠;

    可以明显的查询速度!

  • 相关阅读:
    流行-Manifold学习理解与应用
    狠心奶奶自断亲情,28年后孙女拒绝相见:人有没有不原谅的权利?
    学术论文常用词汇总结(待更新)
    机动车驾驶(2)--- 老司机经验
    关于MySQL数据导出导入
    php5.6-lumen与php5.6-phalcon性能对比
    win7(64bit)+python3.5+pyinstaller3.2安装和测试
    WARNING: Can not get binary dependencies for file...
    一些不错的计算机书籍
    PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载
  • 原文地址:https://www.cnblogs.com/itrena/p/5927068.html
Copyright © 2020-2023  润新知