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


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

    1)建表

        create table test
        (
        	test_id int,
        	test_price decimal,
        	test_desc varchar(255)
        )
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

        create table hehe
        as
        select *  from emp;
    
    • 1
    • 2
    • 3

    2)排序

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

        SELECT * FROM emp ORDER BY empno DESC;
    
    • 1

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

        SELECT * FROM emp ORDER BY UPPER(ename);
    
    • 1

    3)过滤查询

        SELECT DISTINCT ename FROM emp;
    
    • 1

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

    4)where子句

        select * from emp where sal between 2000 and 3000;
        select * from emp where job in('SALESMAN','CLERK');
    
    • 1
    • 2

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

       SELECT 
          empno,
          ename,
          job,
          sal,
          TO_CHAR(hiredate, 'YY-MM-DD') as hiredate
        from 
          emp
        where 
          job='CLERK' and EXTRACT(MONTH FROM hiredate)=12;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5)Fetch子句

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

        --以下代码只有在Oracle12c以上的版本才可以执行
        select
          empno,
          ename,
          sal
        from 
          emp 
        order by
          sal desc
        fetch next 5 rows with ties;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6)In子句

        select
          empno,
          ename,
          job,
          sal
        from 
          emp 
        where 
          job not in('CLERK')
        order by
          sal desc;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    7)Between And子句

        select
          empno,
          ename,
          job,
          hiredate
        from
         emp
        where
         hiredate between date '1980-01-01' and date '1981-01-01'
        order by
          empno;
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    8)like子句

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

         select
          empno,
          ename,
          job
        from
          emp
        where
          upper(ename) like 'A_%'
        ORDER BY
          empno;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    9)插入数据

        INSERT INTO emp(empno,ename,job)
        VALUES(8003,'sg','CLERK');
    
    • 1
    • 2

    10)更新数据

    
        UPDATE  emp
        SET ename='pp'
        WHERE empno='8003';
    
    • 1
    • 2
    • 3
    • 4

    11)删除数据

        DELETE FROM emp
        WHERE empno='8003';
    
    • 1
    • 2

    12)返回指定行数数据

        select * from emp where rownum<=5;
    
    • 1

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

    13)别名

        select empno as id,ename as name from emp;
    
    • 1
        select 
        e.empno,e.ename,d.dname,e.deptno,d.deptno
        from 
        emp e,dept d
        where e.deptno=d.deptno;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    14)连接

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

        select 
        e.empno,e.ename,e.job,d.deptno,d.dname
        from 
        emp e
        inner join
        dept d
        on e.deptno=d.deptno;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    15)Union和unionAll

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

        select deptno from emp
        union all
        select deptno from dept
        order by deptno;
    
    • 1
    • 2
    • 3
    • 4

    16)约束

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

        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');
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    17)创建索引

    
        create index index_emp
        on emp(empno);
    
    • 1
    • 2
    • 3

    18)drop与truncate

        drop index index_test;
    
    • 1

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

        truncate table hehe;
    
    • 1

    19)函数

        select avg(sal) from emp;
        select count( distinct ename) from emp;
    
    • 1
    • 2

    20)group by子句

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

        select deptno,avg(sal) as avg_sal from emp group by deptno;
    
    • 1

    21)having子句

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

        select 
        deptno,avg(sal) as avg_sal 
        from
        emp 
        group by deptno
        having avg(sal)>1000;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    “工欲善其事,必先利其器”。要想成为工作上的高手,面试时的题霸,独步江湖,就必须拿到一份"武林秘籍"。
    在这里插入图片描述
    我个人强推牛客网:找工作神器|大厂java面经汇总|超全笔试题库

    推荐理由:
    1.刷题题库,题目特别全面,刷爆笔试再也不担心
    在这里插入图片描述
    链接: 找工作神器|大厂java面经汇总|超全笔试题库
    2.超全面试题、成体系、高质量,还有AI模拟面试黑科技
    在这里插入图片描述
    链接: 工作神器|大厂java面经汇总|超全笔试题库
    3.超多面经,大厂面经很多
    在这里插入图片描述
    4.内推机会,大厂招聘特别多
    在这里插入图片描述
    链接: 找工作神器|大厂java面经汇总|超全笔试题库
    5.大厂真题,直接拿到大厂真实题库,而且和许多大厂都有直接合作,题目通过率高有机会获得大厂内推资格。
    在这里插入图片描述
    链接: 找工作神器|大厂java面经汇总|超全笔试题库这篇文章就介绍到这里了。

    “工欲善其事,必先利其器”。要想成为工作上的高手,面试时的题霸,独步江湖,就必须拿到一份"武林秘籍"。
    在这里插入图片描述
    我个人强推牛客网:找工作神器|大厂java面经汇总|超全笔试题库

    推荐理由:
    1.刷题题库,题目特别全面,刷爆笔试再也不担心
    在这里插入图片描述
    链接: 找工作神器|大厂java面经汇总|超全笔试题库
    2.超全面试题、成体系、高质量,还有AI模拟面试黑科技
    在这里插入图片描述
    链接: 工作神器|大厂java面经汇总|超全笔试题库
    3.超多面经,大厂面经很多
    在这里插入图片描述
    4.内推机会,大厂招聘特别多
    在这里插入图片描述
    链接: 找工作神器|大厂java面经汇总|超全笔试题库
    5.大厂真题,直接拿到大厂真实题库,而且和许多大厂都有直接合作,题目通过率高有机会获得大厂内推资格。
    在这里插入图片描述
    链接: 找工作神器|大厂java面经汇总|超全笔试题库

  • 相关阅读:
    Promise和 async-await的区别
    js ajax返回判断
    Matlab论文插图绘制模板第48期—平行坐标图(Parallelplot)
    【ArcGIS超级工具】基于ArcPy的矢量数据批量自动化入库工具
    Go | 函数(包)的使用
    没什么。。。。
    【已解决】华为手机如何关闭智慧助手·今天(负一屏) | 华为荣耀八手机智慧助手开关介绍 | 华为手机关闭负一屏开关后,仍接收到负一屏服务相关通知提醒怎么办
    CRM软件哪个好?国内外6大顶级CRM软件盘点
    文心一言 VS 讯飞星火 VS chatgpt (106)-- 算法导论10.1 4题
    PyTorch: 张量的拼接、切分、索引
  • 原文地址:https://blog.csdn.net/qq_41708993/article/details/126063597