mysql key_mysql 索引 key 的用法

mysql 索引 key 的用法

mysql> desc aa;

+-------+---------+------+-----+---------+-------+

| Field | Type    | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+-------+

| id    | int(11) | YES  |     | NULL    |       |

+-------+---------+------+-----+---------+-------+

| xx    | int(11) | YES  | PRI | NULL    |       |

+-------+---------+------+-----+---------+-------+

| yy    | int(11) | YES  | UNI | NULL    |       |

+-------+---------+------+-----+---------+-------+

| zz    | int(11) | YES  | MUL | NULL    |       |

+-------+---------+------+-----+---------+-------+

1 row in set (0.00 sec)

[/PHP]

我们看到Key那一栏,可能会有4种值,即'啥也没有','PRI','UNI','MUL'

1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列

2. 如果Key是PRI,  那么该列是主键的组成部分

3. 如果Key是UNI,  那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)

4. 如果Key是MUL,  那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL

如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI

那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL

那么此时,显示PRI

一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键

一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引

因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值

只要ID+NAME是唯一的即可

相关文档:

1、建立了一个j2ee项目。

2、将mysql的jdbc驱动拷贝到WebContent / WEB-INF/ lib 目录下。

3、在驱动jar包上点右键将jar包添加到构建路径中。

4、然后编写与数据库相关的代码。

5、在实现类中添加main方法进行单元测试,各个方法都能正常运行。

6、创建jsp页面在其中创建对象调用查询方法。产生错误。

cn.guopeng.bbs ......

防止注入的几种办法

其实原来就是我们需要过滤一些我们常见的关键字和符合如:

Select,insert,update,delete,and,*,等等

