sql数据库

oracle 两个sql带有order by的使用union/union all的时候报错 'ORA-00933:sql命令未正确结束' 处理办法

删除回忆录丶 提交于 2020-02-28 14:00:54
错误语句:select id,name from s1 order by stime union all select id,name from s2 order by stime 报错原因:oracle 搜索到order by后认为整个select语句就该结束了但是后面还有union all所以数据库无法解析,导致报错 处理办法:with a1 as (select id,name from s1 order by stime) , a2 as (select id,name from s2 order by stime) select * from a1 union all select * from a2 来源: https://www.cnblogs.com/flyinghome/p/12132200.html

JDBC——PreparedStatement执行SQL的对象

ε祈祈猫儿з 提交于 2020-02-28 13:39:58
Statement的子接口,预编译SQL,动态SQL 功能比爹强大 用来解决SQL注入的 预编译SQL:参数使用?作为占位符,执行SQL的时候给?赋上值就可以了 使用步骤: 1.导入驱动jar包   复制jar包,粘贴到libs文件夹下。文件名可以任意,一般就叫libs   选择复制的jar包,右键,点击Add As Library 2.注册驱动 3.获取数据库的连接对象 Connection(本地的java代码和数据库的桥梁对象) 4.定义SQL语句   ①参数使用?作为占位符。例如:select * from user where username=? and password = ?; 5.获取执行SQL语句的对象 PreparedStatement Connection.prepareStatement(String sql) 6.给?赋值 7.执行SQL,接收返回结果,不需要传递SQL语句了(传递SQL语句时它父类Statement的方法,这个是子类特有的) 8.处理结果 9.释放资源 不使用Statement prepareStatement(String sql) 创建参数化的SQL语句发送到数据库的 PreparedStatement对象。 SQL注入 SQL注入:通过操作输入来修改SQL语句 在上个练习中,会产生SQL注入问题 ①用户名随便输 ②密码输入   

SQL SERVER 2008权限配置

谁说胖子不能爱 提交于 2020-02-28 12:44:39
我要的结果是这样:只能有查询表的权限,而且还要有运行SQL Server Profiler的权限。这样才能跟踪发现问题,当然解决问题是另外一回事,即不能有修改和更新存储过程的权限。 我在分配角色成员时,给相关的登录用户名赋予了"db_datareader"和"db_denydatawriter"的角色,这样就只有查询表的权限了。 但是运行SQL Server Profiler的时候,会提示“您必须是 sysadmin 固定服务器角色的成员或具有 ALTER TRACE 权限,才能对 SQL Server 运行跟踪。” 请问我现在该怎么办?难道我 要求的这两个权限不能同时成立? 1:>> 授予一个trace权限即可 use [master] GO GRANT ALTER TRACE TO [user] GO 2:>>只是授予查询存储过程的能力,但不能执行存储过程 use [master] GO grant view definition to [user] 固定服务器角色: 按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句。这条语句允许从文本文件中将数据导入到SQL Server 2008数据库中,为需要执行大容量插入到数据库的域账户而设计。 Dbcreator

MySQL-Cluster

那年仲夏 提交于 2020-02-28 10:20:44
MySQL-cluster 架构,节点,节点作用 原理: SQL 节点: 给上层应用层提供 sql 访问。 管理节点( MGM ): 管理整个集群。 启动,关闭集群。 通过 ndb_mgmd 命令启动集群 存储 / 数据节点: 保存 cluster 中的数据。 数据节点,可以提供副本。实现数据冗余。 NDB 引擎:是一种 “ 内存中 ” 的存储引擎 , 它具有可用性高和数据一致性好的特点。 NDB 引擎 MySQL Cluster 使用了一个 专用的基于内存的存储引擎 ——NDB 引擎,这样做的好处是速度快, 没有磁盘 I/O 的瓶颈, 但是由于是基于内存的,所以数据库的规模受系统总内存的限制, 如果运行 NDB 的 MySQL 服务器一定要内存够大,比如 4G, 8G, 甚至 16G 。 NDB 引擎是分布式的,它可以配置在多台服务器上来实现数据的可靠性和扩展性, 理论上 通过配置 2 台 NDB 的存储节点就能实现整个数据库集群的冗余性和解决单点故障问题。 小结:共三层节点 1. 管理节点( MGM ,对内管理存储节点) 2. 存储节点( NDB 存储引擎,对接管理节点和 SQL 节点,用于存储数据) 3.SQL 节点(对外接口 API ) 优缺点 优点 1. 高吞吐量和低延迟,使用 NDB 存储引擎(基于内存),存储数据速度快,没有 IO 瓶颈 2.灵活的分布式体系架构

