MySql建表与索引

来源:互联网 发布:truncate mysql 编辑:程序博客网 时间:2024/06/05 12:14

常用命令

show databases; //查看数据库create database test; //创建数据库usetest;//选择数据库\s//查看数据库状态? create table; //创建表的帮助show tables; //查看表desc test; //查看表结构\c//退出创建表


一、创建表的基本模型([]为可选的):

CREATE TABLE [IF NOT EXISTS]表名称(
    字段名1 列类型 [属性] [索引],
    字段名2 列类型 [属性] [索引],
    ...
    字段名n 列类型 [属性] [索引]
)[表类型] [表字符集];
表名称和字段名需要我们自己定义名称。


二、数据值和列类型:

    细分都是按空间大小来区分的。
    1、数值型
        整形(整数)
            非常小的整型 1字节 TINYINT
            较小的整型 2字节 SMALLINT
            中等大小的整型 3字节 MEDIUMINT
            标准的整型 4字节 INT
            大整型 8字节 BIGINT
        浮点型(小数)M为位数,D为小数点保留几位
            float(M,D) 4字节
            double(M,D) 8字节
            定点数decimal(M,D) M+2字节
    2、字符型
            char(M) 255 属于固定长度字符串
            varchar(M) 255 可变长度字符串
    3、日期型
            DATE   YYYY-MM-DD
            TIME    hh:mm:ss
            DATETIME    YYYY-MM-DD hh:mm:ss
            TIMESTAMP   YYYYMMDDhhmmss
            YEAR    YYYY
            时间保存最好采用INT类型,因为它可以参与运算。


三、数据字段属性:

    1、unsigned 可以让空间增加一倍,如果不希望在字段中插入负值就使用此属性,另外只能用在数值型字段。
    2、zerofill 只能用在数值型字段,前导0(例如id int(5) zerofill,如果插入数据为11,会自动存储为00011),该字段自动应用unsigned。
    3、AUTO_INCREMENT 只能是整数,数据每增加一条就会自动增1,字段的值不允许重复。
    4、NULL和NOT NULL 控制字段插入数据是否可以为空值。
    5、default 缺省值。在某个表里,某个字段不插入值的话,就会启用缺省值。
    CREATE TABLE users(
        id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(30) NOT NULL DEFAULT '',
        height DOUBLE(10,2) NOT NULL DEFAULT 0.00,
        age INT NOT NULL DEFAULT 0,
        sex CHAR(4) NOT NULL DEFAULT '男'
    );


四、创建索引:
    1、主键索引

        主要作用是确定数据库表里一条特定数据记录的位置。
        最好为每一张数据表定义为一个主键索引。
        一个表只能指定一个主键,主键的值不能为空。
        指定主键有2种方法:
        (1)
        CREATE TABLE users(
            id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
        );
        (2)
        CREATE TABLE users(
            id INT UNSIGNED NOT NULL AUTO_INCREMENT,
            PRIMARY KEY(id)
        );

    2、唯一索引
        unique
        它和主键索引一样,都可以防止创建重复的值,不同的是,每个表可以有多个唯一索引。

    3、常规索引
        最重要的技术,提高数据库性能,索引优化首先考虑常规索引。
        查询提高了,增删改减慢了。
        key和index是同义词,用哪个都可以。
        创建方法:
            单独创建常规索引:
                CREATE index 索引名称 on 表名(字段名,多个用逗号分隔);
                删除:
                drop index 索引名称 on 表名;
            创建表时创建常规索引:
                CREATE TABLE users(
                    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
                    uid INT NOT NULL,
                    index 索引名称(uid)

                );


    4、全文索引
        fulltext类型索引,只能在MyISAM表类型上使用,只有在varchar,char,text等文本字符串上使用,也可以多个数据列使用。
        CREATE TABLE books(
            id int,
            bookname varchar(30),
            price double,
            detail text not null,
            fulltext(detail,bookname),
            index ind(price),
            primary key(id)
        );
        正常查询:select * from books where bookname like '%php%';
        全文索引查询:select bookname,price from books where MATCH(detail) AGAINST('php');
        以上两种查询来比,全文索引查询效率比较高。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝头型睡偏了怎么办 初生婴儿鼻子被奶块堵住怎么办 月经排的不顺畅怎么办 四个月的小孩拉肚子怎么办 月经期做了水光怎么办 4个多月的宝宝拉肚子怎么办 2个月婴儿积食怎么办 3个月婴儿积食怎么办 2个月的婴儿干呕怎么办 脚上的皮烂了怎么办 嘴皮里面烂了怎么办 未满月婴儿拉屎很费劲怎么办 新生儿血钙1.7怎么办啊 3个月宝宝胃口小怎么办 3个月宝宝缺钙怎么办 五个月宝宝吃手睡觉怎么办 2个月宝宝有蛲虫怎么办 四个月婴儿漏屎怎么办 母乳喂养6个月才11斤怎么办 过期的果泥肉泥怎么办? 孩子被开水烫了怎么办 小儿喝开水烫了怎么办 小孩不识字怎么办17-18 3岁宝宝不识数字怎么办 小孩数字写反了怎么办 3岁宝宝乱啃东西怎么办 闹钟的指针松了怎么办 手机想让它横屏怎么办 教孩子写作业头都被气炸了怎么办 2岁宝宝大小脸怎么办 宝宝2岁半不认识颜色怎么办 宝宝11个多月突然排斥妈妈怎么办 5个月婴儿粘妈妈怎么办 3岁宝宝记不住颜色怎么办 3岁宝宝不认字怎么办 墙纸被宝宝弄上各种颜色怎么办 三周半的孩子不认识数字怎么办 3岁幼儿不会数数怎么办 四岁宝宝不认识数字怎么办 三岁宝宝不认识数字怎么办 4岁半了不认识数字怎么办