sql
文章平均质量分 84
神雕大侠mu
侠之大者,为国为民
展开
-
数据库设计的三范式 && MYSQL行转列的两种做法
MYSQL列转行的两种做法原创 2022-04-24 22:40:30 · 8128 阅读 · 0 评论 -
数据库的事务与隔离级别
数据库的事务与隔离级别事务:事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一 旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所 有SQL语句均执行成功,则事物被顺利执行存储引擎mysql中用的最多的存储引擎有:innodb, myisam ,memory 等。其中只有innodb支持事务查看当前数据库的存储引擎:show engines原创 2021-04-30 16:45:57 · 1006 阅读 · 3 评论 -
sql语句里面的case when 和choose when的使用区别
sql语句里面的case when 和choose when的使用区别这本是一个简单的知识,但在使用时还会模糊,特地记录:case when主要用于查询出的字段上,进行结果区分;例如:select sex,(CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'ELSE '其他' END) as sexnamefrom sys_student或者select sex,(CASE sex WHEN '1'原创 2020-06-06 11:50:56 · 4433 阅读 · 0 评论 -
case………when………end……的使用
case………when………end……的使用需求:在查数据库时,如果shareholder_type字段为1,则输出type为企业,shareholder_type字段为2,则输出type为个人,否则输出其他 SELECT shareholder_name AS name,proportion AS category, (CASE WHEN shareholde...原创 2020-01-16 16:46:28 · 475 阅读 · 0 评论 -
字典表与数据在sql关联生成结果
字典表与数据在sql关联生成结果最近做pgsql,遇到需要将查询的数据在后端与字典表关联的,这以前都是后端查询数据,返回前端,字典表也返回前端,前端自己取匹配,但是现在要在后端匹配,我研究了一番。这个是查询年数据的表:enterprise_score,以basic字段为例。这个是字典表:sys_derived_score。以code为rank那几个为例,来进行匹配。上面表中查询出来的b...原创 2020-04-01 16:02:16 · 1709 阅读 · 0 评论 -
foreach遍历迭代的常见用法
foreach遍历迭代的常见用法代码示例:SELECThonorFROMmember_manager_table mLEFT JOIN sys_user_table uONm.member_id = u.user_idWHEREu.user_id IN#{item}dao层的写法:int queryMemberTotalHonor(List list);foreach...原创 2019-08-22 16:44:51 · 2090 阅读 · 0 评论 -
sql语句查询字段不同取值对应的不同总数
sql语句查询字段不同取值对应的不同总数#需求:数据库字段userType可能为0也可能为1,那现在要在sql里面统计每天的userType为0的总数和为1的总数:①返回每天的日期格式为yyyy-MM-dd所以要用DATE_FORMAT(create_time,’%Y-%m-%d’)②去重,以天为单位统计DISTINCT()③userType为0,1的,分别统计统计:count(case...原创 2019-09-25 14:52:45 · 2158 阅读 · 0 评论 -
SQL日期格式化
数据库里的日期格式为:2019-08-16 15:31:28要转变为:2019-08-16我尝试了convert(varchar(11),submit_time,120)一直不得行。无奈啊无奈最终尝试了:DATE_FORMAT(submit_time,’%Y-%m-%d’)成功了SELECT DATE_FORMAT(submit_time,’%Y-%m-%d’) AS date1 F...原创 2019-09-06 14:53:33 · 4189 阅读 · 0 评论 -
清洗---sql语句按某字段在指定时间段内去重,并保留id最大的那一条
清洗—sql语句按某字段在指定时间段内去重,并保留id最大的那一条1.先学会查找有重复记录的数据,这里按cve_number是否重复去重。select cve_number ,count(cve_number) from sys_bug group by cve_number having count(cve_number) > 1这样就可以看到那些数据有重复,并且可以看到有多少条重复...原创 2019-09-10 15:34:48 · 2469 阅读 · 0 评论 -
delete from删除几张表关联和mysql几种连接查询总结
在删除时:delete from sys_role_menu s left join sys_menu m ON s.menu_id = m.menu_idwhere m.sys_type=1 and s.role_id in<foreach item=“roleId” collection=“array” open="(" separator="," close=")">#...原创 2019-11-12 20:26:59 · 7372 阅读 · 0 评论 -
update操作:两表更新(用一个表更新另一个表)的SQL语句
记2020/04/14数据库操作遇到的问题及解决办法。1.插入数据库,恰遇字段为数据库的关键字怎么办?mysql的做法是:用``把字段包起来,但是在pgsql需要用""包起来。2.把一个表查出的数据直接插入另一个表:保证字段对应即可。3.两表联查,把一张表的某字段更新到另一张表不积跬步无以至千里,不积小流无以成江河...原创 2020-04-14 15:04:40 · 11209 阅读 · 0 评论 -
按年、月、日统计数据sql写法
按年月日统计数据sql写法最近遇到安年月日统计的问题,短时间(几秒钟)还没头绪,所以总结一下,记录一下。----------写在前面的话###### 1.先看数据库,我随便找了一个有时间的数据库,没仔细去琢磨,将就用。2.我们先认识几个函数uploadtime:2019-12-08 14:49:30year(uploadtime) 获取时间字段中的年,结果为2019mont...原创 2020-01-08 22:24:58 · 12679 阅读 · 0 评论 -
数据库tinyint类型查询出来是false
数据库tinyint类型查询出来是false原因:由于MySQL中没有boolean类型,所以会用到tinyint类型来表示。数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true解决办法:让这个字段 加0例如:SELECT photopath,birthday,signature,(sex + 0) sexFROM sys...原创 2019-09-26 11:17:11 · 953 阅读 · 0 评论 -
describe是sql的关键字
问题:执行:SELECTmember_id,name,sex,signature,describe,photopath,role_id,team_id,sortFROM sys_team_member是无法执行的,原因:因为describe是sql语句的关键字。类似的key,primary key等等。解决办法:在查询的时候把它用引号引起来就可以了: SELECT ...原创 2019-10-23 16:32:26 · 2599 阅读 · 0 评论 -
mysql优化
本文概要概述为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢数据是存放在磁盘上的,读写速度无法和内存相比如何优化设计数据库时:数据库表、字段的设计,存储引擎利用好MySQL自身提供的功能,如索引等横向扩展:MySQL集群、负载均衡、读写分离SQL语句的优化(收效甚微)字段设计字段类型的选择,设计规范,...转载 2019-11-18 14:54:26 · 191 阅读 · 0 评论 -
MYSQL插入一条数据并返回自增id
写法如下:(干货) INSERT INTO sys_bug( bug_title, bug_type_id, civd_number, audit_time )VALUES( #{bug_title}, #{bug_type_id}, #{civd_number}, #{audit_time} ) <selectKey resultType=...原创 2019-09-09 14:10:01 · 2751 阅读 · 0 评论 -
oracle和mysql使用中的异同总结
oracle和mysql使用中的异同总结在使用中mysql和oracle经常会有不同的地方困扰自己,特地一一总结避免以后再被迷惑。①oracle的连接是url 、user、password,这里user是指一个连接下的一个数据库。而mysql的 在url中就指明了连哪个库,例如这里的mysqlurl: jdbc:mysql://localhost:3306/mysql?allowMultiQueries=true&useUnicode=true&characterEncoding原创 2020-07-19 14:49:36 · 433 阅读 · 0 评论 -
oracle和mysql插入数据时主键自增的方法
oracle和mysql插入数据时主键自增的方法mysql插入数据时,只要在navcat勾上主键的自动递增,那么它在插入数据时就会自动增加。在插入的时候sql语句:< insert id="insertToSysUser" useGeneratedKeys="true" keyColumn="user_id" keyProperty="userId" parameterType="com.sinux.qunz.sysm.entity.SysUserEntity">那么,在对象里机原创 2020-07-03 22:03:18 · 1016 阅读 · 0 评论 -
mysql里面的group by分组,如何把某字段的null值也分为一组?
一.业务需求在两表联查中,一个是字典表:另外一个业务表:按字典表的id与业务表的hazard_level_id关联。查出来的除了 按1,2,3,4分组还有一组无id编号的,即null也就是要按1,2,3,4,null进行分组。二.解决办法:1.在关联的时候,以业务表作左连接表,因为只有这样才能查出为null的数据。如果以那个字典表作为左表,那是只能查出按1234分类的。2.注意...原创 2019-11-06 15:29:26 · 6187 阅读 · 0 评论 -
SQL语句里面的时间函数
例如sql里面事件字段是2018-12-14 10:13:26要获取这个事件里面的年月日:获取:日SELECT DAY(record_time) FROM sys_honorrecord获取:月SELECT MONTH(record_time) FROM sys_honorrecord获取:年SELECT YEAR(record_time) FROM sys_honorrec...原创 2020-01-06 21:19:21 · 212 阅读 · 0 评论 -
MYSQL索引原理及使用
MYSQL索引原理及使用1、存储过程(在正式表演mysql的索引前我们先准备数据)1.1 创建表CREATE TABLE pa_emp ( pa_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, /*UNSIGNED存储非负数值*/ pa_empno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, /*编号*/ pa_ename VARCHAR(20) NOT NULL DEFAULT "", /*名字*/原创 2021-08-17 18:05:28 · 835 阅读 · 0 评论