SQL Server 2014里的性能提升

有些话、适合烂在心里 提交于 2020-02-28 09:11:48
在这篇文章里我想小结下SQL Server 2014引入各种惊艳性能提升!! 缓存池扩展(Buffer Pool Extensions) 缓存池扩展 的想法非常简单:把页文件存储在非常快的存储上,例如SSD硬盘,用来扩展缓存池。缓存池扩展来得非常方便,如果你不能给你的数据库服务器物理上增加更多的内存,可以考虑使用缓存池扩展。 资源调控器(Resource Governor) 资源调控器 首次是在SQL Server 2008里引入的,但那个时候还不是个成熟的技术,因为你不能在存储级别调控I/O操作,对于指定工作负荷组,你不能限制缓存池大小。在SQL Server 2014里这些都改变了,因为现在你可以压制I/O操作。限制缓冲池使用率还是不行,但谁会知道在SQL Server 2016里会怎样呢:)。 锁优先级(Lock Priorities) 或许你已经知道,在企业版本里,SQL Server提供你在线操作,或者我可以称它们为“近乎在线操作”。它们近乎是在线的,因为内部SQL Server还是要获取一些锁,这会导致阻塞情况。因此SQL Server 2014引入了 锁优先级 ,在那里如果有这样的情况发生,你可以控制SQL Server如何应对。 聚集列存储索引(Clustered Column Store Indexes) 在SQL Server 2014里引入的最热门的提升是

Oracle 课程一之Oracle体系结构

十年热恋 提交于 2020-02-28 07:16:34
课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理 1.Oracle数据库概述 •数据库:物理操作系统文件或磁盘的集合。 •实例:一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。 2. Oracle体系结构 任何硬件平台或操作系统下的ORACLE体系结构都是相同的, 包括如下四个方面: •物理结构 数据文件,日志文件,控制文件,参数文件。 •逻辑结构 表空间、段、区间、数据块。 •内存结 共享池,数据缓冲区,日志缓冲区,PGA。 •进程 用户进程、服务器进程、后台进程。 数据文件:select name from v$datafile; 控制文件:select name from v$controlfile; 日志文件:select member from v$logfile; 参数文件:$oracle_home/dbs/initSID.ora(从spfile转换,create pfile from spfile;) 归档日志文件:show parameter log_archive_dest 查看归档模式:archive log list SGA: show sga/show parameter sga/v$sgastat PGA:

使用SQL Server 2008的事务日志传送功能备份数据库

微笑、不失礼 提交于 2020-02-28 07:06:14
引言:SQL Server的事务日志传送备份是仅次于镜像的高可靠性备份方案,可以达到分钟级的灾难恢复能力。其项目实施成本,又远小于镜像的投入,因此是一种非常实用的备份解决方案。本文详细讲解了事务日志传送备份的实施过程。 一:系统要求 数据库服务器,名称Server-DW,Windows Server 2003 X64,安装SQL Server 2008,需要备份的数据库为"JKL_DW"。 备份服务器,名称Server-ETL,Windows Server 2003 X32,安装SQL Server 2008。 二:准备工作 1、在Server-ETL上创建文件夹,用于存放备份数据库,此例中命名为"jklDW"。 2、在Server-ETL上创建文件夹,用于存放为备份数据传送过来的事务日志。此例中命名为"LogBackup",然后共享此文件夹,共享名称为"Server-ETL\LogBackup$"。 3、在Server-ETL上创建文件夹,用于存放为还原数据库复制的事务日志。此例中命名为"LogCopy",然后共享此文件夹,共享名称为"Server-ETL\LogCopy$"。 4、为数据库"JKL_DW"创建一个完整备份。 (1)备份数据库 ─ 常规页 在“目标”处选择将数据库备份文件的路径。 (2)备份数据库 ─ 选项页 覆盖媒体: 改为"备份到新媒体集并清除所有现有备份集"

