SQL
记录和分享sql函数和SQL语法。
月轩居士
Archimedes said: give me a fulcrum,I will move the earth.Program ape said: give me a keyboard,I can change the world.
展开
-
添加索引场景分析
1、 表的某个字段值得离散度越高,该字段越适合选作索引的关键字。主键字段以及唯一性约束字段适合选作索引的关键字,原因就是这些字段的值非常离散。尤其是在主键字段创建索引时, cardinality (基数,集的势)的值就等于该表的行数。 MySQL 在处理主键约束以及唯一性约束时,考虑周全。数据库用户创建主键约束的同时, MySQL 自动创建主索引( primary index ),且索引名称为 Primary;数据库用户创建唯一性索引时, MySQL 自动创建唯一性索引( unique index )。原创 2022-11-15 16:32:38 · 546 阅读 · 0 评论 -
Oracle 数据库修改用户名和密码
一、修改用户名1.1 查出需要修改用户的id(个人理解是id,不一定准确)SQL>selectuser#,namefromuser$wherename='TEST';commit;1.2 更改用户名SQL>updateuser$setname=‘TEST_NEW‘whereuser#=需修改的用户ID;commit;1.3 更新数据SQL>altersystemcheckpoint;SQL>altersystem...原创 2021-09-07 17:09:22 · 5464 阅读 · 0 评论 -
MYSQL插入方法
我们常见的插入方法一般有这几种,普通插入语句、插入或更新、插入或替换、插入或忽略,应用在不同的场景中,在功能方面呢也会有所不同。1.普通插入语句insert into table ('a','b','c','d') values ('1','2','3','4');2、插入或更新如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用"INSERT INTO … ON DUPLICATE KEY UPDATE …"语句:情景示例:这张表..原创 2021-07-01 15:04:32 · 3060 阅读 · 0 评论 -
Oracle 生成不重复小写UUID
uuid:(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)原创 2020-12-20 17:23:18 · 1854 阅读 · 0 评论 -
Oracle 通过15位或18位身份证号码计算年龄、出生年月日、性别
15位身份证号码各位的含义:地址码(前六位数):表示身份证编码对象常住户口所在省份、地市,以及县(市、旗、区)的行政区划代码,1-2位数字表示所在地省、自治区、直辖市代码,第3、4位数字表示所在地地级市、盟、自治州代码,第5、6位数字表示所在地县(县级市、旗、区)的代码;出生日期码(第七位至十二位):表示身份证编码对象出生的年、月、日,年、月、日代码之间不用分隔符,比如670401代表1967年4月1日;顺序码(第十三至十五位):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人.原创 2020-12-04 12:57:54 · 4640 阅读 · 0 评论 -
ORACLE 两表关联更新三种方式
创建如下表数据select * from t1 ;select * from t2;现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致。方式1,update常见陷阱:UPDATE T1 SET T1.FMONEY = (select T2.FMONEY from t2 where T2.FNAME = T1.FNAME)执行后T1结果如下:有一行原有值,被更新成空值了。正确写法:UPDATE T1 SET T1.FMONEY原创 2020-11-24 20:33:28 · 5415 阅读 · 2 评论 -
SQLServer 移除数据中换行符和回车符
移除回车符char(13)代表回车符语法:update 表名 set 字段名 =replace(字段名,char(13))WHERE CHARINDEX( CHAR(13) , 字段名) > 0例如:update master_locationSET street_number = REPLACE(street_number, CHAR(13), '') WHERECHARINDEX( CHAR(13) , street_number) > 0--移除换行符ch..原创 2020-10-25 16:03:35 · 2291 阅读 · 0 评论 -
SQLServer统计所有表数据量
--查询数据库中所有的表名及行数SELECT a.name , b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE ( a.type = 'u' ) AND ( b.indid IN ( 0, 1 ) )ORDER BY b.rows DESCSELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON...原创 2020-10-24 17:19:27 · 2993 阅读 · 0 评论 -
Oracle 函数收集及使用详情
substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。实例:SELECT SUBSTR('Hello SQL!', 1) FROM demo --截取所有字符串,返回'Hello SQL!'SELECT SUBSTR('Hello...原创 2020-07-08 16:21:56 · 276 阅读 · 0 评论 -
mysql 排序后 分页 第一页数据和第二页数据部分数据重复问题
问题描述数据分页时需要根据数据记录创建时间create_time字段倒序,即使用order by create_time desc limit ?,?,但是我们会发现,前端进行请求时获取的数据并不正确,分页中出现了一定的重复数据。问题原因期初还很好奇,总数没问题,总查询也没问题,为什么数据会重复了,然后会把部分数据给覆盖了。后来,通过查看SQL发现,是根据时间进行排序的,然而 这个时间 恰...转载 2019-12-31 11:13:55 · 1033 阅读 · 0 评论 -
提高SQL 执行效率
用的数据库是mysql5.6,下面简单的介绍下场景课程表create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条学生表:create table Student(id int PRIMARY KEY,name varchar(10))数据70000条学生成绩表SCCREATE table ...原创 2019-11-16 17:02:55 · 140 阅读 · 0 评论 -
MYSQL存储过程
MySQL存储过程1.1 CREATE PROCEDURE (创建)CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块END注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前转载 2014-12-03 20:05:18 · 570 阅读 · 0 评论 -
SQLserver中ISNULL函数与Mysql中IFNULL函数的用法
本文介绍下,sql server中的isnull函数,以及mysql中的ifnull函数,介绍二者的具体用法与区别,有兴趣的朋友可以研究下哦。先来看SQL Serve的ISNULL函数:ISNULL(check_expression,replacement_value)1、check_expression与replacement_value的数据类型必须一致。2、如果c原创 2015-01-09 16:08:05 · 4854 阅读 · 1 评论 -
mysql中isnull,ifnull,nullif的用法
今天看到到一个MySQL的bug,select ifnull(date(now()), 0) div 100; 结果居然是20select date(now()) div 100;这个结果才是正确的。另外mysql中isnull,ifnull,nullif的用法如下:isnull(expr) 的用法:如expr 为null,那么isnu转载 2015-01-09 16:11:11 · 861 阅读 · 0 评论 -
mysql sql语句大全
1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice'disk','testBack','c:\mss原创 2015-01-14 15:53:59 · 1179 阅读 · 0 评论 -
SQL的四种连接-左外连接、右外连接、内连接、全连接
今天在看一个遗留系统的数据表的时候发现平时查找的视图是FULL OUT JOIN的,导致平时的数据记录要进行一些限制性处理,其实也可以设置视图各表为右外连接并在视图上设置各列的排序和筛选条件就可以达到效果。联接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定联接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选联接条件所选的行。 联接可分为以下转载 2015-12-08 19:13:26 · 514 阅读 · 0 评论 -
MSSQL 2008自动备份数据库
打开“Microsoft SQL Server Management Studio ” ,启动SQL Server代理, 点开“代理”下的“作业“ ”右键新建作业,1在”常规“内写作业名称2点“步骤”,“新建”,输入步骤名称,类型选择“T-SQL”脚本,选择数据库名,在命令内贴上以下代码(以下以备份 master 数据库为例,数据库文件备份在 D:\backup\ 下):decl转载 2016-04-06 11:40:54 · 654 阅读 · 0 评论 -
SQL语句集锦
本文章主要写的是我自己在工作中使用到的十分有用的SQL语句,为防止遗忘故特将写此文章记录下来,后续文章的内容将不断的更新、完善。一、更新(Update) 1.批量更新SQLUPDATE categoriesSET display_order = CASE id WHEN 'id1'THEN 'value1' WHEN'...原创 2017-07-21 15:21:36 · 371 阅读 · 0 评论 -
高性能SQLServer分页语句
第一种方法:效率最高 1 2 3 4 5 6 7 8 9 10 11 SELECT TOP 页大小 * FROM( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 )as A WHE...原创 2018-06-23 11:52:51 · 7076 阅读 · 1 评论 -
Java - 批量插入用法(jdbcTemplate)
一个List类型的:public void insertBooks(Listbook){final ListtempBook=book;String sql="insert into book(name,pbYear)values(?,?)";jdbcTemplate.batchUpdate(sql, newBatchPreparedStatementSetter(){转载 2014-12-03 20:12:02 · 938 阅读 · 0 评论