创建索引的方法有两种

创建索引的方法有两种:创建表的同时创建索引,在已有表上创建索引。

方法一:创建表的同时创建索引。

使用这种方法创建索引时,可以一次性地创建一个表的多个索引(例如唯一性索引、普通索引、复合索引等),其语法格式与创建的语法格式基本相同(注意粗体字部分的代码)。

Create  table 表名(

字段名1数据类型 [约束条件]

字段名字2   数据类型 [约束条件]

[unique][fulltext] index [索引名](字段名[(长度)] [asc|desc]

)engine=存储引擎类型 default charset=字符集类型

备注“[]”表示可选项,“[]”里面的“|”表示将各个选项隔开,“()”表示必选项。

长度表示索引中关键字的字符长度,关键字的值可以是数据库表中字段值得一部分,这种索引称为“前缀索引”。

Ase与desc为可选项参数,分别表示升序与降序,不过目前这两个可选项参数没有实际作用,索引中所有关键字的值均以升序存储。

使用下面的SQL语句创建了一个存储引擎为MyISAM、默认字符集为gbk的书籍book表,其中定义了主键isbn、书名name、简介brief_intorduction、价格price以及出版时间publish_time,并在该表分别定义了唯一性索引isbn_unique、普通索引name_idex、全文索引brief_fulltext以及复合索引complex_index

create table book(

isbn char (20) primary key,

name char(100) not null,

brifef_introduction text not noll,

price decimal(6,2),

publish_time date not null,

unique index isbn_unique (isbn),

index name_index (name (20)),

fulltext index brief_fulltext (name,brief_introduction),

index complex_index (price,publish_time),

) engine=MyISAM default charset=gbk;

方法二:在已有的表上创建索引

在已有的表上创建索引有两种语句格式,这种语句语法格式的共同特征是需要指导在哪个表上创建索引,语法格式分别如下:

语法格式一:

create[unique|fulltext]index 索引名 on 表名(字段名[(长度)] [ase|desc])

语法格式二:

alter table 表名 add[unique|fulltext]index 索引名(字段名[(长度)] [ase|desc])

例如,向课程course 表的课程描述description字段添加全文索引,可以使用下面SQL语句:

alter  table  coursr add fulltexr index description_fulltext (description);

该语句等效于:

Create fulltext index description on course (description);

删除表索引

SQL语句是:

drop index 索引名 on 表名

创建索引的方法有两种,布布扣,bubuko.com

时间: 2024-10-05 18:39:12

创建索引的方法有两种的相关文章

iOS:创建单例对象的两种方式

单例模式:创建单例对象的两种方式 方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self)  //同步加锁,在多线程中使用,可以使线程安全 { if(singleManager == nil) { singleManager = [[SingleClassManager alloc]init]; } } return

虚方法与两种重写方法的比较

虚方法virtual..override: 1.派生类的方法和基类的方法有相同的签名和返回类型. 2.基类的方法使用virtual标注. 3.派生类的方法使用override标注. class MyBaseClass { virtual pubilc void Print() ... } class MyDerivedClass : MyBaseClass { override pubilc void Print() ... } 注意: 1.重写和被重写的方法必须有相同的可访问性.换一种说法,被

089 重用父类方法的两种方式

目录 一.直接调用指定类的方法 二.通过super()关键字 2.1 使用方法 2.2 使用super调用父类方法 2.3 super()的调用顺序 重用父类方法有两种方式: 指名道姓的使用,直接调用指定类的方法 super关键字使用 一.直接调用指定类的方法 指名道姓的使用,跟继承没有关系.但也能完成需求 class Person: school = 'xxx' def __init__(self,name,age): self.name=name self.age=age def study

laravel创建新model数据的两种方法

laravel中的CRUD操作中,通过对代表数据表中row的model对象操作,来更新数据库表. 对于创建新的row的操作,有两种功能上相同的方法: 1.create: $user = User::create(array('email => '[email protected]','password'=>'mypassword')); 2.new and save $user = new User; $user->email = '[email protected]'; $user-&

Qt打开外部程序的三种方法(两种阻塞,一种不阻塞)

Qt打开外部程序 [cpp] view plaincopy //1.通过调用系统函数 system("opt/myApp"); //这是linux下的,windows下可以用WinExec等函数 //2.通过QProcess,阻塞调用 QProcess::execute("/opt/myApp"); //绝对路径和相对路径都可以,windows下要带exe后缀,系统应用如记事本notepad可直接输入打开 //3.通过QProcess,非阻塞调用 QProcess 

类中方法的两种调用方式

class Foo(object): def func(self, name): print(name) # 第一种,通过实例对象调用func方法 foo = Foo() foo.func('allin') # 第二种,通过类名调用func方法 foo = Foo() Foo.func(foo, 'allin') # 两种方法等价 原文地址:https://www.cnblogs.com/xiangxiaolin/p/11185078.html

create-react-app创建项目修改配置项的两种方法

方法一:eject 打开 package.json ,可以看到eject.运行 npm run eject 可以让由create-react-app创建的项目的配置项暴露出来. { ... "scripts": { ... "eject": "react-scripts eject" }, ... } 运行npm run eject ,此时,项目中多了一个config文件,并且各个配置文件已经暴露出来了.(运行npm run eject之前,保证

直接调用对象方法的两种方式

关于直接调用方法和给对象发送消息调用方法(即perfromSelector和NSInvocation) performSelector是运行时系统负责去找方法的,在编译时候不做任何校验:如果直接调用编译是会自动校验.如果imageDownloader:didFinishWithImage:image:不存在,那么直接调用 在编译时候就能够发现(借助Xcode可以写完就发现),但是使用performSelector的话一定是在运行时候才能发现(此时程序崩溃):Cocoa支持在运行时向某个类添加方法

SQL Server 2008数据库创建用户只读权限的两种方式

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用. 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执行即可 sqlserver命令方式增加登录名.用户名及赋予相应权限 sp_addlogin 'test','test','DB'  >>登录名.密码.登录的数据库 sp_grantdbaccess 'test'  >>将数据库用户加入到当前数据库 gran