MySQL基本知识

增insert删delete改update查select 更新update 改变alter 

 

创建数据库  create database 数据库;

查看指定数据库   show create database 数据库;

查看数据库(所有的) show databases;

使用数据库          use 数据库

删除数据库    drop database 数据库;(不能一次删除多个!)

创建表     create table 表名(列名 数据类型 [not null] [primary key],列名 数据类型 [not null],..) 

查看所有表           show tables

查看一个表数据     select * from 表名        *代表所有列  也可以select  列名 from 表名

删除表                 drop table 表名

更改表名              rename table 旧表名 to 新表名

增加表内容 插入数据     insert  into  表名(列名,列名...)values(值,值...)

修改列中的一条记录      update  表名  set   列=值   where   列=值   

删除列中的一条记录      delete  from  表名   where   列=值  

 

增加一个列                  Alter table 表名 add 列名 数据类型

删除一个列                  Alter table 表名 drop column 列名 

修改一个列名              Alter table  表名 change 列名  新列名 数据类型;

 

desc 降序排列

asc   升序排列

 

delete 删除记录  结构依然存在   即还可以找到   执行后有提交过程

drop   结构和数据都删除     一步操作完成

unique 去掉相同的

 

查找前5条数据   select *from 表 limit 5;

                         select * from表 order by id asc limit 5

                         select *from 表 limit 0,5;从0开始,取5条

查找后5条数据  select * from表 order by id desc limit 5

 

Mysql索引的使用

一、按类型区分

索引类型:定义表索引的类型

normal索引是最近本的索引,没有对唯一性的限制   

普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。

unique索引和normal类似,只是索引列的全部值必须只能出现一次

创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。 

full text索引用于mysql全文索引,用于在一篇文章中,检索文本信息。InnoDB不支持,Myisam支持性能比较好,一般在 CHAR、VARCHAR 或 TEXT 列上创建。

主键索引 针对主键的检索,设置某字段为primary key主键 

主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE。 
主键就是唯一索引的一种,主键要求建表时指定,一般用auto_increatment列,关键字是primary key 
索引方法:当创建索引时,指定索引类型,btree或者hash(全文搜索的时候没有)

如果为某个外键字段定义了一个外键约束条件,MySQL就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。 

二、按字段数量分

1.mysql索引分为单列索引和组合索引 
单列索引:一个索引包含单个列,一个表可以有多个单列索引。

组合索引:一个索引包含多列。(符合最左前缀) 
索引可以是单列索引也可以是多列索引(也叫复合索引)。按照上面形式创建出来的索引是单列索引,现在先看看创建多列索引:

create table test3 (id int not null primary key auto_increment, account int(12) not null default '',account_type int(2) not null,INDEX(account,account_type))type
=myisam;

注意:INDEX(a, b, c)可以当做a或(a, b)的索引来使用,但和b、c或(b,c)的索引来使用这是一个最左前缀的优化方法。

三、创建索引

sql语句创建索引

创建索引:

create unique index 索引名 on 表名(列名);
alter table 表名 add unique index 索引名 (列名);

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name

[USING index_type]

ON table_name (index_col_name,...)


删除索引:

drop index 索引名 on 表名;
alter table 表名 drop index 索引名;

修改索引

在MySQL中并没有提供修改索引的直接指令,一般情况下,我们需要先删除掉原索引,再根据需要创建一个同名的索引,从而变相地实现修改索引操作。

1

2

3

4

5

--先删除

ALTER TABLE user

DROP INDEX idx_user_username;

--再以修改后的内容创建同名索引

CREATE INDEX idx_user_username ON user (username(8));

查看索引

在MySQL中,要查看某个数据库表中的索引也非常简单,只需要使用以下两个命令中的任意一种即可。

1

2

3

4

--如果查看索引前,没有使用user db_name等命令指定具体的数据库,则必须加上FROM db_name

SHOW INDEX FROM table_name [FROM db_name]

--如果查看索引前,没有使用user db_name等命令指定具体的数据库,则必须加上db_name.前缀

SHOW INDEX FROM [db_name.]table_name

 

四、合理建立索引

 

1.在表中有where和join中出现的列需要建立索引,mysql只针对<,<=,=,>,>=,between,in以及like才会使用索引 
2.表中某属性的字段(如user_key)是唯一的不能为空。可以建立unique索引。 
3.索引不是越多越好,如果索引过多,更新表数据时候也会很耗时。 
参考文件: 
建立索引的原则http://blog.csdn.net/u013412790/article/details/51612304 
mysql索引优化http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html 
索引的原理http://blog.csdn.net/debug_zhang/article/details/52168552

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值