mysql字段简索引_MySQL常用的一些语句,索引,字段等

1、库相关:

建库:

character set:指定编码

COLLATE:排序规则 utf8mb4_general_ci 大小写不敏感

CREATE DATABASE `test_db` default character set utf8mb4 COLLATE utf8mb4_general_ci;

查看建库语句:

SHOW CREATE DATABASE `test_db`;

2、数据表相关:

建表:

CREATE TABLE `video` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(100) NOT NULL DEFAULT '' COMMENT '视频名字',

`cat_id` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '分类id',

`image` varchar(200) NOT NULL DEFAULT '',

`url` varchar(200) NOT NULL DEFAULT '',

`type` tinyint(2) unsigned NOT NULL DEFAULT '0',

`content` text,

`uploader` varchar(200) NOT NULL DEFAULT '',

`create_time` int(10) unsigned NOT NULL DEFAULT '0',

`update_time` int(10) unsigned NOT NULL DEFAULT '0',

`status` tinyint(2) unsigned NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

INDEX `cat_info`(`cat_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

查看表:

SHOW CREATE TABLE `video`;#建表语句

DESC `video`;

DESCRIBE `video`;

修改表的存储引擎:

ALTER TABLE `video` ENGINE=MyISAM;

ALTER TABLE `video` ENGINE=InnoDB;

3、索引增加查看删除

索引创建:

3.a、加主键索引

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

复合主键:

ALTER TABLE `table_name` ADD PRIMARY KEY(`column1`,`column2`);

3.b、加唯一索引

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

3.c、加单列索引

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

3.d、加全文索引

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

Note:

3.e、添加复合索引[多列索引] [最左前缀原则]

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

Note:

note.1

多个单列索引与单个多列索引的查询效果不同,因为执行查询时,MySQL只能使用一个索引,会从多个索引中选择一个限制最为严格的索引。

平时用的SQL查询语句一般都有比较多的限制条件,所以为了进一步榨取MySQL的效率,就要考虑建立组合索引。

例如对上面video表中针对name和create_time建立一个组合索引:

name字段取前50个字符建立索引。

ALTER TABLE `video` ADD INDEX index_name_ctime (name(50),create_time)

建立这样的组合索引,其实是相当于分别建立了下面两组组合索引:

* name,create_time

* name

为什么没有create_time这样的组合索引呢?

这是因为MySQL组合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这两列的查询都会用到该组合索引,如下面的几个SQL所示:

能使用到上面的索引:

* SELECT * FROM `video` WHREE name='测试' AND create_time=1234567890;

* SELECT * FROM `video` WHREE name='测试';

不能使用上面的索引:

* SELECT * FROM `video` WHREE create_time=1234567890;

note.2、索引不会包含有NULL值的列

只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。

所以我们在数据库设计时不要让字段的默认值为NULL。

note.3、索引列排序

MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。

因此数据库默认排序可以符合要求的情况下不要使用排序操作,尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

note.4、like语句操作

使用like时,只有 like "aaa%" 才会使用到索引

note.5、不要在列上进行运算

例如:select * from users where YEAR(create_date)<2007,将在每个行上进行运算,这将导致索引失效而进行全表扫描,

因此我们可以改成:select * from users where create_date

note.6、字符串字段的索引,查询时带上单引号

参考文章:

note.7、最后

MySQL只对以下操作符才使用索引:

,>=,between,in,以及某些时候的like(不以通配符%或_开头的情形)。

而理论上每张表里面最多可创建16个索引,不过除非是数据量真的很多,否则过多的使用索引也不是那么好玩的,比如我刚才针对text类型的字段创建索引的时候,系统差点就卡死了。

索引查看:

SHOW INDEX FROM `table_name`;

索引删除:

DROP INDEX `index_name` ON `table_name`;

ALTER TABLE `table_name` DROP INDEX `index_name`;

4、字段增加修改删除

增加:

增加字段:

ALTER TABLE `table_name` ADD `email` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '邮箱';

增加字段,并将增加的字段位于某个字段后面:

ALTER TABLE `table_name` ADD `email` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '邮箱' AFTER `telephone`;

修改:

修改字段数据属性:

ALTER TABLE `table_name` MODIFY `email` CHAR(80) NOT NULL DEFAULT '' COMMENT '定长邮箱';

修改字段名称和属性:

ALTER TABLE `table_name` CHANGE `email` `user_email` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '用户邮箱';

给字段设置默认值:

ALTER TABLE `table_name` ALTER `user_email` SET DEFAULT 'username@qq.com';

修改自增长键的起始值:

ALTER TABLE `table_name` AUTO_INCREMENT=100;

删除:

删除字段:

ALTER TABLE `table_name` DROP COLUMN `user_email`;

删除多个字段:

ALTER TABLE `table_name` DROP COLUMN `user_email`,DROP COLUMN `telephone`;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机动画专业要学什么课程,计算机动画制作专业主要课程有哪些?

对于想要报考计算机动画制作专业的同学来说&#xff0c;现在也有很多同学对于该专业还是比较感兴趣的&#xff0c;而且计算机动画制作专业现在的发展形势也是比较好的&#xff0c;那么计算机动画制作专业主要课程有哪些?培养目标重点培养学生各类平面、三维艺术、动漫设计能力…

hadoop关联文件处理

c001.txt ------------------------------ filetype|commid|commname|addressidcomm|1|罗湖小区1|1comm|2|罗湖小区2|1comm|3|宝安小区1|4comm|4|南山小区1|3comm|5|南山小区2|3comm|6|福田小区1|2comm|7|福田小区2|2comm|8|宝安2|4comm|9|南山3|3 c002.txt ------------------…

使用Spring的缓存管理器缓存Web内容

在这篇文章中&#xff0c;我想向您展示如何使用Spring的CacheManager&#xff0c; Cacheable和JMX批注来缓存和管理Web内容的缓存的基础知识。 想象一下一个网上商店&#xff0c;它从远程WCMS&#xff08;Web内容管理系统&#xff09;获取一些内容&#xff0c;例如页眉&#xf…

nginx 正则 结尾 配置_nginx正则配置解释多用于伪静态规则

1、^&#xff1a; 匹配字符串的开始位置&#xff1b;2、 $&#xff1a;匹配字符串的结束位置&#xff1b;3、.*: .匹配任意字符&#xff0c;*匹配数量0到正无穷&#xff1b;4、\. 斜杠用来转义&#xff0c;\.匹配 . 特殊使用方法&#xff0c;记住记性了&#xff1b;5、(值…

学水利的想转行计算机,为什么说千万别学水利水电工程?附水利八大院排名2020年(最新)...

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>水利水电工程一直是国家建设中离不开的一个环节&#xff0c;该专业在父母眼中是也很有前途的专业&#xff0c;但近几年&#xff0c;许多人不太看好水利水电工程专业了&#xff0c;甚至…

【WP8】ResourceDictionary

WP8中引用资源字典 当我们定义的样式太多的时候&#xff0c;我们可以把样式分别定义在不同的文件中&#xff0c;然后通过 MergedDictionaries 应用到其他资源字典中&#xff0c;看下面Demo 我们可以把样式定义在多个文件中&#xff0c;然后再App.xaml中引用 我们先定义三个文件…

ejb 2.0 3.0_EJB 3.0注入和查找简介

ejb 2.0 3.0介绍 Enterprise JavaBeans Specification v。3.0引入了简化的&#xff0c;基于注释的API&#xff0c;用于EJB注入和查找。 EJB 3.0现在是POJO&#xff0c;可以使用简单的注释将其注入其他组件&#xff08;例如EJB和Servlet&#xff09;。 EJB 3.0是Java EE 6的许多…

python夹角余弦雷达图_雷达导论PART-II.1 无线电波与交变电流信号

今天开始进入第二篇-必要的准备知识&#xff0c;全部的篇章结构见我的第一篇文章“雷达导论 引言”。第二篇有3个章节&#xff0c;如下图所示&#xff0c;分别是第4章-无线电波与交变电流信号、第5章-用一种非数学的方法理解雷达、第6章-雷达的数学预备知识。今天先讲第4章&…

手机计算机数字显示在桌面上,手机计算器有哪些使用方法

智能手机中的计算器&#xff0c;平时买完菜就要仔细的看看有没有价格对错的地方&#xff0c;所以使用手机计算器十分的方便。下面学习啦小编就给大家分享手机计算器的使用方法。手机计算器的使用方法一、查找计算器在手机上&#xff0c;计算器无需另行安装&#xff0c;一般系统…

最大堆的Java实现

最大堆的解释见&#xff1a;http://www.java3z.com/cwbwebhome/article/article1/1362.html?id4745 这里是整理后的代码&#xff1a; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List;import com.dm.core.structur…

Oracle Java Mission Control:终极指南

“我们喜欢关注Mikhail Vorontsov的博客&#xff0c;并获得他对Java Performance相关问题的看法。 我们曾多次被问到Takipi的Java错误分析与Java Mission Control和Java Flight Recorder有何不同。 因此&#xff0c;尽管工具之间的差异很大&#xff08;主要是&#xff0c;JMC主…

福州大学计算机专业考研,2015年福州大学计算机考研经验贴

2015年福州大学计算机考研经验贴福州大学发布于2019年9月24日 02:18阅读数 3995一年的考研路过去了&#xff0c;从初试到复试&#xff0c;懵懵懂懂到略有所知。在此&#xff0c;不谈成绩&#xff0c;没有骄傲&#xff0c;讲点自己的经验&#xff0c;希望帮到各位。以下所有言论…

python购物车实现的功能是什么_Python3实现购物车功能

Python3实现购物车功能来源&#xff1a;中文源码网 浏览&#xff1a; 次 日期&#xff1a;2018年9月2日【下载文档: Python3实现购物车功能.txt 】(友情提示:右键点上行txt文档名->目标另存为)Python3实现购物车功能 本文实例为大家分享了Python3实现购物车功能的具体…

杭电考研计算机专业课_杭州电子科技大学计算机考研专业课平均分76.03,国家线复试是这个原因!...

杭电计算机学院是计算机类报考热门&#xff0c;2019考研英语数学开始统一采用英语一数学一&#xff0c;不分学硕专硕还是非全日制&#xff1b;今年复试线已出&#xff0c;除计算机技术专硕复试线280分&#xff0c;高于国家线&#xff0c;其余专业均是国家线270分复试&#xff1…

网络工程属于计算机哪一类,网络工程专业属于什么门类

在高考志愿填报的时很多考生和家长都不知道网络工程专业属于什么门类&#xff0c;很是影响考生的志愿填报专业选择&#xff0c;下面有途网小编根据考生的要求整理出网络工程专业属于工学类提供给大家&#xff0c;希望能够帮助考试顺利的填报好自己的专业。网络工程专业介绍专业…

[003]容器和动态数组的使用

例&#xff1a; 编写程序读入一组 string 类型的数据&#xff0c;并将它们存储在vector 中。接着&#xff0c;把该 vector 对象复制给一个字符指 针数组。为 vector 中的每个元素创建一个新的字符数 组&#xff0c;并把该 vector 元素的数据复制到相应的字符数组 中&#xff0c…

linux 查看显卡信号_Linux下如何查看NVIDIA显卡信息

匿名用户1级2015-07-28 回答lspci | grep -i vga这样就可以显示机器上的显卡信息&#xff0c;比如[rootlocalhost conf]# lspci | grep -i vga01:00.0 VGA compatible controller: nVidia Corporation Device 1081 (rev a1)02:00.0 VGA compatible controller: nVidia Corpora…

用计算机演奏打上花火,米津玄师打上花火歌词中文谐音(最好要简单全面)

满意答案.Ador2020.03.19采纳率&#xff1a;60% 等级&#xff1a;14已帮助&#xff1a;2446人打上花火 - 《升起的烟花&#xff0c;从下面看&#xff1f;还是从侧面看&#xff1f;》主题曲 词&#xff1a;米津玄师 曲&#xff1a;米津玄师xDAOKO有些地方一些音不对请见谅哈 …

Hibernate自动提交命令强制MySQL在过多的磁盘I / O中运行

亲爱的大家&#xff0c; 我敢肯定&#xff0c;你们中的许多人都在使用Hibernate和MySQL&#xff0c;我自己在这里和那里都使用它。 通常&#xff0c;编程模型是不错的&#xff0c;但是普通的JDBC可以快得多已经不是什么秘密了。 在这篇文章中&#xff0c;我想引起您的注意Hibe…

两个向量之间的夹角公式_关于平面向量夹角求参数取值范围的两种基本解法介绍...

平面向量的夹角问题是考察高中向量知识掌握程度的常考内容&#xff0c;主要涉及到的知识点是平面向量的数量积公式。在这里介绍一道常见的平面向量题目&#xff0c;通过两种最基本的解法&#xff0c;来帮助同学们理解向量之间的夹角。填空题第15题&#xff1a;设平面向量a(-2&a…