精华内容
下载资源
问答
  • 创建索引一:唯一索引alter table table_name add unique index_name(column_list);例如:alter table users_game_task add unique unique_userid_taskid(userid, taskid);二:主键索引:PRIMARY KEY(主键索引)ALTER...

    创建索引

    一:唯一索引

    alter table table_name add unique index_name(column_list);

    例如:alter table users_game_task add unique unique_userid_taskid(userid, taskid);

    二:主键索引:PRIMARY KEY(主键索引)

    ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

    alter table table_name add index index_name (column_list) ;

    alter table table_name add unique index index_name(column_list) ;

    alter table table_name add primary key (column_list) ;

    查询索引

    SHOW INDEX FROM table_name;

    删除索引

    方法一:drop index index_name on table_name ;

    方法二:alter table table_name drop index index_name ;

    alter table table_name drop primary key ;

    其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。

    INDEX(普通索引)

    mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

    FULLTEXT(全文索引)

    ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

    多列索引

    ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

    1.普通索引。

    这是最基本的索引,它没有任何限制。它有以下几种创建方式:

    (1)创建索引:CREATE INDEX indexName ON

    tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是

    BLOB 和 TEXT 类型,必须指定length,下同。

    (2)修改表结构:ALTER tableName ADD INDEX [indexName] ON (tableColumns(length))

    (3)创建表的时候直接指定:CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ;

    2.唯一索引。

    它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

    (1)创建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))

    (2)修改表结构:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))

    (3)创建表的时候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));

    3.主键索引

    它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLE testIndex(i_testID INT

    NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY

    KEY(i_testID)); 当然也可以用ALTER命令。

    展开全文
  • SQL语句

    2020-07-05 18:07:44
    创建、修改或删除数据库中表、视图、索引等对象操作 create、alter、drop 数据查询语言 Data Query Language DQL 按照指定的组合、条件表达式或排序检索已存在数据库中数据,不改变数据

    结构化查询语言(SQL)是一种数据库查询和程序设计语言

    SQL语句按其功能分为4类:

    SQL语句 英文名称 英文简称 功能(定义) 常见命令
    数据定义语言 Data Definition Language DDL 创建、修改或删除数据库中表、视图、索引等对象的操作 create、alter、drop
    数据查询语言 Data Query Language DQL 按照指定的组合、条件表达式或排序检索已存在的数据库中的数据,不改变数据库中数据 select
    数据操纵语言 Data ManipulationLanguage DML 向表中添加、删除、修改数据的操作 insert、update、delete
    数据控制语言 Data Control Language DCL 用来授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果,对数据库进行监视等操作 grant(权限)、revoke(撤销)、commit(提交)、rollback(回滚)

    需要注意的几点就是:

    1. SQL语句可以单行书写,也可以多行书写(有很多SQL语句一起执行时,每个sql语句都应以分号结尾);
    2. SQL语句通常使用空格和缩进以此来增强语句的可读性;
    3. SQL语句不区分大小写,建议关键字大写(例如:SELECT * FROM user)
      (这里之所以建议大写,是因为sql语句在提交后,会自动将关键字的小写变成大写,如果提前就写大写,可以提升代码的性能,不过效果不是很大;而且由于我们中国人的习惯,大写一般都看不懂,必须翻译成小写才能知其义,所以这个大写不大写的无所谓);
    4. SQL语句使用/**/或#进行注释;
    5. 为规避SQL关键字,可以为关键字添加反单引号(点击Tab键上面的按键);

    下面让我们来看一下如何操作数据库

    #创建数据库 (tet,test为数据库名)
    create database tet character set utf8
    
    #切换数据库
    use test
    	#查看正在使用的数据库
    	select database()
    
    #查看所有的数据库
    show databases
    	
    #删除数据库
    drop database tet
    
    #添加数据
    insert into student (id,`name`,mobile,address) values ('1','Tom','182','郑州')
    
    #修改数据
    update student set `name`='Jim',mobile='157',address='北京' where id = '1'
    
    #查询数据
    select id,`name`,mobile,address from student where id = '1'
    
    #创建一个新表back
    create table back(
    id char(3),
    `name` varchar(18),
    mobile char(11)
    )
    
    #将student中的一些数据传到back表里(备份)
    insert into back (id,`name`,mobile) select id,`name`,mobile from student
    
    #删除数据
    delete from student where id = '1'
    
    #删除表
    drop table back
    
    展开全文
  • Mysql创建索引的原则 1.选择唯一索引。通过唯一索引可以快速的定位某一条数据。 2.为经常作为查询语句中的字段建立索引。 3.为经常需要进行排序、分组、联合操作的字段建立索引。 4.不要对需要经常进行增删改的字段...

    Mysql创建索引的原则

    1.选择唯一索引。通过唯一索引可以快速的定位某一条数据。
    2.为经常作为查询语句中的字段建立索引。
    3.为经常需要进行排序、分组、联合操作的字段建立索引。
    4.不要对需要经常进行增删改的字段建立索引
    5.选择区分度大的字段建立索引
    6.选择数据量小的字段建立索引
    7.最左前缀原则单个索引查询的数据很多,区分度不是很大时,考虑建立组合索引提高查询效率
    8.尽量扩展索引,而不是新建索引


    索引失效的情况

    1.or导致索引失效
    2.<>,not,in,not exist
    3.没有使用组合索引中的第一个索引(最左前缀原则)
    4.组合索引前导列区分度大,且查后导列的时候,前导列的分裂非常耗资源
    5.如果索引列为字符串,一定要用引号,否则不使用索引
    6.对索引列进行了运算(+,-,*,/,使用函数等)
    7.隐式转换(数据类型转换)
    8.like查询"%_",百分号在前面
    9.全表扫描比使用索引快时
    10.使用concat或||连接查询条件字段
    11.指定不使用索引


    sql调优

    1.使用索引,尽量避免索引失效的情况
    2.减少表连接数,连接的表越多,性能越差。将连接拆分成若干个过程逐一执行,先执行可显著减少数据量的连接
    3.小表驱动大表
    4.如果不可避免,可考虑使用临时表或表变量存放中间结果
    5.更新update时不要更新所有字段
    6.万变不离其宗:减少IO次数
     

    展开全文
  • SQL语句的分类

    2020-07-05 15:40:23
    1.数据定义语言(DDL Data Definition Language) :创建、修改或删除数据库中表、视图、索引等对象操作,常用命令为create、alter和drop; 2.数据查询语言(DQL Data Query Language) :按照指定的组合、条件...
    结构化查询语言(Structured Query Language,简称SQL)是一种数据库查询和程序设计语言。
    SQL语句按其功能分为4类:
    1.数据定义语言(DDL Data Definition Language) :创建、修改或删除数据库中表、视图、索引等对象的操作,常用命令为createalterdrop
    2.数据查询语言(DQL Data Query Language) :按照指定的组合、条件表达式或排序检索已存在的数据库中数据,不改变数据库中数据,常用命令为select
    3.数据操纵语言(DML Data Manipulation Language) :向表中添加、删除、修改数据操作,常用命令有insertupdatedelete
    4.数据控制语言(DCL Data Control Language) :用来授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果、对数据库进行监视等操作,常用命令有GRANTREVOKECOMMITROLLBACK
     
     
     
    注意:
    1.SQL语句可以单行书写,也可以多行书写,以分号结尾;
    2.SQL语句通常使用空格和缩进增强语句的可读性;
    3.SQL语句不区分大小写,建议关键字大写,例如:SELECT * FROM user
    4.SQL语句使用/**/#进行注释;
    5.为规避SQL关键字,可以为关键字添加反单引号(点击Tab键上面的按键);
    展开全文
  • 原标题:Oracle SQL查询时索引...今天我们就主要谈谈索引失效原因:当你运用 SQL 语言,向数据库发布一条查询语句时, Oracle 将伴随产生一个“执行计划”,也就是该语句将通过何种数据搜索方案执行,是通过全表...
  • 这个需求,核心点在于,我需要编写一条 sql 语句,来获取到 Oracle 数据库中数据表全部索引信息,并且输出结果还要能够方便我后续检查工作。 因此对这条 sql 语句我们有以下要求: 要能输出数据表...
  • SQL语句分类

    2021-01-28 10:02:59
    1.数据定义语言(DDL Data Definition Language) :创建、修改或删除数据库中表、视图、索引等对象操作,常用命令为create、alter和drop; 2.数据查询语言(DQL Data Query Language) :按照指定的组合、条件...
  • 1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才会使用到该索引; 2、 在使用Oracle9i之前的基于成本的优化器(CBO)时, 只有当组合索引的前导列出现在SQL语句的...
  • 索引对于改善数据库 SQL 查询操作性能至关重要,如何选择合适列以及正确的组合所选择创建索引对查询语句的性能有着极大影响,本文将结合具体案例进行解释。 问题描述 客户 A 业务核心数据库采用 DB2 U...
  • SQL 语句分类

    2019-11-14 16:19:53
    SQL语句按其功能分为4类: 数据定义语言(DDL Data Definition Language) 创建、修改或删除数据库中表、视图、索引等对象操作,常用命令为create、alter和drop; 数据查询语言(DQL Data Query Language) ...
  • 10、说明:几个简单的基本的sql语句  选择:select * from table1 where 范围  插入:insert into table1(field1,field2) values(value1,value2)  删除:delete from table1 where 范围  更新:update table1 ...
  • SQL中的ON DUPLICATE KEY UPDATE使用详解 ...在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引...
  • 创建索引

    2019-03-22 12:08:25
    索引是对数据库表中一列或多列值进行排序一种结构,是一个单独存储在磁盘上数据结构,使用索引...在book表中year_publication字段上建立普通索引SQL语句如下: 该语句执行完毕之后,使用show index 查...
  • 基本SQL语句分类

    2020-11-24 17:30:46
    基本SQL语句分类 结构化查询语言(Structured Query Language,简称SQL)是一种数据库查询和程序设计语言。 它分为4类: 数据定义语言(DDL Data Definition Language) :创建、修改或删除数据库中表、视图、索引...
  • 很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询...执行下面的sql语句:select product_idfrom ordersw...
  • 很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询...执行下面的sql语句:select product_idfrom ordersw...
  • java——SQL语句

    2020-07-05 15:41:39
    (1)数据定义语言(DDL Data Definition Language) :创建、修改或删除数据库中表、视图、索引等对象操作,常用命令为create、alter和drop; (2)数据查询语言(DQL Data Query Language) :按照指定的组合、...
  • MySQL索引的建立对于MySQL的高效运行是很...创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 302
精华内容 120
关键字:

创建组合索引的sql语句