添加联合索引oracle,MySQL和SQLServer和Oracle的索引初次探索2

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

首先探索MySQL和SQLServer 2的索引:

在这里我们将不讨论其他索引,让我们首先来看一下MySQL和SQLServer唯一索引的奇怪之处:

首先,用于创建两个数据库的唯一联合索引的语句相同

MySQL:

-建立合并索引

创建唯一索引? stu_login?上? t_login1(stu_name,stu_pwd,login_type,测试);

SQLServer:

-创建索引

在dbo.t_login1上创建唯一索引stu_login(stu_name,stu_pwd,login_type,test);

Oracle:

-创建唯一的联合索引

在t_login1上创建唯一索引stu_login(stu_name,stu_pwd,login_type,test);

查看索引结构

-查看表中的索引结构

从user_indexes中选择*,其中table_name = upper(” T_LOGIN1″);

然后,该例程出现,这时,用于查看两个表的index命令发生了变化

MYSQL:

-在表格中显示索引

显示来自t_login1的索引;

SQLServer:

-查找表的索引

? exec sp_helpindex? t_login1;

Oracle视图表创建语句,表名必须大写:

-获取表创建语句

从双选择dbms_metadata.get_ddl(” TABLE”,” T_LOGIN1″);

如果您认为这是不同的,那么例程更深,请看一下看表结构的语句

MYSQL:

-查看表结构

DESC t_login1;

SQLServer:

-?查看表结构

sp_help t_login1;

sp_columns t_login1;

那么唯一联合索引又如何呢?

甚至更深。首先让我们看一下MYSQL的唯一联合索引。

首先,我们首先插入数据

-插入数据

插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,null);

INSERT INTO`t_login1` VALUES(” Ma Hongyu”,” 1606390235″,” 123456″,” 0″,null);

我已经两次插入这两个数据,结果如下:

9278f0a35c7d3ca76bb4a4f86011a94d.png

在其他地方我们发现,当测试列为空时,MYSQL允许插入相同的数据(例程1)

然后我们将再插入两个数据

插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 2″);

INSERT INTO`t_login1` VALUES(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 3″);

结果如图所示:

368c8b5e08d545be4d1f52f475cba0be.png

这两个数据的测试字段不同,因此允许插入

然后,我们将再测试两天的完整数据:

插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 4″);

插入” t_login1″值(” Peng Wanli”,” 1606390234″,” 123456″,” 0″,” 4″);

这次例行程序就要来了,请看图片:

b6f3f30476a8a7adc5b64508087dc6cd.png

这时,不难看出唯一联合索引发挥了作用。两个相同的数据已成功。

因此,让我们再次看一下SQLServer,可以说这个例程很深:

首先,我们仍然要插入数据:

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);

INSERT INTO t_login1 VALUES(” Ma Hongyu”,” 1606390235″,” 123456″,” 0″,空);

结果如下:

3be4b388f2c5303af1d06233b6bd7b0a.png

因此,让我们深入了解一下:

插入两个相同的数据,并且一列为空

INSERT INTO t_login1 VALUES(” Zhang Hanfu”,” 1606390236″,” 123456″,” 0″,null);

INSERT INTO t_login1 VALUES(” Zhang Hanfu”,” 1606390236″,” 123456″,” 0″,null);

25259b80b1a326c1d97844067770b48e.png

可以看出,第一个数据已成功插入,因此让我们尝试第二个数据:

dcde297458f2276e373b1ddab9b28300.png

不难看出唯一联合索引起了作用,并报告了错误,这与MYSQL完全不同

然后,我们将再次尝试相同的完整数据:

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);

9bdd7c49cc351e688fe022627569d10c.png

同样,报告了一个成功的错误,所以这是一个大难题。

甲骨文呢?

插入数据:

-插入数据

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);

INSERT INTO t_login1 VALUES(” Ma Hongyu”,” 1606390235″,” 123456″,” 0″,空);

承诺;

然后,我们将再次插入第一个数据

-插入两个相同的数据

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,空);

承诺;

fe0f8d8a3b50ae734da800c03028151d.png

显然,报告了一个错误,该错误违反了唯一性,因此它与SQLServer相同,

然后我们有两个相同的数据:

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);

插入t_login1值(”彭万里”,” 1606390234″,” 123456″,” 0″,” 111″);

承诺;

0e2b1e72faa2f1a8939c3dd528a2d3e7.png

861bb6e0141a9a5bc635bf24c3563027.png

它违反了唯一性规定,因此与SQLServer一致,但与MYSQL不同。

这是结论。如果输入正确,请发表评论并注意。将来,您将继续发布新文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值