![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
杨二K
一直在努力变成更好的自己,从没放弃!
展开
-
sql优化
关于sql的优化问题项目做了很多,有没有想过性能问题,或者在提供api接口的过程中有没有想过怎么优化,现在手上做过的java项目有十几个了吧,基本都是和接口和数据库有关系的,接口的性能问题也可以追溯到数据库层面的问题,数据库的优化可以从数据库本身来进行优化,也可以通过对sql来优化,也可以对表进行优化。接下来我会对数据库相关的优化做一个小小的梳理。提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录关于sql的优化问题前言一、要讲什么?二、正文1.避免使用select *2.尽量原创 2021-12-03 09:37:12 · 913 阅读 · 0 评论 -
数据库三大范式
如果现在有人问我数据库设计的三大范式是什么,我肯定是不知道的,我很懵~所以在网上搜了几篇文章来了解数据库设计的三大范式。什么是数据库设计的三大范式1.数据库表的每一列不可以再分。 一张表,其中的每一列不能够有歧义,都是被分到不能再分为止,保持其原子性。例如:我们记录风机信息表,有一列叫风机地址,如果我们要精确到市,县…那么这个地址需要更细一步拆分,风机地址包含了很多子字段,这个时候就不满足原子性了。2原创 2021-10-08 14:55:28 · 85 阅读 · 0 评论 -
表中有重复数据,主键冲突,删除多余的数据保留一条
delete from dwd_solar_fact_metrics_inverter_5m_test a where a.ctid = any(array (select t.ctid from (select row_number() over (partition by data_time,inverter_id),ctid from dwd_solar_fact_metrics_inverter_5m_test ) t where t.row_number>1));原创 2021-04-20 16:42:22 · 358 阅读 · 0 评论 -
psql数据库连接数过多解决方法
原创 2021-03-29 15:30:11 · 968 阅读 · 0 评论 -
将分钟级别数据向下取整为5的倍数 sql实现
今天的这个需求太刺激了select now()::timestamp - (mod(to_char(now(),'mi')::numeric ,5)::numeric || 'min')::interval;转化之后原创 2021-02-26 15:22:07 · 936 阅读 · 0 评论 -
psql中关于时间的sql
1.计算今天到月初共过去多少天select extract(day from now() ) #计算昨天到月初共过去多少天select extract(day from now()- INTERVAL '1 day' ) 2.计算今天到年初共过去多少天select extract(doy from now() ) #计算昨天到年初共过去多少天select extract(doy from now()- INTERVAL '1 day' ) 后期遇到了再更新…...原创 2021-02-04 17:29:08 · 174 阅读 · 0 评论 -
SQL---统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum
统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sumCREATE TABLE departments (dept_no char(4) NOT NULL,dept_name varchar(40) NOT NULL,PRIMARY KEY (dept_no));CREATE TABLE dept_emp (emp_no int(11)...原创 2019-04-14 21:53:43 · 507 阅读 · 0 评论 -
防止SQL注入的总结
防止SQL注入的方法,我准备从三个方面来进行总结,从前端到后端,最后到服务端。最首要的是代码编写的规范性,尽量多考虑会出现的问题,避免bug多的代码出现。前端:前端的页面我们可以添加图形验证码,对机器强制破解有一定的拦截作用。我们可以尽量使用参数化查询,避免使用sql语句。后端后端我们可以添加函数对传过来的数据进行过滤或者正则化匹配过滤掉一些数据库操作关键字,或者系统函数来进行过滤。...原创 2019-04-14 20:06:57 · 506 阅读 · 0 评论 -
SQL---统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。
统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。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_da...原创 2019-04-06 21:55:16 · 932 阅读 · 0 评论 -
SQL---查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by
查找当前薪水(to_date=‘9999-01-01’)排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order byCREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT ...原创 2019-04-10 20:06:03 · 657 阅读 · 0 评论 -
SQL---获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary
获取当前(to_date=‘9999-01-01’)薪水第二多的员工的emp_no以及其对应的薪水salaryCREATE 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,fr...原创 2019-04-10 19:51:35 · 655 阅读 · 0 评论 -
SQL---查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序
查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序**CREATE TABLE employees (emp_no int(11) NOT NULL,birth_date date NOT NULL,first_name varchar(14) NOT NULL,last_name varchar(16) NOT N...原创 2019-04-10 21:32:29 · 1061 阅读 · 0 评论 -
SQL---查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth
查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growthCREATE 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));这个...原创 2019-04-10 20:50:41 · 251 阅读 · 0 评论 -
SQL---查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工CREATE TABLE `departments` (`dept_no` char(4) NOT NULL,`dept_name` varchar(40) NOT NULL,PRIMARY KEY (`dept_no`));CREATE TABLE `dept_emp` (...原创 2019-04-10 20:44:09 · 448 阅读 · 0 评论