![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
安静的蛐蛐
学无止境
展开
-
数据库 三范式最简单最易记的解释
书上讲了好多, 归结起来3句话: 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; 不符合第一范式的例子(关系数据库中create不出这样的表): 表:转载 2016-11-19 22:06:25 · 439 阅读 · 0 评论 -
plsql中文乱码问题(显示问号)
问题:打开 plsql,执行 sql 语句,中文显示乱码:解决方案: 1)输入 sql 语句 select userenv(‘language’) from dual 查看数据库字符集2)输入 sql 语句 select * from V$NLS_PARAMETERS 查看本地字符集,查看第一行和第九行是否对应3)查看下环境变量的设置,查看是否有变量 NLS_LAN...转载 2018-07-09 10:35:00 · 17689 阅读 · 2 评论 -
SQL删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peo...转载 2018-06-28 10:27:07 · 233 阅读 · 0 评论 -
177. 第N高的薪水
第N高的薪水编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。±—±-------+| Id | Salary |±—±-------+| 1 | 100 || 2 | 200 || 3 | 300 |±—±-------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高...原创 2018-09-18 18:08:23 · 233 阅读 · 0 评论 -
178. 分数排名
分数排名编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。±—±------+| Id | Score |±—±------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 || 5 |...原创 2018-09-19 00:33:02 · 518 阅读 · 0 评论 -
180. 连续出现的数字
连续出现的数字编写一个 SQL 查询,查找所有至少连续出现三次的数字。±—±----+| Id | Num |±—±----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |±—±----+例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的...原创 2018-09-19 17:19:54 · 211 阅读 · 0 评论 -
SQLServer之常用的分页查询语句
在SqlServer中,分页查询是经常用到的查询语句,一个好的分页查询语句,不能能将代码省略,还能提高运行效率,下面我们来探讨一下SQLServer中的分页查询语句。具体的业务逻辑是这样的,我数据库中有100条数据,我要查第40-50数据,表中有两个字段,一个字段是id,一个字段是name,其中id是不连续的,因为我删除id为44、45的记录,因为我要查数据的第40-50条记录,也就是id分别...原创 2018-03-22 22:00:35 · 1345 阅读 · 0 评论 -
SQL Server数据库表结构导出到Excel
SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End, 字段序号 = A.colorder, 字段名 = A.name, ...原创 2019-01-25 11:01:10 · 877 阅读 · 0 评论 -
Excel 批量生成插入sql语句及更新sql语句
在开发中,有时候我们会遇到这种情况,客户发过来一些数据,我们需要把这些数据插入数据库或者对数据库进行更新,对于少量数据,我们可以直接用原始的方法手动编写sql语句来实现,但是如果数据量较大(100条),直接手动编写sql语句会比较费力。这时我们可以通过Excel批量生成sql语句的方法来实现插入功能或者更新功能的sql语句的生成。Excel批量插入sql语句生成正常的sql插入语句如下INS...原创 2019-02-18 11:58:48 · 9488 阅读 · 0 评论 -
SQL Server 数据库 创建定时任务
目的:定时进行数据库某些内容的操作。首先确定SQL Server 代理启动,进入服务中进行确认,并启动此服务输入 services.msc,查看服务2. 进入数据库2.1 进入SQL server代理 ,新建作业2.2 在"常规"中,设置作业名称及说明2.3 在“步骤”中,进行步骤操作。点击新建填写步骤信息,然后确定确保语句正确,存储过程存在2.4 操作计划新...原创 2019-02-26 11:22:07 · 3169 阅读 · 0 评论 -
SQL中的循环、for循环、游标
--SQL中的循环、for循环、游标 --1. 利用游标循环更新、删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor ; --读取第一...转载 2018-06-30 17:31:53 · 7644 阅读 · 0 评论 -
PL/SQL远程连接oracle的安装及配置
软件(版本都是12): plsqldev1207x64.msi instantclient-basic-windows.x64-12.2.0.1.0.zip环境:64位win7系统1.双击plsqldev1207x64.msi,安装plsql软件(一路下一步即可)2.解压instantclient-basic-windows.x64-12.2.0.1.0.zip至plsql的安装文...原创 2018-05-21 17:52:46 · 369 阅读 · 0 评论 -
注册jdbc驱动程序的三种方式
1、比较常用try{ Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动 String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议 Connection conn=DriverManager.getConnection(url转载 2016-11-19 22:19:04 · 320 阅读 · 0 评论 -
Statement和PrepareStatement的异同
Statement用于执行静态sql语句,在执行时,必须指定一个事先准备好的sql语句。PrepareStatement是预编译的sql语句对象,sql语句被预编译并保存在对象中。被封装的sql语句代表某一类操作,语句中可以包含动态参数“?”,在执行时可以为“?”动态设置参数值。使用PrepareStatement对象执行sql时,sql被数据库进行解析和编译,然后被放到命令缓冲区,每当执行同原创 2016-11-23 19:01:35 · 420 阅读 · 0 评论 -
SQL两表关联查询where条件中等号两端字段顺序对效率的影响
SQL两表关联查询where条件中等号两端字段顺序对效率的影响 现有两表A(大)、B(小)作关联查询,SQL语句如下: SQL1:select * from A,B where A.id = B.id SQL2:select * from A,B where B.id = A.id 在写SQL的时候可能这个顺序都是随便写的,当然SQL1和SQL2 执行的结果是完转载 2016-11-25 00:02:15 · 5908 阅读 · 0 评论 -
mysql foreign key(外键) 说明与实例
一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。关于完整性,关连性我举个例子,大家就会明白了。 有二张表,一张是用户表,一张是订单表: 1,如果我删除了用户表里的用户,那么订单表里面根这个用户有关的数据,就成了无头数据了,不完整了。 2,如果我在订单表里面,随转载 2016-11-25 23:37:01 · 780 阅读 · 0 评论 -
查询每门课程都大于80分的学生姓名
name cource score张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 ...原创 2018-03-26 13:30:25 · 5494 阅读 · 4 评论 -
sql分页怎么用not exists替换not in?
SELECT TOP 5 *FROM testWHERE (id NOT IN (SELECT TOP 15 id FROM test))/*id value16 1617 1718 1819 1920 20 */SELECT TOP 5 *FROM test bWHERE no...原创 2018-03-28 10:27:16 · 495 阅读 · 0 评论 -
SQL重复记录查询,删除除Id最小值外的重复记录
题目: 找出教师表(Teacher)中姓名(Name)重复的数据,然后删除多余重复记录,只留字段ID最小的那个。delete from Teacher where Name in (select Name from Teacher group by Name Having Count(*)>1) and ID not in (select Mi...原创 2018-03-28 17:11:46 · 1521 阅读 · 0 评论 -
sql之模糊查询
sql模糊查询:普通字符查询、特殊字符查询模糊查询的一般格式: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件;1、%:表示零个或多个字符。 例如:select * from flow_user where username like ‘%王%’; 将会把flow_user这张表里面,列名username中还有“王”的记录全部查询出来。2...原创 2018-05-17 11:06:44 · 1086 阅读 · 0 评论 -
sql之把null赋值给虚子段
1、test表中有如下数据:2、要查询整个表,并添加一个虚列,列名为Gender,填充值为null,可用如下语句: select *,null Gender from test 或者写成 select *,null as Gender from test3、查询结果中可见,虚列已构建完毕,并且以null值填充: ...原创 2018-04-27 19:01:39 · 420 阅读 · 0 评论 -
查询一个表中所有人的分数,并标识出是否及格
列出分数表中所有人是否及格分数表--建表create table score(Id int primary key identity,name varchar(50),score decimal)--插入数据insert into score values('tom',50)insert into score values('jack',70)insert into ...原创 2019-03-18 21:07:28 · 958 阅读 · 0 评论