ID      Course 1 AA 1 BB 2 AA 2 BB 2 CC 3 AA 3 BB 3 CC 3 DD 4 AA NULL NULL 选出选课数量>=2的学号 selectdistinctIDfromtestasA 1 2 3…
ID      Course 1 AA 1 BB 2 AA 2 BB 2 CC 3 AA 3 BB 3 CC 3 DD 4 AA NULL NULL 选出选课数量>=2的学号 select distinct ID from test as A where (Select count(ID) from test as B where A.ID=B.ID)>=2 1 2 3…
关于面试总结6-SQL经典面试题 前言 用一条SQL 语句查询xuesheng表每门课都大于80 分的学生姓名,这个是面试考sql的一个非常经典的面试题 having和not in 查询 xuesheng表每门课都大于80 分的学生姓名 name kecheng score 张三 语文 81 张三 数学 73 李四 语文 86 李四 数学 90 王五 数学 89 王五 语文 88 王五 英语 96 解决办法一: having 如果不考虑学生的课程少录入情况(比如张三只有2个课程,王五有3个课程)…
产生背景:sqoop抽取oracle数据到hive表时,只能写入到固定分区(--hive-partition-key #hive分区字段 --hive-partition-value #hive分区值).于是先把数据抽取到一张增量表,然后从增量表动态写入分区表. set hive.exec.dynamic.partition.mode = true; --使用动态分区时,设置为ture. set hive.exec.dynamic.partition.mode = nonstrict; --动态…
1.执行sql:select /*+ parallel(a,4) */ * from tf_f_user a where rownum<100000; 2.如何查看该sql语句的并行数量: select t.sql_text,t.sql_id,s.sid from v$sql t,v$session s where t.sql_id=s.sql_id and t.sql_text like '%rownum<100000%'; 执行上面sql语句发现是4条. 3.如果执行sql:select…
在SQL面试部分,一般会考核多表连接查询能力,精选了一些SQL面试题记录下: 四张表(学生表,教师表,课程表,成绩表)                       以下是表的创建和添加SQL语句 学生表 Student(SId,Sname,Sage,Ssex) SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varch…
前言 每次面试必考SQL,小编这几年一直吃SQ的亏,考题无非就是万年不变学生表,看起来虽然简单,真正写出来,还是有一定难度.于是决定重新整理下关于SQL的面试题,也可以帮助更多的人过SQL这一关. 作为一个工作3年以上测试人员,不会sql基本上能拿到offer的希望渺茫,虽然平常也会用到数据库,都是用的简单的查询语句.困难一点的就直接找开发了,面试想留个好印象,还是得熟练掌握,能在纸上快速写出来. 1.查询所有学生的数学成绩,显示学生姓名name, 分数, 由高到低 2.统计每个学生的总成绩,显…
表A记录如下: aID        aName 1           a1 2           a2 3           a3 4           a4 5           a5 表B记录如下: bID        bXuehao 1           2006102401 2           2006102402 3           2006102403 4           2006102404 6           2006102406 SELECT *…
1. 查询性能优化:从数据库查询数据时,你一定遇到过查询很慢的情况,请问你是怎么处理的. 答: 遇到的问题描述:是遇到过这种情况,我们给客户做过一款软件,日志库搜集了6000万条数据,显示.查询时候慢的要命. 查询慢的原因:通常情况下有几种情况可能导致,①硬件资源不足(不考虑):②数据量确实很大(不考虑):③并发量大,架构有问题:④数据表设计有问题:⑤查询语句存在性能问题. 可行的解决方案: ①:升级硬件资源,内存.存储.磁盘.CPU ②:数据量大分两种情况: 表中数据多,这个是正常情况(处理的…
统计表数量 SELECT count(*) FROM sys.objects WHERE type='U' 列出表名称  SELECT NAME  FROM sys.objects WHERE type='U' 或者 列出表名称 SELECT Name FROM SysObjects Where XType='U'…
SQL SERVER 查询第20行到30之间的数据 1.先查询前20行的ID,后查询除去20条记录的前10条记录 SELECT TOP 10 * FROM tbBank WHERE BankID NOT IN(SELECT TOP 20 BankID FROM tbBank ORDER BY BankID ASC) 2.先查询前20行记录最大的ID,后查询大于该值的前10条记录 SELECT TOP 10 * FROM tbBank WHERE BankID>(SELECT MAX(BankID…
1.简单的,按月统计数量 SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, '%Y-%m') AS month , COUNT(*) AS sum FROM pt_user GROUP BY month; 2.按月累加统计数据 SELECT a.month, SUM(b.total) AS total FROM ( SELECT DATE_FORMAT(CREATE_DATE, '%Y-%m') AS month, SUM(sum) AS total FR…
SQL基础: 1.如何查询table1从20到30条记录: select * from table1 limit 19,11 2.替换id=1,name =deman的记录? replace into table1(id,name) value(1,"deman"); 3.如何复制表? create table table2 as select * from table1; 4.如何获得最近一次操作影响的数据? select changes(): 5.只显示不为null的数据? sel…
客户需要将表中统计好的数据还原成统计前的原始记录 例如: ID Name QTYCount100 Name1 1101 Name2 2102 Name3 3103 Name4 4104 Name5 5 还原为: ID Name QTY100 Name1 1101 Name2 1102 Name2 1103 Name3 1104 Name3 1105 Name3 1106 Name4 1107 Name4 1108 Name4 1109 Name4 1110 Name5 1111 Name5 11…
SQL 中的存储过程与函数没有本质上的区别 函数 -> 只能返回一个变量. 函数可以嵌入到sql中使用, 可以在select 中调用, 而存储过程不行.  但函数也有着更多的限制,比如不能使用临时表 存储过程 -> 可以返回多个变量. 存储过程的定义如下: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量…
select *from  表名 ,(SELECT NUMBER FROM master..spt_values WHERE number BETWEEN  1 AND  2 AND TYPE='P') T2…
select COUNT(a.name) from sys.all_columns a,sys.tables bwhere a.object_id=b.object_id and b.name='table_name'…
"Where" 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数. "Having" 是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数. 本质的区别就是where筛选的是数据库表里面本来就有的字段,而having筛选的字段是从前筛选的字段筛选的. where和having都可以使用的场景: SELECT的语法顺序就是起执行顺序 FROM WHERE…
附:(创建“商品管理数据库”的SQL语句) --建立"商品管理数据库"数据库-- create database 商品管理数据库 on(name='商品管理数据库_m', filename='D:\商品管理系统\商品管理数据库_m.mdf', size=6mb,filegrowth=1mb,maxsize=unlimited) log on(name='商品管理数据库_l', filename='D:\商品管理系统\商品管理数据库_l.ldf', size,filegrowth) go…
部分常见ORACLE面试题以及SQL注意事项 一.表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id) ) CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) 建表时…
JAVA面试.笔试题(2017版)                 欲想成功,必须用功!   目录 一.                  HTML&CSS部分.......................................................................................... 9 1.HTML中定义表格的宽度用80px和80%的区别是什么?...................................... 9 2.CSS样…
SELECT 是用来做什么的呢?一个最经常使用的方式是将资料从数据库中的表格内选出.从这一句回答中.我们立即能够看到两个keyword:从 (FROM)数据库中的表格内选出 (SELECT).(表格是一个数据库内的结构,它的目的是储存资料. 在表格处理这一部分中,我们会提到怎样使用 SQL 来设定表格. ) 我们由这里能够看到最主要的 SQL 架构: SELECT "栏位名"FROM "表格名" 我们用下面的样例来看看实际上是怎么用的. 如果我们有下面这个表格: s…
可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; - 不符合第一范式的例子(关系数据库中create不出这样的表): [表]字段1, 字段2(字段2.1, 字段2.2), 字…
一. MySQL概念 程序 =数据+指令构成,如果下载1个程序需要连带该程序所有代码+数据下载到本地,那这个程序运行起来势必造成本机内存压力暴涨,所以我们需要1个在远程server端帮我们管理数据的软件,程序通过客户端去连接server端socket,访问服务端数据库管理软件,按需获取和添加数据, 这种管理数据的软件有很多例如MySQL.Oracle.SQLServer.....以下主要介绍MySQL. MySQL是 一种管理文件(数据库)的软件,客户端程序通过向server端程序发送SQL语句…
  创建学生表,成绩表,教师表,课程表,分别添加数据信息 create table student( sno ) primary key, sname ), sage ), ssex ) ); create table teacher( tno ) primary key, tname ) ); create table course( cno ), cname ), tno ), constraint pk_course primary key (cno,tno) ); create tabl…
