
数据库SQL
文章平均质量分 55
数据库Sql(mysql、Oracle)使用、语法
HernSong
HernSong
展开
-
MySQL——避免重复插入数据
insert ignore:insert ignore 会忽视数据库中已经存在的数据,根据主键或者唯一索引判断,如果数据库没有数据,就会插入新的数据,如果有数据的话就跳过这条数据 replace into:replace into 会尝试先插入数据,如果发现冲突进行删除。否则不做任何操作。 insert on duplicate key update:如果在insert into 语句末尾指定了 insert on duplicate key update 如果出现了重复值,则会在出..原创 2021-01-25 22:35:05 · 584 阅读 · 0 评论 -
MySQL 8——设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
修改变量即可解决该问题。注意:8.0 比5.7多了带“.”的变量导致只设置一半是不够的,分别执行:set global validate_password.policy=0;set global validate_password.length=4;...原创 2020-04-14 17:55:19 · 2172 阅读 · 0 评论 -
MySQL——my.cnf 配置参数详解
#*** client options 相关选项 ***##以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时候指定这些选项。[client]port = 3309socket = /usr/local/mysql/tmp/mysql.sock[mysqld]...转载 2020-04-04 22:27:36 · 703 阅读 · 0 评论 -
C3P0、DBCP、Druid三大连接池对比
转载 2020-01-14 08:37:21 · 523 阅读 · 0 评论 -
MySQL中SQL语句的执行顺序
sql执行顺序(1)from(3) join(2) on(4) where(5)group by(开始使用select中的别名,后面的语句中都可以使用)(6) avg,sum....(7)having(8) select(9) distinct(10) order by从这个顺序中我们不难发现,所有的 查询语句都是从from开始执行的,在执行过程中,...转载 2019-09-29 15:04:07 · 269 阅读 · 0 评论 -
Centos 7 安装 MySQL8.0(通过 rpm 安装包进行安装)
环境:MySQL8.0.17 x 64 rpm、CentOS7.6 x 64位、wget下载工具、Navicat for mysql11(用于测试数据库连接) 删除MariaDB(若没有可以跳过) (由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉Ma...原创 2019-09-29 14:33:20 · 5484 阅读 · 4 评论 -
MySQL逻辑架构
MySQL逻辑模块组成Connectors:指的是不同语言中与SQL的交互。 Management Serveices & Utilities:系统管理和控制工具 Connection Pool: 连接池,管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Se...转载 2019-09-28 21:57:02 · 313 阅读 · 0 评论 -
自增 ID 用完了怎么办 ?
因此在实际中,你根本等不到自增主键用完到情形!前言在面试中,大家应该经历过如下场景:面试官:"用过mysql吧,你们是用自增主键还是UUID?" 你:"用的是自增主键" 面试官:"为什么是自增主键?" 你:"因为采用自增主键,数据在物理结构上是顺序存储,性能最好,blabla…" 面试官:"那自增主键达到最大值了,用完了怎么办?" 你:"what,没复...转载 2019-08-29 13:51:30 · 7200 阅读 · 3 评论 -
数据库连接池的大小
连接数计算公式:连接数 = ((核心数 * 2) + 有效磁盘数)前言当我们在寻找数据库的性能瓶颈时,大致可归为三类(内存的确是需要考虑的,但是比起磁盘IO和网络IO,稍显微不足道):CPU、磁盘 IO、网络 IO。假设我们不考虑磁盘 IO 和网络 IO,就很好定论了,在一个 8 核的服务器上,数据库连接数/线程数设置为 8 能够提供最优的性能,如果再增加连接数,反而会因为上下文切换...转载 2019-05-20 08:14:20 · 1130 阅读 · 0 评论 -
并发事务所导致的问题
•当同一个应用程序或者不同应用程序中的多个事务在同一个数据集上并发执行时, 可能会出现许多意外的问题•并发事务所导致的问题可以分为下面三种类型:–脏读: 对于两个事物 T1, T2, T1 读取了已经被 T2 更新但 还没有被提交的字段. 之后, 若 T2 回滚, T1读取的内容就是临时且无效的.–不可重复读:对于两个事物 T1, T2, T1 读取了一个字段, 然后 T2 更新了...转载 2019-05-19 11:33:39 · 490 阅读 · 0 评论 -
MySQL/MariaDB中不使用utf8而使用utf8mb4的原因
最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误:Incorrectstringvalue:‘ð<…’forcolumn ‘summary’ at row1我用的是UTF-8编码的客户端,服务器也是UTF-8编码的,数据库也是,就连要保存的这个字符串“转载 2019-05-05 09:12:35 · 1511 阅读 · 0 评论 -
一条SQL语句执行得很慢的原因有哪些
一、开始装逼:分类讨论一条SQL语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。1、大多数情况是正常的,只是偶尔会出现很慢的情况。2、在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。针对这两种情况,我们来分析下可能是哪些原因导致的。二、针对偶尔很慢的情况一条SQL大多数情况正常,偶尔...转载 2019-05-05 09:07:14 · 462 阅读 · 0 评论 -
javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify的解决办法
错误信息STACKTRACE:javax.net.ssl.SSLException: closing inbound before receiving peer's close_notifyat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129)at java.base/sun.sec...原创 2019-04-19 17:14:52 · 9939 阅读 · 2 评论 -
Oracle——jdbc连接驱动
jdbc.driverClass = oracle.jdbc.driver.OracleDriverjdbc.url = jdbc:oracle:thin:@127.0.0.1:1521:orcl##127.0.0.1可以写成localhost或是数据库的ip地址##orcl可以写成数据库当时定义的名称,若没有其他设置,默认为orcljdbc.username = rootjdbc....原创 2019-03-10 11:43:52 · 6014 阅读 · 0 评论 -
Oracle——游标
简介PL/SQL 是用游标来管理 SQL 的 SELECT 语句的 。游标是为了处理这些语句而分配的一大块内存。 它提供了对一个结果集进行逐行处理的能力 , 可看作是一种特殊的指针 . 它与某个查询结果集相关联 , 可以指向结果集的任意位置 , 以便对指定位置的数据进行处理 。使用它可以在查询数据的同时对数据进行处理。游标类型隐式游标1、使用DML语句(增删改)和单行查询语...原创 2019-03-08 14:52:09 · 575 阅读 · 0 评论 -
Oracle——PLSQL的两个属性类型%type 和%rowtype
1.%TYPE定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE。说白了就是将查询到的某个列的结果要赋给 一个变量这会就用到了 %TYPE例:---查询员工号为7369的补助declareempcom emp.comm%type ; --声明一个empcom变量begin select comm...转载 2019-03-08 13:17:30 · 1128 阅读 · 0 评论 -
Oracle——异常输出
在运行程序时出现的错误叫做异常。发生异常后,语句将停止执行,控制权转移到 PL/SQL 块的异常处理部分。如果发生与某个异常名称相匹配的异常时,程序就会执行与其相应的THEN后面的代码,若没有相匹配的异常则执行OTHERS对应的TEHN后面的代码。异常有两种类型:1、系统定义异常 - 当 PL/SQL 程序违反 Oracle 规则或超越系统限制时隐式引发。2、用户定义异常 - 用...原创 2019-03-08 11:33:57 · 2590 阅读 · 0 评论 -
Oracle——循环(LOOP、WHILE、FOR)
循环控制用于重复执行一系列语句循环控制语句包括:LOOP、EXIT 和 EXIT WHEN、END LOOP循环控制的三种类型:LOOP - 基本循环WHILE - 根据条件循环FOR - 固定次数的循环create table T_TEST( id number(5), num number(10));LOOP语法LOOP...原创 2019-03-08 11:11:15 · 1347 阅读 · 0 评论 -
Oracle——函数(单行函数、分组函数、分析函数)
Oracle SQL提供了用于执行特定操作的专用函数。这些函数大大增强了SQL语言的功能。SQL函数的分类:单行函数对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,可以出现在 SELECT 子句中和 WHERE 子句中 比如:MOD(x,y)返回x除以y的余数(x和y可以是两个整数,也可以是表中的整数列)。常用的单行函数有:Ø字符...原创 2019-03-06 13:28:59 · 4685 阅读 · 0 评论 -
Oracle——集合操作符(MINUS、INTERSECT、UNION ALL)
集合操作符将两个查询的结果组合成一个结果常见集合操作符:MINUS(减去),INTERSECT(交集)和UNION ALL(并集);1、union 操作符返回两个查询的不重复的所有行。2、intersect 操作符只返回两个查询的公共行。3、minus 操作符返回从第一个查询结果中排除第二个查询中出现的行。统计学习操作系统(1)或数据结构(2)且分数都在70分以...原创 2019-03-06 10:07:53 · 5720 阅读 · 0 评论 -
SQL——交叉联接(CROSS JOIN)
交叉连接的操作,它们都返回被连接的两个表所有数据行的笛卡尔积,返回到的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。惟一的不同在于,交叉连接分开列名时,使用CROSS JOIN关键字而不是逗号。一个交叉联接(CROSS JOIN)接收两个分别有N行和M行的表T1和T2,然后返回一个包含交叉乘积 N×M 条记录的联接表。例如,l我们想知道学生和课程有多少可...原创 2019-03-05 10:41:46 · 2914 阅读 · 0 评论 -
Oracle——截断表
Oracle中若删除表中的某一条数据,还可以通过回滚操作(rollback)进行回滚,假如想清空一张表的数据,但是又不想使其能进行回滚操作,就可以立刻释放资源,这时就需要使用截断表了。它的主要功能就是彻底删除数据,使其不能进行回滚。这里我打个比方大家就立刻能明了它的作用。大家众所周知,当我们在自己的PC(personcomputer)上删除某一个文件,它并没有彻底删除而是进入了回收站,你要在回收站...转载 2019-03-04 18:23:47 · 3912 阅读 · 0 评论 -
Oracle——获取当前系统时间以及插入日期型数据(to_date的用法)
获取当前系统时间日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒主要的日期时间类型有:1、DATE - 存储日期和时间部分,精确到整个的秒语法Select sysdate from dual;2、TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位语法Select systimestamp from dual;插...转载 2019-03-04 16:20:09 · 19033 阅读 · 0 评论 -
Oracle——基本数据类型总结
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR...转载 2019-03-04 15:57:36 · 398 阅读 · 0 评论 -
Oracle——用户、角色、权限的创建、删除、修改
系统权限和对象权限系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,selec...原创 2019-03-04 15:15:15 · 19882 阅读 · 1 评论 -
Windows中Oracle常见服务
OracleServiceSID该服务启动系统标识符为SID的数据库实例,其中SID是安装Oracle时输入的数据库名称。OracleHOME_NAMETNSListener该服务启动数据库服务器的监听器,监听器接受来自客户端应用程序的连接请求。若监听器未启动,则客户端将无法连接到数据库服务器OracleDBConsoleSID启用浏览器管理界面时必须启动的进程...原创 2019-03-04 10:20:28 · 910 阅读 · 0 评论 -
oracle数据库完全卸载步骤
1.关闭oracle所有的服务。可以在windows的服务管理器中关闭;2.打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务!3.打开注册表,找到路径: HKEY_LOCAL_MACHI...转载 2019-03-03 10:50:35 · 527 阅读 · 0 评论 -
Windows安装Oracle11R2
下载 Oracle(官网,需要有Oracle账户并且登录) http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip...原创 2019-03-03 10:48:40 · 1880 阅读 · 0 评论 -
oracle INS-13001 环境不满足最低要求解决方法
方式一打开【cvu_prereq.xml】文件,找到value=windows 7的OPERATING_SYSTEM段,复制整段,并修改Release = 6.2, value = windows 10;如下:<OPERATING_SYSTEM RELEASE="6.2"> <VERSION VALUE="3"/> <...原创 2019-03-03 10:46:10 · 6840 阅读 · 1 评论 -
ORA-12705: Cannot access NLS data files or invalid environment specified解决方法
原因安装了多个Oracle相关软件,设置了不同的编码以及账户,安装了多个Oracle Client软件,在登录时可能会选择一个不正确的账户。官方解释点击查看Oracle官方解释For ORA-12705 errors caused by invalid NLS_LANG settings, you need to verify that it is "unset" at the s...原创 2019-03-02 19:26:21 · 15361 阅读 · 1 评论 -
Loading class `com.mysql.jdbc.Driver'. The new driver class is `com.mysql.cj.jdb解决方法
抛异常的主要信息Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the dr...原创 2019-02-17 15:40:54 · 571 阅读 · 0 评论 -
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä'解决方法
原因MySQL8.0不在使用旧版的数据库连接地址。解决方法jdbc.url=jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 ...原创 2019-02-17 15:36:20 · 353 阅读 · 0 评论 -
MySQL设置表引擎的方法
MySQL所支持的引擎MyISAM引擎与InnoDB引擎主要区别1、创建表时指定相应引擎语法:CREATE TABLE 表名称( 字段名称 数据类型……) ENGINE = 引擎名称;例如CREATE TABLE user_content( id INT, str VARCHAR(50)) ENGINE=MyISAM DEFAULT CHAR...原创 2019-02-14 21:25:36 · 4935 阅读 · 0 评论 -
事务的基本要素、事务的隔离级别
事物的基本概念事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务管理对于企业级应用而言至关重要,它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性。就像银行的自动提款机ATM,通常ATM都可以正常为客户服务,但是也难免遇到操作过程中及其突然出故障的情况,此时,事务就必须确保出故障前对账户的操作不生效,就像用户刚才完全没有使...原创 2019-02-13 21:46:05 · 385 阅读 · 0 评论 -
SQL Developer连接Oracle数据库
(需要注册Oracle账户,建议下载含有JDK的版本)SQL Developer官方下载地址:https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html 注意点:(1)需要在虚拟机中打开数据库以及监听程序。(2)虚拟机中网络配置为仅主机(Host-Only)适配器登录...原创 2019-01-03 15:18:41 · 1167 阅读 · 0 评论 -
PLSQL Developer连接远程Oracle配置
环境虚拟机Linux操作系统32位,Oracle11g 32位。物理机WIN7操作系统64位。安装instantclient-basic-win-x86-64-11.2.0.1.0.zip是64位,plsqldev1105_x64.exe也是64位的。如果物理机WIN7操作系统是32位,则只能安装plsqldev1105_x86.exe,是32位,最后在登录PLSQL Developer的时候...原创 2019-01-03 15:14:14 · 1232 阅读 · 0 评论 -
MySQL——触发器
触发器触发器是MySQL响应DELETE、INSERT、UPDATE语句(除此之外的其他MySQL语句不支持触发器)而自动执行的一条MySQL语句(或者位于BEGIN和END语句之间的一组语句)。注意:1、创建触发器可能需要特殊的安全访问权限,但是触发器的执行时自动的,如果INSERT、UPDATE、DELETE语句能够执行,则相关的触发器也能执行。2、应该用触发器保证数据的一致性...原创 2018-11-09 23:11:43 · 527 阅读 · 0 评论 -
MySQL——简单的安全管理、数据库维护、性能优化
访问控制MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权限,既不能多也不能少,即用户不能对过多的数据具有过多的访问权限。1、对于非现实的数据库实验时可以使用root用户进行登录,但是在现实世界的日常工作中,决不能使用root(必须严肃对待root登录的使用,仅在绝对需要使用时才能使用它,如不能登录其他管理账号时使用root),应该创建一系列的账户,对这些账号分配不同的...原创 2018-11-09 22:43:18 · 2779 阅读 · 0 评论 -
MySQL——管理实务处理
注意:并非所有的MySQL数据库引擎都支持事务处理,MyISAM引擎不支持明确的事务处理管理,InnoDB引擎支持事务处理管理,如果应用中需要事务处理功能,一定要选用正确的引擎。事务处理事务处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行。一般来说,事务是必须满足4个条件: Atomicity(原子性)、Consistency(稳定性)、Isola...原创 2018-11-08 09:26:56 · 521 阅读 · 0 评论 -
MySQL——游标
游标游标是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后没应用程序可以根据需要滚动或浏览其中的数据。注意:1、和其他DBMS相比,MySQL游标只能用于存储过程、函数、循环处理。2、游标只能一行一行操作,在数据量大的情况下,是不适用的,速度过慢,同时会造成内存不足的现象,给服务器带来严重的性能问题。而且数据库大部...原创 2018-11-06 22:47:28 · 3153 阅读 · 0 评论