SQL server :建立数据库和表

只愿长相守 提交于 2020-02-28 06:47:38
2. 建立数据库 2.1 通过SSMS建立数据库 2.2 通过SQL语句建立数据库 3. 建立表 3.1 通过SSMS建立表 3.2 通过SQL语句建立表 1.前言 配置是win10+SQL Server 2012,使用的GUI管理工具是SQL Server 2012自带的SQL Server Management Studio(以下简称 SSMS )。本系列主要学习SQL Server基础,目的主要是为了使用Python连接、使用数据库。另外在这里贴上 SQL Server 2012下载地址 。 2.建立数据库 2.1 通过SSMS建立数据库 2.1.1打开SSMS,连接上数据库。 如图所示,找到数据库,右键单击数据库,选择新建数据库。 2.1.2在数据库名称处输入SSMSTest,选择确定。 (主要数据文件:*.mdf,日志文件*.ldf,次要数据文件*.ndf) 2.1.3右键数据库点击刷新或者按F5,然后就能在数据库下面看到刚刚建立的SSMSTest了。 (可以看到SSMSTest左边的图标是圆柱体,可以理解为每一个圆柱体都代表着一个数据库。) 2.1.4至此,已经建立了名为SSMSTest的数据库。 2.2 通过SQL语句建立数据库 2.2.1在最开始的界面点击新建查询。 2.2.2在点击新建查询出来的界面中输入以下代码: create database SQLTest

SQL 2000及2005附加数据库

回眸只為那壹抹淺笑 提交于 2020-02-28 06:45:43
参考网上的方法及实际的测试,基本弄明白了附加数据库之后无法访问表的问题,基本弄明白了数据库的登录用户和数据库的用户之间的关系,得出下面的附加数据库的方法: SQL2000及SQL2005 附加数据库的简便方法: 1、附加数据库。(在选择所有者(DBO)的时候选择SA) 2、建立跟原账号相同的账号(例test),但不指定数据库访问。 3、打开查询分析器(使用sa登陆 ),选择刚建的数据库存,执行以下语句: sp_change_users_login 'update_one', 'test', 'test' F5执行。 补充语句: 存储过程sp_change_users_login有三种动作,分别是report,update_one和 auto_fix 。 运行sp_change_users_login 'report ',系统会列出当前数据库的孤立用户数。 我们只需要选择当前数据库为testdb,然后运行sp_change_users_login 'update_one ', 'test ', 'test ' 系统就会提示修复了一个孤立用户。 如果没有建立test的登录用户,还可以用sp_change_users_login 'Auto_Fix ', 'test ', NULL, 'testpassword ' 来创建一个登录用户名为test

DG - 物理Standby角色转换

久未见 提交于 2020-02-28 04:06:18
角色转换前的准备工作 检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数都进行了正确的配置 确保可能成为primary 数据库的standby 服务器已经处于archivelog 模式 确保standby 数据库的临时文件存在并匹配primary 数据库的临时文件 检查主备数据库的standby redo log文件(最大保护和最高可用性模式) 确保standby 数据库的RAC 实例只有一个处于open 状态。(对于rac 结构的standby 数据库,在角色转换时只能有一个实例startup。其它rac 实例必须统统shutdown,待角色转换结束后再startup) 切换又分了:switchover和failover,前者是无损切换,不会丢失数据,而后者则有可能会丢失数据,并且切换后原primary 数据库也不再是该data guard 配置的一部分了.针对不同standby(逻辑或物理)的处理方式也不尽相同。 一、物理Standby的switchover 1. 检查是否支持switchover操作 --主数据库操作   查询v$database视图的switchover_status列 SQL> select switchover_status from v$database; 如果该列值为"To Standby