前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试、工作中常用sql大全(建议收藏备用)

面试、工作中常用sql大全(建议收藏备用)

作者头像
用户10127530
发布2022-10-26 18:48:05
5920
发布2022-10-26 18:48:05
举报
文章被收录于专栏:半旧的技术栈半旧的技术栈

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:深入、全面、系统的介绍数据库的基础知识 🌰 文章简介:本文将深入全面介绍工作中最常用的sql基础语法知识,建议收藏备用,创作不易,敬请三连哦 🍎大厂真题:大厂面试真题大全

1)建表

代码语言:javascript
复制
    create table test
    (
    	test_id int,
    	test_price decimal,
    	test_desc varchar(255)
    );

也可以建立查询结果的子表。但是子表在可视化视图中是看不到的。

代码语言:javascript
复制
    create table hehe
    as
    select *  from emp;

2)排序

查询结果为默认升序,可以指定降序,ORDER BY子句可以有多个关键字(先排前)

代码语言:javascript
复制
    SELECT * FROM emp ORDER BY empno DESC;

注意ORDER BY子句总放在SELECT子句的最后面。可以在查询中使用函数。

代码语言:javascript
复制
    SELECT * FROM emp ORDER BY UPPER(ename);

3)过滤查询

代码语言:javascript
复制
    SELECT DISTINCT ename FROM emp;

关键字UNIQUE与DISTINCT作用相同,但是UNIQUE为ORACLE特有语法,不易于移植。

4)where子句

代码语言:javascript
复制
    select * from emp where sal between 2000 and 3000;
    select * from emp where job in('SALESMAN','CLERK');

上面第2列代码指定字段job为’SALESMAN’,'CLERK’的职员。

代码语言:javascript
复制
   SELECT 
      empno,
      ename,
      job,
      sal,
      TO_CHAR(hiredate, 'YY-MM-DD') as hiredate
    from 
      emp
    where 
      job='CLERK' and EXTRACT(MONTH FROM hiredate)=12;

5)Fetch子句

fetch子句可以返回限定条数的数据。下列代码放回工资最高的五个员工(如果最后一个名额并列则全部显示,把with ties换成only则不会拓展显示数据)。

代码语言:javascript
复制
    --以下代码只有在Oracle12c以上的版本才可以执行
    select
      empno,
      ename,
      sal
    from 
      emp 
    order by
      sal desc
    fetch next 5 rows with ties;

6)In子句

代码语言:javascript
复制
    select
      empno,
      ename,
      job,
      sal
    from 
      emp 
    where 
      job not in('CLERK')
    order by
      sal desc;

7)Between And子句

代码语言:javascript
复制
    select
      empno,
      ename,
      job,
      hiredate
    from
     emp
    where
     hiredate between date '1980-01-01' and date '1981-01-01'
    order by
      empno;

8)like子句

like子句可以使用通配符匹配查询。下面查询姓名首字母为A的,至少有两个字母的员工,不区分大小写。

代码语言:javascript
复制
     select
      empno,
      ename,
      job
    from
      emp
    where
      upper(ename) like 'A_%'
    ORDER BY
      empno;

9)插入数据

代码语言:javascript
复制
    INSERT INTO emp(empno,ename,job)
    VALUES(8003,'sg','CLERK');

10)更新数据

代码语言:javascript
复制
    UPDATE  emp
    SET ename='pp'
    WHERE empno='8003';

11)删除数据

代码语言:javascript
复制
    DELETE FROM emp
    WHERE empno='8003';

12)返回指定行数数据

代码语言:javascript
复制
    select * from emp where rownum<=5;

该语句在数据量特别大的数据库中很有用。

13)别名

代码语言:javascript
复制
    select empno as id,ename as name from emp;
代码语言:javascript
复制
    select 
    e.empno,e.ename,d.dname,e.deptno,d.deptno
    from 
    emp e,dept d
    where e.deptno=d.deptno;

14)连接

内连接两张表的全部内容都会显示,外连接分为左连接和右连接,左连接左表全部显示。

代码语言:javascript
复制
    select 
    e.empno,e.ename,e.job,d.deptno,d.dname
    from 
    emp e
    inner join
    dept d
    on e.deptno=d.deptno;

15)Union和unionAll

合并多个select子句,其中unionAll允许重复值,而Union则不允许。

代码语言:javascript
复制
    select deptno from emp
    union all
    select deptno from dept
    order by deptno;

16)约束

常用primarary key,foreign key not null,check,default.

代码语言:javascript
复制
    create table teacher(
      tid VARCHAR(20) PRIMARY key,
      tname varchar(30),
      tsex VARCHAR(10)
    );
    alter table teacher
    add constraint ck_teacher check(tsex='M' or tsex='W');

17)创建索引

代码语言:javascript
复制
    create index index_emp
    on emp(empno);

18)drop与truncate

代码语言:javascript
复制
    drop index index_test;

truncate可以截断表中数据但是不删除表。

代码语言:javascript
复制
    truncate table hehe;

19)函数

代码语言:javascript
复制
    select avg(sal) from emp;
    select count( distinct ename) from emp;

20)group by子句

使用聚合函数group by可以分组查询,比如查各部门员工的平均工资。

代码语言:javascript
复制
    select deptno,avg(sal) as avg_sal from emp group by deptno;

21)having子句

使用having关键字是因为where子句与聚合函数无法同时使用。

代码语言:javascript
复制
    select 
    deptno,avg(sal) as avg_sal 
    from
    emp 
    group by deptno
    having avg(sal)>1000;

“工欲善其事,必先利其器”。要想成为工作上的高手,面试时的题霸,独步江湖,就必须拿到一份"武林秘籍"。

在这里插入图片描述
在这里插入图片描述

我个人强推牛客网:找工作神器|大厂java面经汇总|超全笔试题库

推荐理由: 1.刷题题库,题目特别全面,刷爆笔试再也不担心

在这里插入图片描述
在这里插入图片描述

链接: 找工作神器|大厂java面经汇总|超全笔试题库 2.超全面试题、成体系、高质量,还有AI模拟面试黑科技

在这里插入图片描述
在这里插入图片描述

链接: 工作神器|大厂java面经汇总|超全笔试题库 3.超多面经,大厂面经很多

在这里插入图片描述
在这里插入图片描述

4.内推机会,大厂招聘特别多

在这里插入图片描述
在这里插入图片描述

链接: 找工作神器|大厂java面经汇总|超全笔试题库 5.大厂真题,直接拿到大厂真实题库,而且和许多大厂都有直接合作,题目通过率高有机会获得大厂内推资格。

在这里插入图片描述
在这里插入图片描述

链接: 找工作神器|大厂java面经汇总|超全笔试题库这篇文章就介绍到这里了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)建表
  • 2)排序
  • 3)过滤查询
  • 4)where子句
  • 5)Fetch子句
  • 6)In子句
  • 7)Between And子句
  • 8)like子句
  • 9)插入数据
  • 10)更新数据
  • 11)删除数据
  • 12)返回指定行数数据
  • 13)别名
  • 14)连接
  • 15)Union和unionAll
  • 16)约束
  • 17)创建索引
  • 18)drop与truncate
  • 19)函数
  • 20)group by子句
  • 21)having子句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档