常见SQL问题

sql的六大问题 一、商品订单数据 数据表:订单表orders,字段: order_id,user_id,order_pay,order_time,commodity_level_1,commodity_level_2; 题目1:求最近七天内每一个一级类目下成交额排名前三的二级类目; SELECT commodity_level_1, commidity_level_2, total_pay FROM (SELECT *, rank ( ) over ( PARTITION BY commodity_le 阅读详情

一、数据库常见概念

1.触发器的作用?

 

触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

 

2.什么是存储过程?用什么来调用?

 

存储过程是一个预编译的SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL ,使用存储过程比单纯SQL 语句执行要快。可以用一个命令对象来调用存储过程。

3.索引的作用?和它的优点缺点是什么?

索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

4.什么是内存泄漏?

一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new 等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free 或者delete 释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。

5.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么?

我是这样做的,尽可能使用约束,如check, 主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。

6.什么是事务?什么是锁?

事务就是被绑定在一起作为一个逻辑工作单元的SQL 语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID 测试,即原子性,一致性,隔离性和持久性。

锁:在所以的 DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

7.什么叫视图?游标是什么?

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

  游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

8.什么是主键?什么是外键?

主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

9.数据库事务的四大特征?

一个设计良好的数据库可以帮我们保证事务具有四大特性(ACID):

原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

一致性:如果事务执行之前数据库是一个完整的状态,那么事务结束后,无论事务是否执行成功,数据库仍然是一个完整的状态。

  数据库的完整状态:当一个数据库中的所有的数据都符合数据库中所定义的所有约束,此时可以称数据库是一个完整的状态。

隔离型:多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。

持久性:指一个事务一旦被提交,他对数据库的影响是永久性的。

如果两个线程一个修改,一个查询:

 脏读:一个事务读取到另一个事务未提交的数据。

 幻读:在当前事务中,读取到了另一个事务提交的插入的数据。

 不可重复读:在当前事务,读取到了另一事务提交的更新或删除的数据。

10.数据库的三大范式?

 第一范式(1NF):对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。

 第二范式(2NF):在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性

 第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

 

 

二、简单SQL编写:

1.用一条SQL 语句查询出每门课都大于80 分的学生姓名?

// 第一种方式:
select name from table where name not in ( select name from table where score < 80 );

// 第二种方式:
select name from table group by name having min(score) >= 80;

 

2.删除除了自动编号id不同, 其他都相同的学生冗余信息?  

字段分别是:id,stunum,name,course,score

delete table where id not in ( select min(id) from table group by stunum,name,course,score );

3.一个叫 team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合?

// 所有组合:ab,ac,ad,  bc,bd, cd   所有左侧字母都小于右侧字母
select a.name,b.name from team a,team b where a.name < b.name order by a.name,b.name ;

4.从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目?

AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额

select a.AccID from TestDB a,( select Occmonth,max(DebitOccur) from TestDB where AccID = '101' group by Occmonth )b 
 where a.Occmonth = b.Occmonth and a.DebitOccur > b.DebitOccur;

5.怎么把这样一个表儿
year   month amount
1991   1     1.1
1991   2     1.2
1991   3     1.3
1991   4     1.4
1992   1     2.1
1992   2     2.2
1992   3     2.3
1992   4     2.4
查成这样一个结果
year m1   m2   m3   m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4 

select year, 
(select amount from table m where month=1 and m.year=aaa.year) as m1,
(select amount from table m where month=2 and m.year=aaa.year) as m2,
(select amount from table m where month=3 and m.year=aaa.year) as m3,
(select amount from table m where month=4 and m.year=aaa.year) as m4
from table group by year

6.复制表( 只复制结构, 源表名:a新表名:b) 

select * into b from a where 1<>1;   // where1=1,拷贝表结构和数据内容
Oracle: create table b 
      as
      select * from a where 1=2;

7.拷贝表( 拷贝数据, 源表名:a目标表名:b) 

 insert into b(a, b, c) select d,e,f from a; 

8.显示文章、提交人和最后回复时间

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b;

9.日程安排提前五分钟提醒

select * from 日程安排 where datediff('minute',f 开始时间,getdate())>5;

10.两张关联表,删除主表中已经在副表中没有的信息

delete from info where not exists (select * from infobz where info.infid=infobz.infid );

11.有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中对应的value?

update b set b.value=(select a.value from a where a.key=b.key) where b.id in(select b.id from b,a where b.key=a.key);

 

12.已知有如下4张表:

学生表:STUDENT(S#,SNAME,SAGE,SSEX)

课程表:COURSE(C#,CNAME,T#)

成绩表:SC(S#,C#,SCORE)

教师表:TEACHER(T#,TNAME)

 

(1)查询课程编号为“001”的课程比“002”的课程成绩高的所有学生的学号?

select x.sno,x.score,y.score from sc x,sc y
where  x.cno=1001 
   and y.cno=1002
   and x.sno=y.sno
   and x.score > y.score;

(2)查询平均成绩大于60分的学生的学号和平均成绩?

select sno,avg(score) from sc
group by sno
having avg(score)>60;

(3)查询所有学生的学号、姓名、选课数、总成绩?

select sc.sno,sname,count(cno),sum(score)
from student join sc on student.sno=sc.sno
group by sc.sno,sname;

(4)查询姓“悟”的老师的个数?

select count(Tname) from teacher
where Tname like '悟%';

(5)查询没学过“悟空”老师课的学生的学号、姓名?

select sno,sname from student 
where sno not in(select sno from SC where cno in(select cno from course
where tno in(select tno from teacher
where tname='悟空')));
Sql常见问题 SQL 的锁机制用于保证多用户并发访问时的数据一致性和完整性。主要有两种锁🔐:•。 阅读详情

相关推荐

SQL Server常见问题及解决方法

使用SQL Server Management Studio (SSMS) 中的执行计划分析工具,检查查询的执行计划,找出性能瓶颈。使用SQL Server提供的工具检查数据同步状态,必要时重新同步数据。问题描述:在不同版本的SQL Server之间迁移数据库时出现问题。检查SQL Server的内存配置,确保其不会占用过多系统内存。问题描述:SQL Server占用大量内存,导致系统性能下降。问题描述:SQL Server Agent作业执行失败。确保备份文件的版本与目标SQL Server版本兼容。

2501_91207543的博客 964

SQL常见问题总结

4、数值类型的字段值为NULL时不能进行计算,可以通过ISNULL(字段,0)解决。1、类型 varchar 发生算术溢出错误,值 = 2162400.000000。3、提示某字段无效是一般是字段的归属表指定不明确,如果提示表无效一般是表不存。2、从数据类型varchar转换为numeric时出错。可能原因:转换类型长度不够。可能原因:字段有为空的值。...

疯流人物 2463

SQL Server 2022 常见问题解答月度工作总结

本月主要围绕SQL Server 2022常见问题解答开展工作。解答了用户关于安装配置、性能优化、数据迁移、安全设置等多方面的问题。提供详细的步骤与方法,帮助用户解决在SQL Server 2022使用过程中遇到的各种难题,确保用户能顺利地运用该数据库管理系统,提升工作效率。

weixin_47256261的博客 968

SQL面试必问的20个问题

SQL面试中,面试官可能会提出各种问题来考察应聘者的数据库知识、SQL查询技能以及对数据库管理系统的理解。

chengxuyuan66666的博客 1242

开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式

电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。

【Simon】的博客 1226

《详细指南:本地部署Ollama大型模型的完整步骤》

通过本指南,您应该能够成功地在本地部署Ollama大型模型,并开始使用它进行各种AI任务。Ollama的易用性和高性能使其成为研究和开发的理想选择。Ollama是一个高性能的AI模型部署平台,支持在本地轻松部署大型语言模型。本指南将详细介绍如何在本地环境中部署Ollama,并运行一个大型模型。

eclipsercp的博客 3695

SQL常见问题整理(一)

1.从表中查询数据 (1)指定查询的行与列 where子句 (2)指定查询结果中列的别名 as 注:不能在where子句中使用列别名 (3)查询结果排序 order by 降序排序在排序字段后加DESC 自定义排序:使用field()将列值映射到一个序列中,该序列可以按照所需的排序为列赋值order by field(name,‘Henry’,‘Suzi’,‘Ben’) (4)过滤重复行 distinct 统计唯一结果的数量 count(distinct A) (5)处理NULL值 is null、is n

weixin_47970003的博客 1726

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 439

SQL 常见问题类型与解决思路总结

类型问题描述典型业务场景解决核心思路推荐函数🔁连续类问题判断某字段在时间或数值上是否连续(如连续登录、连续上涨)用户活跃分析、行为序列分析使用或生成序号,通过差值法识别连续区间LAG()DATEDIFF()📅留存类问题分析用户首次行为后,在后续某时间段内是否再次活跃次日/7日/30日留存率计算找出首次行为时间,判断后续是否发生指定行为EXISTSLAGDATEDIFF📈漏斗类问题分析多步骤流程中每一步的转化率注册 → 登录 → 下单 → 支付等路径分析使用CASE WHEN。

qq_45696804的博客 995

YOLOv13改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性

Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。

Limiiiing的博客 586

学Simulink--基于Simulink的无迹卡尔曼滤波(UKF)目标跟踪仿真建模示例

本文详细介绍了基于Simulink的无迹卡尔曼滤波(UKF)目标跟踪仿真建模方法。首先分析了UKF相比EKF在强非线性场景下的优势,包括无线性化误差、计算效率高和鲁棒性强等特点。接着阐述了UKF的核心原理,重点讲解了无迹变换(UT)的三个关键步骤:Sigma点生成、非线性传播和加权统计重构。文章还详细说明了二维机动目标的状态向量定义、非线性状态转移模型和雷达观测模型。 在Simulink实现部分,提供了完整的建模步骤和核心代码,包括目标运动模型、雷达传感器模型和UKF算法模块的实现。通过蛇形机动场景的仿真实

xiaoheshang_123的博客 89

SQL Server 常见问题解析

SQL Server 常见问题解析

niuniu_666的博客 1667

基于STM32、HAL库的MCP4013T-103E/CH 数字电位器驱动程序设计

define MCP4013_I2C_ADDR (0x5F << 1) // HAL库使用7位地址左移1位,或直接使用0xBE/0xBF。#include "i2c.h" // 包含你的I2C初始化相关的头文件,例如由CubeMX生成的 i2c.h。大于127的值会被截断。// MCP4013的读操作:主机发起读取请求,从机返回当前滑片位置的一个字节。// 使用HAL_I2C_Master_Transmit直接发送数据。// 使用HAL_I2C_Master_Receive读取一个字节。

corlin6688的博客 126

SQL Server补丁安装常见问题(更新)

SQL Server补丁安装常见问题(更新)创建时间:2003-01-27文章属性:原创文章来源:http://www.xfocus.net文章提交:benjurry (benjurry_at_xfocus.org)SQL Server补丁版本的检查和安装过程中常见问题有任何问题可以联系:benjurry@xfocus.org或者在论坛提出一、SQL Server补丁版本的检查SQL Se

1308

Redhawk:如何gds2def?

使用redhawk gds2def功能 这其中gds_layer.map的书写方式如下: m代表metal,v代表via。 ICC/ICC2用户可以从tech file中获取layer number。 innovus用户可以从stream out layer map中获取layer number。 最后运行gds2def -m gds2def.config即可。 ...

m0_61544122的博客 5340

打开 AI 投研新时代 —— 深度解析 GitHub 高星项目 daily_stock_analysis

GitHub热门开源项目"daily_stock_analysis"是一款AI驱动的智能股票分析工具,能自动抓取行情数据、分析新闻语义并生成结构化报告。该项目采用Python开发,通过GitHub Actions实现全自动运行,支持邮件、企业微信等多渠道推送。核心功能包括AI决策仪表盘、多数据源整合和零成本部署方案,特别适合需要自动化投研辅助的个人投资者。项目强调其仅为分析工具而非投资建议,提醒用户注意AI模型的潜在误差。该工具通过智能化处理重复工作,帮助投资者提升决策效率,成为量化投资

陈奕昆的博客 1522

SQL Server 常见问题解答(FAQ)

SQL Server 会将查询结果存入缓存(Buffer Pool),有时我们需要清理它,以测试查询的真实执行时间。当服务器运行缓慢时,我们需要查看 SQL Server 是否占用了过多的内存。当数据库出现**数据损坏(corrupt)**时,需要进行修复。当数据库变得越来越大时,我们需要监控表和索引的存储占用情况。当系统响应变慢时,我们需要找出影响性能的 SQL 语句。索引长期使用后可能会出现碎片化,影响查询性能。时,某些 SQL 语句会长时间卡住,影响业务。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 913

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

常见问题处理SQL无法改写

常见问题处理 SQL无法改写:请查看SQL是否符合改写规则或SQL语法是否正确。

358

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Generate SQL MERGE 项目常见问题解决方案

Generate SQL MERGE 项目常见问题解决方案 项目基础介绍 Generate SQL MERGE 是一个开源项目,它提供了一个存储过程来生成包含表数据的 SQL MERGE 语句。这个项目的主要作用是在数据库之间迁移静态数据,特别是用于在开发、测试和生产环境之间同步数据。该项目使用的主要编程语言是 SQL,并且是为 SQL Server 数据库设计的。 新手常见问题及解决步骤 问题一...

gitblog_00247的博客 758

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SQL常见问题

SQL常见问题

草原孤狼的专栏 288

常见问题-SQL

常见问题-SQL

weixin_45226668的博客 1089

SQL Server常见的安全问题

单位的小王学习SQL Server已有一段时间了,已经做了个不错的管理系统,有次小王让我帮着看看库的设计有没有问题,其间我发现他的安全意识非常薄弱,这也许是初学者容易忽视的问题,本文探讨一些SQL Server常见的安全问题,是给初入SQL Server的人看的,写的肯定很絮叨,高手勿读。本文的用的是SQL Server 2000,下文中都简写为SQL Server。  一、空口令或弱口令  初学

791

Oracel sql基础常见问题

Oracel sql基础常见问题 1.1问题:日期函数的使用 ,无效月份的问题 1.2解决方案:需要更改 ALTER SESSION SET nls_date_language=‘american’; 2.1问题:如何将date类型更改为数字? 2.2解决方案:to_number(to_char(st.D_LASTMODIFY,‘YYYYMMDD’)) 3.1问题:创建时有missing expression问题 3.2解决方案: (1)缺失逗号,关键词等细节问题; (2) 规范性: 需要注意的是

weixin_44548432的博客 1449

第1卷-SQL常见的安装问题

 SQL Server 2000 Installing SQL Server 2000 (E文) http://msdn.microsoft.com/en-us/library/aa299042(SQL.80).aspx SQL Server 2000补丁 Microsoft SQL Server 2000 Service Pack 3a http://www.microsoft.

stonec的专栏 864
上一篇: html内插入视频的代码的方法
下一篇: 2019年PHP面试题附答案(实战经验)
CEJ-盐井
博客等级 码龄17年 10粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值