• sql学习指南--持续更新


     传送门(牛客网我做过的每到题目答案以及解析)

    sql定义:

    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

    概述

    作为一个非DBA,我们日常中用到sql最多得到是查询,比说内连,外联,交并补之类的,再多一些就是插入,更新,删除很少用,一般都是逻辑查询。像存储过程,触发器很少用的,这里点到为止,不深究。

    备注:本人一年经验,超级小菜鸟,一点小建议,若有错误欣然悔改,若是喷子。。。(大哥我错啦!!!)

    学习方法

     重复练习就不赘述啦。

    第一:练习之前语法一定要掌握清楚,这里需要注意的是不同数据库有自己的方言、或者特殊的函数。

      举个例子:oracle的rank,mysql就没有这个。

    第二:练习的时候要理解你写的sql要做什么,要学会解析成sql,具体做法按照以下步骤。

      举个例子:看下面这道题

    查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
    CREATE TABLE `dept_manager` (
    `dept_no` char(4) NOT NULL,
    `emp_no` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`dept_no`));
    CREATE TABLE `salaries` (
    `emp_no` int(11) NOT NULL,
    `salary` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`from_date`));
    题目:查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
    步骤一:解析这个需求,提炼出查询条件;
    目的:查找(也可以理解成查询后要显示的字段)(领导当前薪水详情),(对应的部门编号)
    提取筛选条件:1:各个部门(假定主表是salaries),意味着我们需要关联部门表,让部门和人员薪水信息是 1:1,关联条件就是人员no一致;
           2:当前(to_date='9999-01-01'),一个where条件
           3:隐含一个条件,salaries中也有一个to_date,也要限定一下,一个where条件

    步骤二:组合成sql语句,如下
     2 
     3 select s.*,d.dept_no
     4 from salaries s
     5 --左连接
     6 left join dept_manager d
     7 --连接体哦阿健
     8 on s.emp_no = d.emp_no
     9 --筛选条件
    10 where s.to_date = '9999-01-01'
    11 and d.to_date = '9999-01-01'

    第三步:学习优化,在这个过程中学习一下测试的方法

     1 declare
     2      i number := 1;
     3      j number := 1;
     4      cout number := 1;
     5 begin
     6      for i in 1..10 --循环开始
     7      loop
     8     for j in 1..2500000
     9       loop
    10         cout := cout +1;
    11          insert into sc values(cout,cout,cout,dbms_random.value(100,0));--这个随机函数
    12          end loop;
    13      end loop;
    14      commit; --最后一起提交
    15 end; 

    刷题顺序建议

     也没什么顺序啦,就是按照 查询->增/删/改->触发器(听着牛逼,其实用到很少,可能是我太菜,目前没遇到过)

     每道题目详细解析地址

    截图留念 11:30:06

     

     

     

  • 相关阅读:
    WPF 模板(二)
    WPF 模板
    WFP 样式(复习用)
    wpf 特效学习
    MVC 开源控件学习
    设计模式学习
    使用带参数方式新增或修改可为空的非字符串类型数据到oralce数据库
    python(13)- 文件处理应用Ⅱ:增删改查
    051孤荷凌寒从零开始学区块链第51天DAPP006
    050孤荷凌寒从零开始学区块链第50天DAPP003
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/11458502.html
Copyright © 2020-2023  润新知