物化视图
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;