SQL中物化视图、DECODE、COUNT用法、联合主键

物化视图

DataGrip快捷键

1、大小写转换
ctrl+shift+u

2、sql规整
ctrl+alt+L

3、查询快捷键
选中内容 ctrl+enter

4、变量重命名
Shift + F6

5、搜索
双击Shift

6、单行代码注释
Ctrl+/

7、多行代码注释
Ctrl+Shift+/

count(*)、count(1)和count(列名)的区别

count()返回的值是有多少行不是NULL,

count(列名)

返回该列有多少非空值。

count(*)

返回表中有多少非空行。

count(1)

返回表中有多少非空行。当要统计的数量比较大时,count(1)耗费的时间比count(*)少。

联合主键

定义:联合主键是用2个或2个以上的字段组成的主键
作用:不用为了使主键唯一而增加无意义的主键辅助列。例如:一件商品可能对应多个供应商,那将商品和供应商作为联合主键便唯一了。

create table product
(
    goods      varchar(20),
    suppliers  varchar(20),
    price      varchar(20),
    order_date date,
    primary key (goods, suppliers)
);

聚集索引

定义:一个目录包含了所有具有共同特点的内容所组成的组合,我们称之为聚集索引。例如字典,所有字是按开头拼音进行分类(a,b,c…),它可以指向所有内容。

Tips:
① 聚集索引存储记录是物理上连续存在,所以一个表只能包含一个聚集索引。
② 聚集索引插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入),查询数据比非聚集数据的速度快。

非聚集索引

定义:目录与索引内容只有点对点的关系,没有任何组合关系。我们称之为非聚集索引例如:字典的偏旁索引只是点对点,不能根据一个“张”字而找到所有以“弓”开头的字。

Tips:①非聚集索引是逻辑上的连续,物理存储并不连续。非聚集索引一个表可以存在多个

参考详细解释聚集索引与非聚集索引

自增约束(auto_increment)

AUTO_INCREMENT的是随着数据库里面数据项的增加而自动增加值的一个属性
TIPS:
① AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复(即是主键primary key或者主键的一部分unique)。
② AUTO_INCREMENT数据列必须具备NOT NULL属性
③ AUTO_INCREMENT=1; – 表示自增起始大小

实例:
Step 1:创建表的自增主键约束

create table test
(
id int(10) not null auto_increment=1, – 表示自增列从1开始
name varchar(20) not null,
primary key(id)
)

Step 2:删除表的自增主键约束
【必须】去除自增约束属性,删除该字段的主键约束

alter table test modify id char(10) ;
alter table test drop primary key;

Step 2:修改表的自增主键约束
为指定列新增自增约束

alter table test modify id int auto_increment primary key;

修改制定列为自增约束

alter table test add book_no int unique auto_increment;

DECODE()

主要作用: 将查询结果翻译成其他值
实例:

select decode(to_char(sysdate,'D')-1,1,'星期一',2,'星期二',3,'星期三',4,'星期四',5,'星期五',6,'星期六',7,'星期日','星期日') as week_day from dual;

select decode(sign(var1-var2),-1,var1,var2) from dual
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

SQL获取今天日期

select to_char(sysdate, 'D') -1 from dual;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值