2024年HarmonyOS鸿蒙最全朴实无华但实用的SQL大全,超乎你想象_sql方法大全(1),HarmonyOS鸿蒙研发岗必问30+道高级面试题

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

betweeen 1 and 20
in
like: %(多个) _(单个)
is null或者is not null

4 order by 子句
5.like:模糊匹配
%:1个或多个字符;_:1个字符;escape:指定转义符
select * from emp where ename like ‘% _ \_%' escape ' _’;


![在这里插入图片描述](https://img-blog.csdnimg.cn/e9e69f7f1c1a40429bc0bf472e9afd12.png)


### 1.4 分组函数



类型:avg\max\min\sum\count

需求:查询emp表销售人员工资的平均值,最大值、最小、工资总和
select avg(a.sal),max(a.sal),min(a.sal),sum(a.sal) from emp a

–group by
需求:查询各个部门平均工资
select a.deptno,avg(a.sal) from emp a
group by a.deptno

–having排除
查询部门最高工资大于2900的部门?
select a.deptno,max(a.sal) from emp a
group by a.deptno
having max(a.sal) >2900


![在这里插入图片描述](https://img-blog.csdnimg.cn/6d98295387854d49bce024a7b35f33b3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVTpgqblvrc=,size_20,color_FFFFFF,t_70,g_se,x_16)


### 1.5 多表查询



5.1 内连接(等值)
需求:统计每个部门的部门和名称
select a.deptno,b.dname from emp a,dept b
where a.deptno = b.deptno

5.2 外连接
a.左连接
需求:统计每个员工所有部门信息?
select * from dept m,emp n
where m.deptno = n.deptno(+)

b.右外连接
需求:统计部门的员工信息
select * from emp m,dept n
where m.deptno = n.deptno(+)

c.全外连接
select n.,m. from dept m,emp n
where m.deptno = n.deptno(+)
union
select m.,n. from emp m,dept n
where m.deptno = n.deptno(+)

select * from emp m full outer join dept n
on (n.deptno= n.deptno)


### 1.6 子查询



需求:查询emp表谁的工资最少的员工
select * from emp b
where b.sal = (select min(a.sal) from emp a)

需求:查询工资比各个部门平均工资都高的员工
select * from emp m where m.sal > all (
select avg(a.sal) from emp a group by a.deptno)

all :大于最大值
< all:小于最小值
!=all :not in

< any:小于最大值

any: 大于最小值
= any:in


![在这里插入图片描述](https://img-blog.csdnimg.cn/945fb054fd044db1a3bdf547b4cfe013.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVTpgqblvrc=,size_20,color_FFFFFF,t_70,g_se,x_16)


### 二、DML数据操纵


### 2.1 insert语句



##案例1
向表dept中插入两行数据
insert into dept values(50,‘IT’,‘beijing’);
##案例2
向emp表插入指定列的数据
insert into emp(empno,ename,job,hiredate,sal) values(1008,‘jem’,‘it’,sysdate,2300);
–创建表
create table emp1 as select * from emp where 1=2;
insert into emp1
select * from emp t where t.empno =1008;


### 2.2 update语句



##案例1
把emp表7782员工从10号部门调到20号部门
update emp t set t.deptno = 20 where t.empno =7782;

##案例2(多列子查询)
修改emp表7698号员工的职位和部门号与7499一样
update emp t set(t.job,t.deptno) =
(select a.job,a.deptno from emp a where a.empno=7499)
where t.empno =7698;

##更新空值
update emp set job=null;
update emp set job =‘’;


### 2.3 delet语句



##案例1
删除dept表部门号为50,60的数据
delete from dept w where w.deptno in (50,60);


### 2.4 Merge语句



#案例1
merge into test1 t1
using test2 t2
on(t1.deptno=t2.deptno)
when matched then
update set t1.dname=t2.dname,t1.loc=t2.loc
when not matched then
insert(deptno,dname,loc) values(t2.deptno,t2.dname,t2.loc);
注解:条件满足更新,不满足时候是插入


### 三、DCL数据控制


### 3.1 用户登陆



密码验证方式
sqlplus scott/tiger
conn scott/tiger
OS认证的方式:sqlplus / as sysdba


### 3.2. 创建用户



##创建用户damon
create user damon identified by damon;
##给用户解锁
select USERNAME,ACCOUNT_STATUS from dba_users;
alter user hr identified by hr account unlock;


### 3.3. 系统权限



系统权限都把包括:
create session;
create table;
create sequence;
create view;
create procedure;

##新建的用户如何赋予向系统权限
创建角色,把权限给角色,再把角色赋予用户
SYS@PROD> create role manger;
SYS@PROD> grant create session to manger;
SYS@PROD> grant manger to damon;

##赋予系统默认的角色(保证使用数据最基本的一些功能)
SQL> select * from role_sys_privs where role in (‘CONNECT’,‘RESOURCE’);
SYS@PROD> grant connect,resource to damon;


### 3.4. 对象权限



SYS@PROD> grant select on scott.emp to DAMON;


### 3.5. 权限数据字典



select * from role_sys_privs;
select * from user_tab_privs_recd;
select * from user_sys_privs;


### 四、DDL数据定义


### 4.1 创建表



用户要建表,需要有 create table 权限,有存储空间(表空间)
一张表中最多有 1000 个列

create table test
(
dname varchar2(14),
col1 number,
col2 date default sysdate
);

create table DEPT01 AS select * from scott.dept --复制表


![在这里插入图片描述](https://img-blog.csdnimg.cn/dbecac7d957143d6ae5c40c0414f3f8e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVTpgqblvrc=,size_20,color_FFFFFF,t_70,g_se,x_16)


### 4.2 数据类型



#字符
char(n) 固定长度字符数据,读取效率快,存储时使用空格填满空白内容。
–n 默认值 1,范围 1~2000 字节。
varchar2(n) 可变长度字符数据,节省存储空间。
–n 必须指定,范围 1~4000 字节。

#数字
number(p,s) 数值数据,包括零、负数、正数。
–p 是 precision 精度,总有效数据位数,最大值是 38,默认是 1;
–s 是 scale 刻度,小数点后位数;

#日期
date 日期和时间值,包括世纪、年、月、日、小时、分、秒,必须指定年、月、日
timestamp(n):时间戳,表示日期和时间,比 date 更精准
–n 表示秒向下划分的精度范围, n 取值 0~9,默认 6
select systimestamp from dual;

#大对象
BLOB:Binary Large Object (二进制大对象),例如图片、视频、音频。
CLOB:Character Large Object(字符型大对象),例如文本


### 4.3 修改表



#添加一个新列
为 dept01 表新增加一列 job ,类型 varchar2(9)
alter table dept01 add (job varchar2(9));
#修改现有的列的长度
alter table dept01 modify (ename varchar2(15));
#新的列定义默认值
alter table dept01 modify (ename varchar2(20) default ‘jem’);
#删除一列
删除列job
alter table dept01 drop column job;
生产中建议使用以下命令:
设置列不可用:alter table dept_bak SET UNUSED (LOC);
删除不可用的列:alter table dept_bak drop unused columns;

#重命名列
重命名列deptno为ID
alter table dept01 rename column deptno to id;

#将表更改为只读状态(备份时用)
alter table dept01 read only;
alter table dept01 read write;


### 4.4 约束



常用的约束
非空(not null)、唯一(unique)、主键(primary key)、外键(foreign key)、检查(check)

#增加非空约束(emp1表empno)
alter table emp1 modify empno not null;
#增加主键(emp1表empno)
唯一+非空
alter table emp1 add primary key (EMPNO);
#外键
为emp表增加一个外键约束,保证员工不能安排到一个不存在于dep中的部门
create table emp as select * from scott.emp;
create table dept as select * from scott.dept;
满足条件:
基表的字段必须是主键
alter table dept add primary key (deptno);

alter table emp add constraint fk_emp_deptno
foreign key (deptno) references dept(deptno)

测试数据
insert into emp(empno,deptno) values(1008,40)


### 4.4.视图



#创建简单视图
create or replace view emp_view as
select empno,ename,job from emp1

select * from emp_view

–查看视图sql文本
select d.view_name, d.text from user_views d
where d.view_name = ‘EMP_VIEW’

#静态数据字典
select * from dba_users;
select * from dba_tables;
select * from dba_tab_cols
where table_name=‘EMP1’;

DBA_ :数据库拥有的所有对象(dba权限)
ALL_:用户拥有及可以操作其他用户的记录
USER_:用户拥有的对象

#动态性能视图:
select * from v s q l ; s e l e c t ∗ f r o m v sql; select * from v sql;selectfromvsession;


### 4.5 索引



目的是加快Oracle查询的速度,数据自动维护,以空间换时间

#唯一索引
create unique index emp1_idx on emp1(ename);


![img](https://img-blog.csdnimg.cn/img_convert/8ad8701b1def78f8330f7243ad5da91e.png)
![img](https://img-blog.csdnimg.cn/img_convert/5749c2c0b70c3c212ac0502b1f41566e.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

acle查询的速度,数据自动维护,以空间换时间

```bash
#唯一索引
create unique index emp1_idx on emp1(ename);


[外链图片转存中...(img-MKOtgo9E-1715622413431)]
[外链图片转存中...(img-VTddop0u-1715622413431)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值