数据库SQL
大雷!
士不可不弘毅任重而道远!
展开
-
or null使用纪要
目录背景问题说明Demo(用例)背景:sql处理过程中,特此纪要!问题or null是什么?or null能做什么?or null能用在哪里?说明: or属于逻辑运算符, or左右两边都存在对应的表达式, 当左边的表达式为true时, 直接跳过执行下一步, 不会计算右边的表达式.: 当左边的表达式返回false后, 此时or null会使用null作为返回值返回.: or null可以用在逻辑校验中,来处理数据存在null的情况....原创 2021-06-25 13:44:23 · 446 阅读 · 1 评论 -
数据插入中文是sql报错“Incorrect string value: ‘\xE4\xB8\xAD‘ for column ‘c2‘ at row 1“
背景:模拟处理生产sql,建表后数据初始化时出现此问题,特此纪要!问题数据插入/修改是报错"Incorrect string value: '\xE4\xB8\xAD' for column 'c2' at row 1"如何解决?说明造成这个问题出现的原因是中文存储异常导致.正常数据库对于各种变码的数据都能够存储,但是这种情况是因为在数据库建表阶段没有指定当前数据表的编码类型.因此默认存储的变码类型不支持中文存储,最终落到库里就是乱码,...原创 2021-06-24 16:47:28 · 3067 阅读 · 0 评论 -
虚拟列构建纪要
背景:sql处理过程中,特此纪要!问题1. 什么是数据库虚拟列?2. generated always的作用是什么?3. 虚拟列如何构建?说明 1> 虚拟列是数据辅助查询的一种手段, 主要用来提升数据查询的效率. 2> 申明一个虚拟列并且使用很简单,语法主要有两种,为了标识性的显现出具体的处理sql,一般会用对应的虚拟列初始化关键字"generated always". 3> ...原创 2021-06-24 16:26:32 · 244 阅读 · 0 评论 -
DELETE 和 TRUNCATE 的区别
背景: sql处理过程中,特此纪要!问题: DELETE 和 TRUNCATE 的区别是什么? DELETE(DML - Data Manipulation Language)是数据库操作语言, 被操作的数据可以有事件标记, 可以被恢复回滚.TRUNCATE(DDL - Data Definition Language)是数据库定义语言, 因此被操作的数据一般不能恢复.下面示例一则DELETE对应的数据恢复处理:-- create tableCREATE TABLE t4( id .原创 2021-06-24 15:20:24 · 313 阅读 · 0 评论 -
MySQL分组函数group_concat()的使用纪要
背景:公司项目上遇到一个需要回显用户所在的区域分组数据需求,一时没有好的解决方案,最终寻得此函数特此纪要!问题:如何将1-2-n的数据在数据库层将其一条返回?(n时逗号分割)group_concat()函数一举搞定:SELECT GROUP_CONCAT(DISTINCT area) area, GROUP_CONCAT(DISTINCT group_name) groupName FROM USER_AREA_GROUP GROUP BY user_id.原创 2021-02-04 14:27:25 · 390 阅读 · 0 评论 -
MySQL枚举类型的使用纪要
背景:有空了过来简单纪要一下。问题: 1. MySQL中的枚举类型是什么? 2. MySQL中的枚举类型使用场景是什么? 3. MySQL中枚举类型的使用语法都有哪些?1. MySQL中的枚举类型是什么?枚举类型的存在价值就是规范化输入参数。2. MySQL中的枚举类型使用场景是什么?举个例子:假若某个事件你对它的预期结果只希望在后续的运行中存在既定的几种数据,那么此时就可以使用枚举来规范对应的结果集。3. MySQL中枚举类型的使用语法有哪些? 创建枚举.原创 2021-02-04 13:53:45 · 293 阅读 · 0 评论 -
in和exists的区别和使用场景纪要
背景:闲来有空整理一下,特此纪要!问题:SQL查询中in和exists的区别和使用场景是什么?1. in的使用场景是什么? :日常查询中会有多值包含的情况处理,此时就需要in来解决。(Eg:in('a','b','n');) :当大表数据驱动小表数据的时候。(此时用in优于exists)2. exists的使用场景是什么? 当小数据表需要主动驱动大数据表时,此时用exists优于in。3. in和exists的区别是什么? 哈哈 使用场景不同。至此,这个问题记录.原创 2021-01-24 11:40:59 · 729 阅读 · 0 评论 -
MySQL索引相关纪要
背景:为了加强基础性建设,抽空整理一下MySQL相关的优化纪要。1. 索引是什么?索引是一种快速检索数据的数据结构。2. 索引的意义是什么?提升数据检索效率,减轻数据处理分担。3. 索引创建的场景是什么?随着系统数据的量级提升,在硬件条件达标的情况下,数量达到一定量级后就需要创建。4. 索引的创建如何进行?CREATE INDEX [INDEX_NAME] ON FROM [TABLE_NAME]([COLUMN_NAME1],[COLUMN_NAME2],[...]);5. 索引如何.原创 2021-01-23 11:16:01 · 131 阅读 · 0 评论 -
Oracle忘记密码处理
1. doc命令直接绕进后台管理: sqlplus "/ as sysdba"2. 直接修改用户密码: alter user user_name identified by password;3. 退出重新进入plsql控制台; sqlplus原创 2020-03-27 16:20:11 · 392 阅读 · 0 评论 -
MySQL和Oracle的日期转换使用纪要
DATE_FORMAT(COLUMN_NAME, ’%Y-%m-%d %H:%i:%s’) AS COLUMN_NAME说明: %Y 2020/1997..... %m 10/2/......MySQL当前日期获取: SELECT DATE_FORMAT(sysdate(), '%m-%d')原创 2020-11-17 10:04:34 · 921 阅读 · 0 评论 -
MySQL STR_TO_DATE()将字符串类型转时间类型是结果为Null异常纪要
背景: MySQL数据库中需要将"14:00"字符串数据转换为日期类型后做大小的比较,但是在转换过程中却出现了null的情况.特此纪要!问题: MySQL STR_TO_DATE()将字符串类型转时间类型是结果为Null?问题原因: 转换格式不对.错误原型: SELECT STR_TO_DATE(COLUMN_TIME, '%H:%m') FROM TABLE WHERE ID = 1解决办法: SELECT STR_TO_DATE(COLUMN_TIME, .原创 2020-11-17 09:20:55 · 3813 阅读 · 0 评论 -
SQL查询重复数据出现的次数
/** * 查询重复数据; * 以下图为例:KEYS-001的数据在数据表中重复出现了两次; */SELECT KEYS , COUNT(1) FROM [TLADDING] GROUP BY [KEYS] HAVING COUNT([KEYS]) > 1原创 2020-05-19 14:50:18 · 12206 阅读 · 1 评论 -
Oracle日期、时间查询及操作纪要
-- Oracle数据库日期|时间查询SELECT SYSDATE FROM DUAL;SELECT TO_CHAR(SYSDATE , 'YYYY') FROM DUAL; -- 年SELECT TO_CHAR(SYSDATE , 'MM') FROM DUAL; -- 月SELECT TO_CHAR(SYSDATE , 'DD') FROM DUAL; -- 日SELECT ...原创 2019-02-20 14:41:25 · 494 阅读 · 0 评论 -
数据库基础sql
-- 查询所有数据SELECT * FROM [TABLE_NAME];-- 查询数据总量SELECT COUNT(*) AS COUNT FROM [TABLE_NAME]; -- 清空表内所有数据 ALL_DATA。DELETE FROM [TABLE_NAME];-- 清空表内指定参数的行级数据。DELETE [TABLE_NAME] WHERE [COLUMN_NAM...原创 2018-12-04 08:50:11 · 329 阅读 · 0 评论 -
SQL漏洞注入攻击
SQL漏洞注入攻击使用statement进行sql处理存在安全隐患eg:String sql = "select * from users where username='"+name+"' and password='"+password+"'";stmt = conn.createStatement();stmt.executeQuery(sql); 第一次登录:请输入用户名: ...原创 2018-12-04 23:33:30 · 678 阅读 · 0 评论 -
ORACLE_常用SQL纪要
-- 添加“email”列到表格的末尾列。ALTER TABLE TABLE_NAME ADD email VARCHAR(60);-- 添加“emal”列到指定“name”列之后。ALTER TABLE TABLE_NAME ADD email VARCHAR(60) AFTER name;-- 新添加“email”列到表格的首列。ALTER TABLE TABLE_NAME A...原创 2018-06-10 10:44:31 · 6813 阅读 · 0 评论 -
FULL JOIN 数据库全连接查询SQL
-- 普通查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 , TABLE_NAME T2 WHERE T1.ID = T2.T1_ID AND T1.STATUS = '1';-- FULL JOIN查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 FULL JOIN TABL...原创 2018-05-17 16:53:16 · 11689 阅读 · 0 评论 -
Oracle SQL报错问题集锦-待重新整理
-- 1.-- 问题描述:Oracle-报错:文字与格式字符串不匹配(ORA-01861)-- 问题原因: 目前解决完后得出结论:该问题一般会出现在有关时间sql处理的问题上-- 解决办法 : 进行类型转换-- eg: TO_DATE('2015-02-02','YYYY-MM-DD HH24:MI:SS')-- 2.-- 问题描述: Oracle安装后创建用户,建表等都正...原创 2018-05-03 09:59:32 · 5436 阅读 · 0 评论 -
SQL-TOP子句
MYSQL TOP: SELECT TOP 2 FROM TABLE_NAME_1 T1 ORACLE TOP: SELECT * FROM TABLE_NAME_2 T2 WHERE ROWNUM <=2注:top子句在Oracle中不支持,可以用ROWNUM替代原创 2018-05-10 10:19:40 · 168 阅读 · 0 评论 -
SQL通配符
SQL通配符% :模糊查询(首查['_%'],包含查['%_%'],结尾查['%_'])._ :字符代替模糊查(首查['_%'],包含查['%_%'],结尾查['%_']).[charlist] :多字段字符模糊查(首查[A1,A2,A3]%,包含查%[A1,A2,A3]%,结尾查%[A1,A2,A3]),[!charlist] or [^charlist] :多字段字符不包含模糊查(首查[!A1...原创 2018-05-10 10:44:08 · 203 阅读 · 0 评论 -
SQL运算符
SQL运算符AND : 只查询满足条件数据.OR : 查询条件满足其一即可.AND|OR可以在WHERE子句中把两个或多个条件结合起来.原创 2018-05-10 10:49:36 · 1389 阅读 · 0 评论 -
SQL排序子句 ORDER BY
SQL排序子句 ORDER BYORDER BY : 排序语句,默认升序,DESC降序!原创 2018-05-10 10:57:18 · 1784 阅读 · 0 评论 -
BETWEEN AND 操作符
BETWEEN AND 操作符SELECT * FROM TABLE_NAME T WHERE T.NAME BETWEEN 'A' AND 'B';SELECT * FROM TABLE_NAME T WHERE T.NAME NOT BETWEEN 'A' AND 'B';原创 2018-05-11 11:01:39 · 4502 阅读 · 0 评论 -
ALIAS 语法-待重新整理
ALIAS 语法SELECT * FROM TABLE_NAME AS TSELECT T.PRODECT_PASSWORD AS TP FROM TABLE_NAME AS T原创 2018-05-11 11:01:19 · 604 阅读 · 0 评论 -
DELETE FROM TABLE_NAME 数据库删除行数据SQL
DELETE FROM TABLE_NAME 数据库删除行数据SQLDELETE FROM TABLE_NAME1 WHERE ID=2DELETE FROM TABLE_NAME2. |DELETE * FROM TABLE_NAME2. 删除TABLE_NAME2表中所有列注:每删除一条会在日志中记录.若论删除效率TRUECATE效率要更高...原创 2018-05-10 11:36:13 · 17198 阅读 · 0 评论 -
TRUECATE TABLE TABLE_NAME 数据库删除数据SQL
TRUECATE TABLE TABLE_NAME 数据库删除数据SQLTRUECATE TABLE TABLE_NAME1.|删除表中所有行数据注:TRUECATE TABLE TABLE_NAME 与 DELETE FROM TABLE_NAME 都可以删除表内所有的行数据,但唯一的不同在于TRUECATE TABLE TABLE_NAME 效率要高于DELETE FROM TABLE_NAM...原创 2018-05-10 12:40:33 · 485 阅读 · 0 评论 -
DROP TABLE TABLE_NAME 删除数据库表SQL
DROP TABLE TABLE_NAME 删除数据库表SQLDROP TABLE TABLE_NAME.|删除完整的表,包括内容,结构,关联.所有的新增需重新建立表! 1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。 drop语句将删除表的结构被依赖的约束(constrain),触发器(tr...原创 2018-05-10 12:45:12 · 2248 阅读 · 0 评论 -
INNER JOIN 数据库内连接查询SQL
--普通查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 , TABLE_NAME T2 WHERE T1.ID = T2.T1_ID AND T1.STATUS = '1';--JOIN查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 INNER JOIN TABLE_NAME T...原创 2018-05-17 15:22:29 · 487 阅读 · 0 评论 -
LEFT JOIN 数据库左连接查询SQL
--普通查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 , TABLE_NAME T2 WHERE T1.ID = T2.T1_ID AND T1.STATUS = '1';--JOIN查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 LEFT JOIN TABLE_NAME ...原创 2018-05-17 15:41:05 · 2912 阅读 · 0 评论 -
RIGHT JOIN 数据库右连接查询SQL
-- 普通查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 , TABLE_NAME T2 WHERE T1.ID = T2.T1_ID AND T1.STATUS = '1';-- RIGHT JOIN查询SELECT T1.NAME , T2.ORDERNO FROM TABLE_NAME1 T1 RIGHT JOIN TA...原创 2018-05-17 16:18:33 · 445 阅读 · 0 评论 -
SQL关键字 in-待重新整理
in(): sql子查询 , 返回一个集合,所查条件包含在集合中,不属于对等的状态。例:select * from table_name1 as t where t.name in( select t2.name from table_name2 as t2 ) and t.number = 1000解释:查询 table_name1表 中 name包含 ...原创 2018-04-18 09:56:08 · 5048 阅读 · 1 评论