这是我参与「第四届青训营」笔记创作活动的的第13天
青训营的课程学了很多天了,感谢这次青训营让我对大数据有了一定的认识,眼看课程就要收尾了,随之而来的就是交项目了,因为我们小组的项目跟sql有关,特此复习一下以前学过的sql语言,以笔记的形式记录下来。
一、常见约束
- 主键约束:
格式:alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)
例子:
alter table emp add constraint ppp primary key (id)
- check约束:
格式:alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)
例子:
alter table emp add constraint xxx check(age>20)
alter table emp add constraint ppp primary key (id)
- unique约束:
格式:alter table 表名 add constraint 约束名称 约束类型(列名)
例子:
alter table emp add constraint qwe unique(ename)
- 默认约束: 格式:alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名
比方说:emp表中的gongzi列默认为10000
alter table emp add constraint jfsd default 10000 for gongzi
- 外键约束:
格式:alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称 (列名)
例子:
alter table emp add constraint jfkdsj foreign key (did) references dept (id)
二、基本操作
- 查询语句
select distinct from 表名 where 条件
- 更新
update 表名 set 函数 where 条件
- 删除
delete from 表名 where 条件
- 增加
insert into 表名 values
三、表连接
-
内连接(2种方法)
select * from dept,emp where dept.id=emp.dept_id; select * from dept inner join emp on dept.id=emp.dept_id; -
左外连接
select * from dept left join emp on dept.id=emp.dept_id; -
右外连接
select * from dept right join emp on dept.id=emp.dept_id; -
全外连接
select * from dept full join emp on dept.id=emp.dept_id;
四、其他操作
-
创建数据库
CREAT DATABASE 数据库名称 -
创建表
create table 表名 -
条件语句
case when then else end -
排序
order by 字段名 desc(降序)/ asc(升序) -
分组
group by 字段名 -
聚合函数
sun、avg、count等 -
窗口函数
分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置)
区别:
row_number() 产生不会重复的自增编号 (1,2,3,4,5,6.......)
rank()按照值排序的时候产生一个自增编号,值相等时会重复,有空位(eg:1,2,2,4,5,6,6,8...)
dense_rank()按照值排序的时候产生一个自增编号,值相等时会重复,无空位(1,2,2,2,3...)