5、MySQL主健和索引

<--目录-->

1)主健

1、操作表的约束

(1)非空约束

(2)字段默认值

(3)唯一约束

(4)主健约束

(5)添加主健(重点)

(6) 自动增加

2)索引

1、创建普通索引(重点)

2、创建唯一索引

3、创建全文索引

4、创建多列索引

5、删除索引

【主健】

1、操作表的约束

###########################################################################

约束关健字                       含义                                     #

not null                   约束的字段值不能为空                           #

default                    设置字段的默认值                               #

unique key (uk)            约束字段的值是唯一                             #

primary key (pk)           约束字段为表的主健,可以作为该记录的唯一标识   #

auto_increment             约束字段的值为自动增加                         #

foreign key (fk)           约束字段为表的外健                             #

###########################################################################

#设置非空约束

#解释:设置了非空约束,字段内容则不允许为空

mysql> create table t1(

-> id int(20) not null,

-> loc varchar(40)

-> );

#设置字段的默认值

#解释:当为表中某个字段插入记录没有给他赋值,则系统会为这个字段插入默认值

mysql> create table t1(

-> id int(20) not null,

-> dname varchar(20) default ‘cjgong‘,

-> loc varchar(40)

-> );

#设置唯一约束

#解释:数据库表中某个字段的内容不允许重复

mysql> create table t1(

-> id int(20) not null,

-> dname varchar(20) unique,

-> loc varchar(40)

-> );

#设置主健约束

#解释:用数据库表中的某个字段来标识所有记录

mysql> create table t1(

-> id int(20) primary key,

-> loc varchar(40)

-> );

#添加主健

alter table student change id id int primary key auto_increment;

#设置字段值自动增加

#解释:当为数据库表中插入新记录时,字段上的值会自动生成唯一的ID

mysql> create table t1(

-> id int(20) primary key auto_increment,

-> loc varchar(40)

-> );

【索引】

1、创建普通索引

#解释:普通索引不附加任何限制条件,可以创建在任何数据类型的字段上

mysql> create table t1(

-> 字段名 数据库类,

-> 字段名 数据库类,

-> ... ...

-> index  索引名(字段名)

-> );

#创建表时创建普通索引

mysql> create table t1(

-> id int(20) primary key auto_increment,

-> loc varchar(40)

-> index index_deptno(deptno)

-> );

#在已经存在的表上创建普通索引

mysql> create index 索引名 on 表名(字段名)

mysql> create index index_deptno on t1(deptno)

#通过sql语句alter table创建普通索引

mysql> alter table table_name add index 索引名(字段名);

mysql> alter table t1 add index index_deptno(deptno);

2、创建和查看唯一索引

mysql> create table t1(

-> 字段名 数据库类,

-> 字段名 数据库类,

-> ... ...

-> unique index  索引名(字段名)

-> );

#创建表时创建唯一索引

#解释:创建索引时,索引的值必段是唯一的

mysql> create table t1(

-> id int(20) primary key auto_increment,

-> loc varchar(40)

->  unique index index_depktno(deptno)

-> );

#在已经存在的表上创建唯一索引

mysql> create unique index 索引名 on 表名(字段名)

mysql> create unique index index_deptno on t1(deptno)

#通过sql语句alter table创建唯一索引

mysql> alter table table_name add unique index 索引名(字段名);

mysql> alter table t1 add unique index index_deptno(deptno);

3、创建和查看全文索引

#解释:全文索引要关联在char、varchar、text字段上,以便快速查询数量较大的字符串类型的字段

mysql> create table t1(

-> 字段名 数据库类,

-> 字段名 数据库类,

-> ... ...

-> fulltext index  索引名(字段名)

-> );

#创建表时创建全文索引

mysql> create table t1(

-> id int(20) primary key auto_increment,

-> loc varchar(40)

->  fulltext index index_depktno(deptno)

-> );

#在已经存在的表上创建全文索引

mysql> create fulltext index 索引名 on 表名(字段名)

mysql> create fulltext index index_deptno on t1(deptno)

#通过sql语句alter table创建全文索引

mysql> alter table table_name add fulltext index 索引名(字段名);

mysql> alter table t1 add unique fulltext index index_deptno(deptno);

4、创建和查看多列索引

