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