zoukankan      html  css  js  c++  java
  • 索引

    Msyql索引

     

    索引:相当于“书的目录”

    索引的优点和缺点

    优点:加快查询的速度

    缺点:占用物理存储空间,减慢写的速度

    使用索引index(在表中的字段上创建索引)

    使用规则

    查看索引:desc 表名:key---->MUL

          show index from 表名;

          Index_type:BTREE (B+TREE Hash)

    创建index索引:

    创建表时 指定索引字段

    在已有表里指定索引字段 

    create index  索引名 on 表名(字段名);

    删除索引

    drop index 索引名 on 表名;

     

    主键的使用primary key

    使用规则

    查看desc 表名:key---->PRI

          show index from 表名;

     

    创建时查查创建;

    create tabke t1(

    stu_id char(9),

    name char(10),

    sex enmu(‘boy’,’girl’),

    age tinyint(2) unsigned,

    primary key(字段名)

    );

    建表时创建

    Alter table 表名 add primary key(字段名); 

    主键只能作用于一个列上,添加主键索引时,你需要确保该主键默认不为空(NOT NULL)。实例如下:

    ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;

    ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

    删除主键:alter table  表名 drop primary key;

    复合主键的使用(表中多个字段一起做主键,复合主键字段的值不允许同时重复,要一起创建)

    创建:> create table db.q1(

        -> name char(10),

        -> class char(7),

        -> pay enum('yes','no') default 'no',

        -> primary key(name,class)  //需要一起创建

        -> );

     

    验证:insert into db.q1 values('jim','a11','no');

    insert into db.q1 values('jim','b11','no');   

    删除:alter table 表名 drop primary key;

     

     

    primary key 与auto_increment 连用

                  字段的值自动增长i++ i=$+1

                   数值类型  primary key

    create table db.q2(

        -> id int(2) zerofill primary key auto_increment,

        -> name char(7),

        -> age tinyint(2) unsigned,

        -> sex enum('boy','girl','gav')

        -> );

    insert into q2(name,age,sex) values('tom',22,'gav');

    insert into q2(name,age,sex) values('tom',22,'gav');

    select * from q2;

     

    唯一索引unique

    使用规则

    一个表中可以有多个UNIQUE字段

    对应的字段值不允许有重复

    查看:desc 表名:key---->UNI

    创建

    建表时创建

    Create unique index 索引名 on 表名(字段名);

    create table asd.q1(

    name char(7),

    hz_id char(5),

    jsz_id char(5),

    unique(hz_id),

    unique(jsz_id)

    );

    已有表创建

    删除:drop index 索引名 on 表名;  //索引名默认和字段名同名

     

    外键的使用

    -让当前表字段的值在另外一个表中字段值的范围内选择

    -表的存储引擎必须是innodb

    -字段类型要一致

    -被参照字段必须要是

    创建外键:

    References  //参考

    on update cascade   //同步更新

    on delete cascade   //同步删除

    foreign key(字段名) references 表名(字段名) on update cascade on delete cascade

    创建两个表

    create table qq.bjb(

        -> bjb_id int(2) unsigned primary key auto_increment,

        -> name char(10),

        -> pay float(7,2)

        -> );

    create table qq.jf(

        -> bjb_id int(2) unsigned primary key auto_increment,

        -> name char(10),

        -> pay float(7,2)

        -> );

    在已有表创建外键

    alter table bjb add foreign key(bjb_id) references jfb(jfb_id) on update cascade on delete cascade;

     

    update 表名 set 字段名=值 where 条件;     //更新数据                                

    delete from 表名 where 条件;

    删除外键:alter table 表名 drop foreign key 外键;

    show create table 表名;  //查看外键名

     bjb   | CREATE TABLE `bjb` (

      `bjb_id` int(2) unsigned NOT NULL AUTO_INCREMENT,

      `name` char(10) DEFAULT NULL,

      `pay` float(7,2) DEFAULT NULL,

      PRIMARY KEY (`bjb_id`)

    ) ENGINE=InnoDB(默认存储引擎) DEFAULT CHARSET=latin1 |

  • 相关阅读:
    Guns项目整体结构
    基于事件的NIO多线程服务器
    Reactor模式和NIO
    ConcurrentHashMap之实现细节
    C 语言的前世今生
    Netty系列之Netty高性能之道
    java synchronized详解
    生产者/消费者模式
    当spring 容器初始化完成后执行某个方法
    Linux系统管理员需要知道的16个服务器监控命令
  • 原文地址:https://www.cnblogs.com/xiaoren112/p/8401251.html
Copyright © 2011-2022 走看看