SQL之千奇百怪

1. not in 失效

现象:where字句中使用了not in (select field1...) 理应由上千条记录,实际记录为0.

原因:not in 中有null值,导致not in失效。

解决:修改语句为not in (select field1...where field1 is not null)

2. 同一数据库,不同的表不能存在同名的外键? 答:是的,实际是因为建外键时自动生成普通索引,索引名不能一样。

3. 建表时,定义INT(4) 和varchar(4)中的数字有什么联系和区别。

 (1)都是代表最大显示字符个数。

 (2)int类型,显示长度不同,所占字节数还是4;定义int可以不加数量 ,如 INT ,则默认显示11个字符,但必须定义前缀填充0才生效,如:INT zerofill或者int(6)zerofill,或者在navicat中手动配置字段,勾选“填充零”如下:

  

  如下是不填充0、填充0 的int(5)、填充0的int(8)

  

 

   

 (3)对于varchar,字符个数越多,所占字节数越大,最大字符数255。同一数量时英文字符和中文字符所占的字节数不一样,且不同的编码格式,所占字节数不同。

posted on 2022-01-05 16:08  挣扎的发际线  阅读(24)  评论(0编辑  收藏  举报

导航