function inject_check($sql_str) {

return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file

|outfile', $sql_str); & ......

Mysql在默认情况下建立表的字符编码是latin1,所以在插入中文时会出错。

eg:

1、查看表建立的sql源码:

1: sql命令:show create table users

2:

3: 结果:

4: CREATE TABLE `users` (

5: `userID` int(10) unsigned NOT NULL AUTO_INCREMENT,

6: `userName` varchar(4 ......

1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show

databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在

ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可 ......

今天,用Navicat为两张表建立外健关系,总是提示创建失败信息,发现是两张表关联的字段类型问题,但两个字段都是int型哩,怎么会还会类型不一致呢,最后发现到一个地方有点不一样,就是在“设计表”界面下方有个“无符号”的复选框,两张表的主键字段其中一个没勾选上这个复选框而导致虽然都是int类型� ......

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

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

相关文章

防火墙阻止网页连接网络连接_win7电脑打不开网页怎么办 win7电脑打不开网页解决步骤【图文步骤】...

我们在使用电脑的过程当中,经常都会浏览一些网页,不过最近有位win7系统用户在使用电脑浏览网页的时候却遇到了网页打不开网页的问题,这导致了很多事情都无法操作,其实网页打不开的问题,一般都跟网络有关,那…

mysql mysqldumpslow_慢日志分析工具—mysqldumpslow 和 mysqlsla

前提:分析mysql性能的时候会查看数据库的哪些sql语句有问题,效率低。这就用到了数据库的慢查询,作用就是: 它能记录下所有执行超过long_query_time时间的SQL语句,帮你找到执行慢的SQL,方便我们对这些SQL进行…

mysql分库分表面试_【53期】面试官:谈一下数据库分库分表之后,你是如何解决事务问题?...

点击上方“Java面试题精选”,关注公众号面试刷图,查缺补漏>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅。一、概述随着时间和业务的发展,数据库中表的数据量会…

pandas python groupby_python – 如何使用pandas groupby汇总多个列?

我有一个看起来像的数据框day type col d_1 d_2 d_3 d_4 d_5...1 A 1 1 0 1 01 A 2 1 0 1 02 B 1 1 1 0 0也就是说,我有一个普通的列(col)和许多以d_为前缀的列我需要按日执行groupby并键入,我想计算每个日期类型组合的每个d_列中的值的总和.我还需要在我的数据中的其他列上执行…

圆管当量直径_截面相同时,正方型截面的当量直径大于圆管直径。( )。

“党在过渡时期的总路线的实质,截面就是使生产资料的社会主义公有制成为我们国家和社会的( )的经济基础。”根据小儿尿道特点,相同型截易患的疾病为正方直径直径泌尿系感染的致病菌最为常见的是当量大于汽车离合器踏板自由行程过小或没有行程, 将会引起(…

h710阵列卡支持最大硬盘_DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例)

DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例)分享到:作者来源: 未知 发布时间:2013-01-12简介我们可通过扩充容量和 / 或改变 RAID 级别的方式来重新配置联机虚拟磁盘。注: 跨接式虚拟磁盘 (如 RAID 10、 50 和 60)无法重新配置…

linuxpgrepgrep_linux命令:ps pstree pgrep pidof进程管理

ps命令简介:此个命令用于查看用户进程。1.命令格式:ps [option] : ps 参数常用的使用格式:ps aux |grep keyword 通过关键字查找相关的进程信息[rootxuelinux ~]# ps aux 显示所有进程的信息USER PID %CPU %MEM …

bash shell sed 获取第一行_老司机给出的关于 shell 脚本的8个建议,必收!

这八个建议,来源于键者几年来编写 shell 脚本的一些经验和教训。事实上开始写的时候还不止这几条,后来思索再三,去掉几条无关痛痒的,最后剩下八条。毫不夸张地说,每条都是精挑细选的,虽然有几点算是老生常谈…

springmvc与mysql实例_Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

摘要:本文主要讲了如何使用Maven来搭建SpringMybatisSpringMVCMySql的搭建实例,文章写得很详细,有代码有图片,最后也带有运行的效果。一、准备工作1. 首先创建一个表:CREATE TABLE t_user (USER_ID int(11) NOT NULL A…

python常规异常的基类_Python警告的基类警告类是____。

【判断题】pickle使用pickle.dump(data,file)读取数据。【单选题】下列是Python断言语句失败的错误类型是?【单选题】立体被平面截切所产生的表面交线称为( )。【判断题】在Python的异常处理中,可以人为的设置某种错误类型【单选题】单片机实质上是一个【单选题】确认密码的限…

磁力mysql搜索_多功能搜索 搜索系统安装 小说 电影 磁力

环境:2h4g 60ssd一、首先安装宝塔面板yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh安装环境采用 nginx php7 mysql5.5二、关闭centos下的防火墙CentOS 6.5关闭防火墙servcie iptables st…

ES迁mysql_使用kafka连接器迁移mysql数据到ElasticSearch

概述把 mysql 的数据迁移到 es 有很多方式,比如直接用 es 官方推荐的 logstash 工具,或者监听 mysql 的 binlog 进行同步,可以结合一些开源的工具比如阿里的 canal。这里打算详细介绍另一个也是不错的同步方案,这个方案基于 kafka…

mysql not exists很慢_查询速度优化用not EXISTS 代替 not in

exists : 强调的是是否返回结果集,不要求知道返回什么, 比如:select name from student where sex m and mark exists(select 1 from grade where ...) ,只要exists引导的子句有结果集返回,那么exists这个条件就算成立了,大家注意返回的字段…

python自定义函数func_python自定义函数与面向对象

前言python的最大特点就是dynamically typed就是动态类型,不像java需要定义数据类型引入先从一段代码引入:12345678910class Dog():def __init__(self,name,age):self.namenameself.ageagedef getName(self):return self.namedogDog(name,16)print(dog.g…

java的继承实例_java继承(实例讲解一)

Java继承(Java inheritance)Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周…

java 调用groovy_Java调用Groovy脚本

在idea下,标准的Java maven项目中展示如何调用Groovy脚本和方法。maven项目引进Groovy libFile -> Project Structure -> Global Libaries 添加下载好的Groovy下lib里面的jar包调用Groovy脚本首先,Java调用Groovy脚本需要该Groovy脚本里面有个main…

java struts 框架_java中struts 框架的实现

该文章主要简单粗暴的实现了struts的请求转发功能。 其他的功能后续会慢慢补上。最近在学习javassist的内容,看到一篇文章 大家一起写mvc 主要简单的描述了mvc的工作流程,同时实现了简单的struts2功能。这里仿照的写了个简单的struts2框架,…

memcached 使用 java_使用Java java_memcached client的陷阱

这2天,才发现之前我们的某个开发人员使用java_memcached-release_2.0.1.jar是有问题的在我们的某个模块里,需要2个memcached,分别提供不同的服务于是,开发的人员就从网上粘贴来如下的码,分别生成2个MemcacheUtil类stat…

java final 变量只读_java final的使用总结

final 变量:是只读的;final 方法:是不能继承或者重写的。final 引用:引用不能修改,但是对象本身的属性可以修改;final class:不可继承;final MyObject o new MyObject();o.setValue…

java list 获取索引_java – 获取arrayList中元素的索引

我试图在arrayList minuteList中获得466的索引[288, 318, 346, 376, 406, 436, 466, 1006, 1036, 1066, 1096, 1126, 1156]但我收到这个错误:java.lang.IndexOutOfBoundsException: Index: 466, Size: 13at java.util.ArrayList.rangeCheck(ArrayList.java:635)at j…