首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据蒋堂 | SQL是描述性语言?

    试一个例子,我们用SQL来查询员工中中国男性的数量,写出来是这样: SELECT COUNT(*) FROM 员工表 WHERE 国籍='中国' AND 性别='男' 看起来是这样,我们不需要关心具体的计算过程...再举一例,按部门统计女员工的平均工资: SELECT 部门,AVERAGE(工资) FROM 员工表 WHERE 性别='女' GROUP BY 部门 也不错,在这里我们确实不必关心到底如何分组和计算平均...如果设计一下计算过程,那么很容易想到这样的流程: 计算所有客户的总销售额,记为S; 把客户按销售倒排序,即大的在前小的在后; 按2的列表从0开始累加客户的销售额,超过S/2时停止,则已经遍历过后客户则是目标客户...---- 如果再找个数百行的SQL(存储过程)来看,则可以更清楚地看到SQL照样在解释计算过程,而且不同的计算过程还会带来截然不同的计算性能甚至计算结果。 其实。...SQL和其它程序设计语言在描述问题的解决方法上只是抽象层次不同,对于过程的说明并没有任何本质的不同。

    1.1K30

    超详细的MySQL三万字总结

    数据库管理系统、数据库和表的关系如图所示: SQL 的概念 什么是 SQL Structured Query Language 结构化查询语言 SQL 作用 1、是一种所有关系型数据库的查询规范,不同的数据库都支持...-- 按性别进行分组,求男生和女生数学的平均分 select sex, avg(math) from student3 group by sex; 使用having查询年龄大于 25 岁的人,按性别分组...表与表之间的三种关系 一对多:最常用的关系 部门和员工 多对多:学生选课表 和 学生表, 一门课程可以有多个学生选择,一个学生选择多门课程 一对一:相对使用比较少。...`id`; -- 查询员工表的名称,性别。部门表的名称 SELECT emp.name,emp.gender,dept.name FROM emp,dept WHERE emp....`id`; SELECT t1.name, -- 员工表的姓名 t1.gender,-- 员工表的性别 t2.name -- 部门表的名称 FROM emp t1, dept

    3.4K30

    OracleDBA之表管理

    ,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对数据库的管理...8个字符用空格补全,所以存了2个字符也占10个字符的空间;    varchar2 变长 最大是4000字符(查询速度较慢,因为是变长,查询比较是是一位一位的比较) demo:varchar2...emp.deptno ,emp.empno desc;   11.使用列的别名排序:按年薪降序(desc) SQL>select emp.sal*12 "年薪" from emp order by...emp,dept where emp.deptno=dept.deptno;   2.显示部门号为10的雇员名,雇员工资,所在部门名称 SQL> select emp.empno,emp.sal,dept.dname...;   4.显示工资比部门号为30的一个员工的工资都高的员工信息; SQL> select * from emp where sal>any( select sal from emp

    1.1K80

    面试 SQL整理 常见的SQL面试题:经典50题

    select avg(salary) avg_sal from employees group by department_id ) e –问题:返回比本部门平均工资高的员工的...更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job update employees e1 set salary = ( select...删除 108 号员工所在部门中工资最低的那个员工....ps:这些题考察SQL的编写能力,对于这类型的题目,需要你先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编写对应的SQL语句就比较容易了。...查询条件 [没有] group by 分组 [男生、女生人数:按性别分组] having 对分组结果指定条件 [没有] order by 对查询结果排序[没有]; */ select 性别,count

    2.4K10

    SQL 为什么动不动就 N 百行以 K 计

    这个问题并不难,人们会很自然地设计出如下计算过程: 按空调销售额排序,找出前 10 名; 按电视销售额排序,找出前 10 名; 对 1、2 的结果取交集,得到答案; 我们现在来用 SQL...一般情况下,销售员的性别信息会记在花名册上而不是业绩表上,简化如下: employee 员工表 name 员工姓名,假定无重名 gender 员工性别 我们已经计算出“好”销售员的名单,比较自然的想法...这个任务的直观想法:针对每个部门循环,如果该部门有男女员工则各取一名添进结果集中。...但 SQL 不支持这种逐步完成结果集的写法(要用存储过程才能实现此方案),这时必须转变思路为:从每个部门中选出男员工,从每个部门选出女员工,对两个结果集分别选出部门出现在另一个结果集的成员,最后再做并集...from department      where manager in           (select name from employee where gender='female')) 如果员工表中的部门字段是指向部门表中的记录

    39430

    SQL 为什么动不动就 N 百行以 K 计

    按空调销售额排序,找出前 10 名; 2. 按电视销售额排序,找出前 10 名; 3. 对 1、2 的结果取交集,得到答案; 我们现在来用 SQL 做。 1....一般情况下,销售员的性别信息会记在花名册上而不是业绩表上,简化如下: employee 员工表 name 员工姓名,假定无重名 gender 员工性别 我们已经计算出“好”销售员的名单,比较自然的想法...这个任务的直观想法:针对每个部门循环,如果该部门有男女员工则各取一名添进结果集中。...但 SQL 不支持这种逐步完成结果集的写法(要用存储过程才能实现此方案),这时必须转变思路为:从每个部门中选出男员工,从每个部门选出女员工,对两个结果集分别选出部门出现在另一个结果集的成员,最后再做并集...from department where manager in (select name from employee where gender='female')) 如果员工表中的部门字段是指向部门表中的记录

    53150

    SQL为什么动不动就N百行以K计

    按空调销售额排序,找出前10名; 2. 按电视销售额排序,找出前10名; 3. 对1、2的结果取交集,得到答案; 我们现在来用SQL做。 1....一般情况下,销售员的性别信息会记在花名册上而不是业绩表上,简化如下: employee 员工表 name 员工姓名,假定无重名 gender 员工性别 我们已经计算出“好”销售员的名单,比较自然的想法...这个任务的直观想法:针对每个部门循环,如果该部门有男女员工则各取一名添进结果集中。...但SQL不支持这种逐步完成结果集的写法(要用存储过程才能实现此方案),这时必须转变思路为:从每个部门中选出男员工,从每个部门选出女员工,对两个结果集分别选出部门出现在另一个结果集的成员,最后再做并集。...from department where manager in (select name from employee where gender='female')) 如果员工表中的部门字段是指向部门表中的记录

    35810

    常见的SQL面试题:经典50例

    from (       select avg(salary) avg_sal       from employees       group by department_id ) e 问题:返回比本部门平均工资高的员工的...avg(salary))          from employees          group by job_id    ) ) where employee_id = 108; 删除 108 号员工所在部门中工资最低的那个员工...ps:这些题考察SQL的编写能力,对于这类型的题目,需要你先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编写对应的SQL语句就比较容易了。...向表中添加数据 1)向学生表里添加数据 添加数据的sql insert into student(学号,姓名,出生日期,性别)  values('0001' , '猴子' , '1989-01-01'...,性别)  values('0004' , '王思聪' , '1990-05-20' , '男'); 在客户端navicat里的操作 2)成绩表(score) 添加数据的sql insert into

    2K20

    sql语句面试经典50题_sql基础知识面试题

    select avg(salary) avg_sal from employees group by department_id ) e –问题:返回比本部门平均工资高的员工的...更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job update employees e1 set salary = ( select...删除 108 号员工所在部门中工资最低的那个员工....ps:这些题考察SQL的编写能力,对于这类型的题目,需要你先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编写对应的SQL语句就比较容易了。...查询条件 [没有] group by 分组 [男生、女生人数:按性别分组] having 对分组结果指定条件 [没有] order by 对查询结果排序[没有]; */ select 性别,count

    2.9K20

    常见的SQL面试题:经典50例

    from ( select avg(salary) avg_sal from employees group by department_id ) e 问题:返回比本部门平均工资高的员工的...(salary)) from employees group by job_id ) ) where employee_id = 108; 删除 108 号员工所在部门中工资最低的那个员工...ps:这些题考察SQL的编写能力,对于这类型的题目,需要你先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编写对应的SQL语句就比较容易了。...(学号,姓名,出生日期,性别) values('0004' , '王思聪' , '1990-05-20' , '男'); 在客户端navicat里的操作 2)成绩表(score) 添加数据的sql...查询条件 [没有] group by 分组 [男生、女生人数:按性别分组] having 对分组结果指定条件 [没有] order by 对查询结果排序[没有]; */ select 性别,count

    7K42
    领券