第2章 SQL 语句 2.1 选择2.1.1 DELETE FROM S WHERE 年龄>60 语句的功能是( A ) A.从 S 表中彻底删除年龄大于 60 岁的记录B.S 表中年龄大于 60 岁的记录被加上删除标记C.删除 S 表D.删除 S 表的年龄列 2.1.2 使用什么命令可以清除表中所有的内容? ( CD ) A.INSERT  B.UPDATE C.DELETE D.TRUNCATE 2.1.3 以下哪个表不用于 mysql 的权限管理( D ) A.HOST         …
下面这个是题目所用到的数据库! 首先你需要在你的SQL Sever数据库中创建[TestDb]这个数据库,接下来下面这个代码.直接复制在数据库里运行就好了! 1 USE [TestDb] 2 GO 3 /****** Object: Table [dbo].[Course] Script Date: 2018/4/28 17:36:10 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 SET ANSI_PADD…
1.1 数据库基础 数据库(datebase) 保存有组织的数据的容器(通常是一个文件或一组文件),是一个以某种有组织的方式存储的数据集合. 数据库管理系统(DBMS,Data Base Management System) 数据库软件,用来创建和操作数据库. 表(table) 某种特定类型数据的结构化清单. 存储在表中的数据是同一种类型的数据或清单. 同一数据库中的每个表的名字都是唯一的. 模式(schema) 关于数据库和表的布局及特性的信息. 例如:存储何种数据.数据如何分解.各部分信息如…
有一台SQL Server(SQL Server 2014 标准版)服务器中的scheduler_count与cpu_count不一致,如下截图所示: SELECT  cpu_count ,         scheduler_count FROM    sys.dm_os_sys_info; SQL Server中Scheduler数量应该与逻辑CPU的核数一致,而sys.dm_os_sys_info中的scheduler_count 为8,少于cpu_count的12个数量,那么很有可能,有…