#解释:多列索引在创建索引时,所关联的字段是多个字段,虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用

mysql> create table t1(

-> 字段名 数据库类,

-> 字段名 数据库类,

-> ... ...

-> fulltext index  索引名(字段名)

-> );

#创建表时创建多列索引

mysql> create table t1(

-> 字段名 数据库类,

-> 字段名 数据库类,

-> ... ...

-> index  索引名(字段名1,字段名2)

-> );

#创建表时创建多列索引

mysql> create table t1(

-> id int(20) primary key auto_increment,

-> loc varchar(40)

-> index index_deptno(deptno,id)

-> );

#在已经存在的表上创建多列索引

mysql> create index 索引名 on 表名(字段名1,字段名2)

mysql> create index index_deptno on t1(deptno,id)

#通过sql语句alter table创建多列索引

mysql> alter table table_name add index 索引名(字段名1,字段名2);

mysql> alter table t1 add index index_deptno(deptno,id);

5、删除索引

语法形式如下:

drop index 索引名字 on 表名字

mysql> drop index index_deptno on t1;

时间: 2025-01-04 15:16:26

5、MySQL主健和索引的相关文章

Oracle与Mysql主键、索引及分页的区别小结

Oracle与Mysql主键.索引及分页的区别,学习oracle的朋友可以参考下 区别: 1.主键,Oracle不可以实现自增,mysql可以实现自增. oracle新建序列,SEQ_USER_Id.nextval 2.索引: mysql索引从0开始,Oracle从1开始. 3.分页, mysql: select * from user order by desc limit n ,m. 表示,从第n条数据开始查找,一共查找m条数据. Oracle:select * from user sele

MySQL主键和索引的联系及区别

转载自:http://www.nowamagic.net/librarys/veda/detail/1954 关系数据库依赖于主键,它是数据库物理模式的基石.主键在物理层面上只有两个用途: 惟一地标识一行. 作为一个可以被外键有效引用的对象. 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.下面是主键和索引的一些区别与联系. 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键. 所谓主键就是能够唯一标识表中某一行的属性或属性组

MySQL 主键与索引的联系与区别分析

关系数据库依赖于主键,它是数据库物理模式的基石.主键在物理层面上只有两个用途: 惟一地标识一行. 作为一个可以被外键有效引用的对象. 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.下面是主键和索引的一些区别与联系. 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键. 所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引.因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删除的

(转)MySQL 主键与索引的联系与区别 主键与索引是什么?

关系数据库依赖于主键,它是数据库物理模式的基石.主键在物理层面上只有两个用途: 惟一地标识一行. 作为一个可以被外键有效引用的对象. 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.下面是主键和索引的一些区别与联系. 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键. 所谓主键就 是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引.因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删

MySQL主键与索引的区别和联系

关系数据库依赖于主键,它是数据库物理模式的基石.主键在物理层面上只有两个用途: 惟一地标识一行. 作为一个可以被外键有效引用的对象. 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.下面是主键和索引的一些区别与联系. 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键. 所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引.因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删除的

Mysql建表与索引使用规范详解

一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My

MYSQL中的普通索引,主健,唯一,全文索引区别

MYSQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 总体分析 PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键. 就

Mysql主键索引、唯一索引、普通索引、全文索引、组合索引的区别

原文:Mysql主键索引.唯一索引.普通索引.全文索引.组合索引的区别 Mysql索引概念: 说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不是越多越好,假如这本书1000页,有500也是目录,它当然效率低,目录是要占纸张的,而索引是要占磁盘空间的. Mysql索引主要有两种结构:B+树和hash. hash:hsah索引在mysql比较少用,他以把数据的索引以hash形式组织起来,因此当查找某一条记录的时候,速度非常快.当时因为是has

mysql——主键自动增长&amp;唯一索引

首先说一下主键和唯一索引的区别 主键:一个数据库的一张表有且仅有一个主键,而且主键不能重复 唯一索引:一个数据库的一张表上唯一索引可以有多个,只是所在唯一索引上的值不能重复,这一点和主键一样 下面我们创建一个有主键有唯一索引的,并且主键是自动增长 create table demo (id int primary key auto_increment, name char(10) unique key, age int); 接下来我们插入数据看看 mysql--主键自动增长&唯一索引 原文地址: