1、索引

索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度,

索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。

索引是数据库的一个对象,它不能独立存在,必须对某个表对象进行依赖。

提示:索引保存在information_schema数据库里的STATISTICS表中。

创建索引方式:

自动:当表上定义主键约束、唯一、外键约束时,该表会被系统自动添加上索引。

手动:手动在相关表或列上增加索引,提高查询速度。

删除索引方式:

自动:当表对象被删除时,该表上的索引自动被删除

手动:手动删除指定表对象的相关列上的索引

索引类似于书籍的目录,可以快速定位到相关的数据,一个表可以有多个索引。

创建索引:

create index idx_temp_name on temp(name);

组合索引:

create index idx_temp_name$pwd on temp(name, pwd);

删除索引:

drop index idx_temp_name on temp;

 

2、视图

视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据。

视图的作用、优点:

限制对数据的访问

让复杂查询变得简单

提供数据的独立性

可以完成对相同数据的不同显示

创建、修改视图

create or replace view view_temp

as

select name, age from temp;

通常我们并不对视图的数据做修改操作,因为视图是一张虚拟的表,它并不存储实际数据。如果想让视图不被修改,可以用with check option来完成限制。

create or replace view view_temp

as

select * from temp

with check option;

修改视图:

alter view view_temp

as

select id, name from temp;

删除视图:

drop view view_temp;

显示创建语法:

show create view v_temp;

3、 DML语句

DML主要针对数据库表对象的数据而言的,一般DML完成:

插入新数据

修改已添加的数据

删除不需要的数据

1、  insert into 插入语句

insert into temp values(null, ‘jack’, 25);

主键自增可以不插入,所以用null代替

指定列

insert into temp(name, age) values(‘jack’, 22);

在表面后面带括号,括号中写列名,values中写指定列名的值即可。当省略列名就表示插入全部数据,

注意插入值的顺序和列的顺序需要保持一致。

Set方式插入,也可以指定列

insert into temp set id = 7, name = 'jason';

MySQL中外键的table的外键引用列可以插入数据可以为null,不参照主表的数据。

使用子查询插入数据

insert into temp(name) select name from classes;

多行插入

insert into temp values(null, ‘jack’, 22), (null, ‘jackson’ 23);

2、  update 修改语句

update主要完成对数据的修改操作,可以修改一条或多条数据。修改多条或指定条件的数据,需要用where条件来完成。

修改所有数据

update temp set name = ‘jack2’;

所有的数据的name会被修改,如果修改多列用“,”分开

update temp set name = ‘jack’, age = 22;

修改指定条件的记录需要用where

update temp set name = ‘jack’ where age > 22;

3、  delete 删除语句

删除table中的数据,可以删除所有,带条件可以删除指定的记录。

删除所有数据

delete from temp;

删除指定条件数据

delete from temp where age > 20;

MySQL 索引、视图、DML的更多相关文章

  1. MySQL 索引 视图 触发器 存储过程 函数

    1.索引 索引相当于图书的目录,可以帮助用户快速的找到需要的内容. 数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万 ...

  2. MySQL索引视图

    一.索引 索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作. 索引是数据库的一个对象, ...

  3. 第五章 MySQL事务,视图,索引,备份和恢复

    第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...

  4. MySQL— 索引,视图,触发器,函数,存储过程,执行计划,慢日志,分页性能

    一.索引,分页性能,执行计划,慢日志 (1)索引的种类,创建语句,名词补充(最左前缀匹配,覆盖索引,索引合并,局部索引等): import sys # http://www.cnblogs.com/w ...

  5. Day4 MySql触发器视图索引以及设计优化

    触发器 MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 通过事件触发,不能传参 语法 CREA ...

  6. MySQL的视图和索引

    MySQL的视图 简单来说MySQL的视图就是对SELECT 命令的定义的一个快捷键,我们查询时会用到非常复杂的SELECT语句,而这个语句我们以后还会经常用到,我们可以经这个语句生产视图.视图是一个 ...

  7. Mysql 索引原理及优化

    本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接. 一.摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引 ...

  8. (转)Mysql 索引原理及优化

    本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接. 一.摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引 ...

  9. 数据库MySQL之 视图、触发器、存储过程、函数、事务、数据库锁、数据库备份、事件

    数据库MySQL之 视图.触发器.存储过程.函数.事务.数据库锁.数据库备份.事件 浏览目录 视图 触发器 存储过程 函数 事务 数据库锁 数据库备份 事件 一.视图 1.视图概念 视图是一个虚拟表, ...

  10. Mysql高手系列 - 第22篇:深入理解mysql索引原理,连载中

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 欢迎大家加我微信itsoku一起交流java.算法.数据库相关技术. 这是Mysql系列第22篇. 背景 使用mys ...

随机推荐

  1. 210. Course Schedule II

    题目: There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have ...

  2. Extension Method[上篇]

    在C#3.0中,引入了一些列新的特性,比如: Implicitly typed local variable, Extension method,Lambda expression, Object i ...

  3. Android开发之Bitmap.Config.RGB_565

    在学习xutils框架的时候,看到sample代码中有一行这样的代码: bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565); Bi ...

  4. get mac 20150202

    getmac.sh #!/bin/sh cat oui.txt|sed -e :a -e '$!N;s/\n\s/=/;ta' -e 'P;D' | sed 's/(hex)\+/=/g' | sed ...

  5. poj 3041 Asteroids (二分图的最大匹配 第一题)

    题目:http://poj.org/problem?id=3041 题意:在某个n*n的空间内,分布有一些小行星,某人在里面打炮,放一枪后某一行或某一列的行星就都没了,让求最少的打炮数. 然后把每行x ...

  6. 函数page_get_space_id

    #define FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID  34 /****************************************************** ...

  7. I.MX6 PMU MMPF0100 driver porting

    /************************************************************************** * I.MX6 MMPF0100 driver ...

  8. file的getPath getAbsolutePath和getCanonicalPath的区别

    转自:http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.html file的这几个取得path的方法各有不同,下边说说详细的区别 ...

  9. linux mkfs命令参数及用法详解---linux格式化文件系统命令(包括swap分区)

    mkfs 命令  linux格式化磁盘命令           linux mkfs         指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] ...

  10. iOS--跳转到APPstore评分

    本代码适用于iOS7之后的版本: NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/ ...