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类型� ......

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值