sql数据库

MS SQL数据库的服务器角色和数据库角色 简述

烂漫一生 提交于 2020-02-13 22:04:27
固定服务器角色 描述 sysadmin 在 SQL Server 中进行任何活动。该角色的权限跨越所有其它固定服务器角色。 serveradmin 配置服务器范围的设置,关闭服务器。 setupadmin 添加和删除链接服务器,并执行某些系统存储过程(如 sp_serveroption)。 securityadmin 管理服务器登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。。 processadmin 管理在 SQL Server 实例中运行的进程。 dbcreator 创建、改变和除去数据库。 diskadmin 管理磁盘文件。 bulkadmin 执行 BULK INSERT 语句。 固定数据库角色 描述 db_owner 数据库所有者 db_accessadmin 数据库访问管理员 db_securityadmin 数据库安全管理员 db_ddladmin 数据库 DDL 管理员 db_backupoperator 数据库备份操作员 db_datareader 数据库数据读取者 db_datawriter 数据库数据写入者 db_denydatareader 数据库拒绝数据读取者 db_denydatawriter 数据库拒绝数据写入者 转自:http://blog.javawind.net/disp-42-4.shtml 来源: https:/

通过JDBC连接hive

感情迁移 提交于 2020-02-13 21:17:02
hive是大数据技术簇中进行数据仓库应用的基础组件,是其它类似数据仓库应用的对比基准。基础的数据操作我们可以通过脚本方式以hive-client进行处理。若需要开发应用程序,则需要使用hive的jdbc驱动进行连接。本文以hive wiki上示例为基础,详细讲解了如何使用jdbc连接hive数据库。hive wiki原文地址: https://cwiki.apache.org/confluence/display/Hive/HiveClient https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBC 首先hive必须以服务方式启动,我们平台选用hdp平台,hdp2.2平台默认启动时hive server2 模式。hiveserver2是比hiveserver更高级的服务模式,提供了hiveserver不能提供的并发控制、安全机制等高级功能。服务器启动以不同模式启动,客户端代码的编码方式也略有不同,具体见代码。 服务启动完成之后,在eclipse环境中编辑代码。代码如下: import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import

接口自动化测试---数据库操作封装

与世无争的帅哥 提交于 2020-02-13 20:53:27
本节通过PyMysql驱动编写sql语句来操作数据库。但是通过编写sql语句生成数据库比较麻烦,本节为了简化这一流程,避免直接编写sql语句。 一、目录结构: mysql_db.py文件对数据库进行封装操作,主要包含连接数据库、执行sql语句、数据库的关闭操作,将sql语句单独出来,而不用以后每个接口中调用; db_config.ini文件为数据库的配置内容; 二、数据库操作封装 db_config.ini文件 [mysqlconf] host=127.0.0.1 port=3306 user=root password=111111 db_name=guest_test mysql_db.py文件 # -*-encoding=utf-8-*- import pymysql.cursors from os.path import abspath, dirname #configparser库用来读取ini类型的配置文件 import configparser as cparser #=======================读取db_config.ini文件设置======================= # 配置文件的绝对路径 # base_dir = str(os.path.dirname(os.path.dirname(__file__))) # base_dir =

简单实用SQL脚本

一曲冷凌霜 提交于 2020-02-13 19:23:47
行列互转 create table test(id int ,name varchar ( 20 ),quarter int ,profile int ) insert into test values ( 1 , ' a ' , 1 , 1000 ) insert into test values ( 1 , ' a ' , 2 , 2000 ) insert into test values ( 1 , ' a ' , 3 , 4000 ) insert into test values ( 1 , ' a ' , 4 , 5000 ) insert into test values ( 2 , ' b ' , 1 , 3000 ) insert into test values ( 2 , ' b ' , 2 , 3500 ) insert into test values ( 2 , ' b ' , 3 , 4200 ) insert into test values ( 2 , ' b ' , 4 , 5500 ) select * from test -- 行转列 select id,name, [ 1 ] as "一季度", [ 2 ] as "二季度", [ 3 ] as "三季度", [ 4 ] as "四季度", [ 5 ] as " 5 " from test

Linq To Sql 简单的单表批量删除

别来无恙 提交于 2020-02-13 18:03:51
今天在网上看到老赵前辈的 扩展LINQ to SQL:使用Lambda Expression批量删除数据 ,我看完了文章,还没有看源代码,我一般都习惯于在看别人的代码前,思考一下如果我来实现我会如何实现。我想了许久操作表达式树操作二元表达式(BinaryExpression)我是肯定困难的,对于表达式类库的了解不多,用了Reflector反射,结果什么都看不见,也许我的Reflector版本低了,没有更新。我就放弃了这种实现方式,我想有没有其他的方式呢?最终我觉得可以操作生成sql执行同样可以达到目的,也许更简单化。 如何获取sql呢,Linq中有db.GetCommand(IQueryable )方法,DBCommand的CommandText就是sql了,那我们如何获取IQueryable 呢,我的第一感觉就是where方法。所以就有下面的语句了,IQueryable q = source.Where(query).AsQueryable(); DbCommand cmd = db.GetCommand(q); 现在我们等到了查询sql,如何转化为Delete呢,我用了正则表达式匹配。就得到了下面完全代码: 代码 public static class TableExtension { /// <summary> /// 单表操作批量删除 /// </summary> ///

[原创]修正SubSonic v2.2.1的一处BUG,以及如何使用SubSonic进行多表查询、子查询以及数据库分页

我与影子孤独终老i 提交于 2020-02-13 17:57:33
相信很多同学都用过SubSonic,在07 - 10年ORM兴起的时代,SubSonic可以说是DotNet开发人员的救星。虽说现在 EntityFramework大有一统江湖的趋势,不过在DotNet2.0框架下,SubSonic依然是为数不多的选择。 最近在维护基于 ExtAspNet 的通用权限管理项目 AppBox ,在使用SubSonic进行多表查询和数据库分页时遇到了点问题,下面我会详细分享这一经过,以及如何通过修改SubSonic的源代码来修正这一问题。 我要实现如下的功能 我要实现的功能非常简单:用户管理,角色管理,角色用户管理(一个用户可以属于多个角色)。相信很多同学闭着眼睛就能把数据库给构造出来,不是吗? 1. 用户表 2. 角色表 3. 角色用户表 其中用户管理和角色管理都很简单,我要实现的角色用户管理界面如下所示: 1. 查看角色下的所有用户 2. 向角色添加现有用户 数据库查询时遇到问题 在查看角色下的所有用户页面,需要进行表关联,相关的SubSonic代码如下所示: 1: // 查询 X_User 表 2: SqlQuery q = new Select().From<XUser>(); 3: q.Where("1").IsEqualTo("1"); 4: 5: // 在用户名称中搜索 6: string searchText =

php+mysql基础增删查改

萝らか妹 提交于 2020-02-13 17:18:51
php连接数据库有MySQLi和PDO两种方法 以下以PDO为例 一、创建数据库表(students) 二、连接数据库(db.php) $dsn:数据库连接服务器,数据库名称 $db_user:登录数据库名称 $db_pass:登录数据库密码 1 <?php 2 $dsn="mysql:dbname=phpsql;host=localhost;charset=utf8"; 3 $db_user='root'; 4 $db_pass='123456'; 5 try{ 6 $pdo=new PDO($dsn,$db_user,$db_pass); 7 $pdo->exec('set names utf8'); 8 }catch(PDOException $e){ 9 echo '数据库连接失败'.$e->getMessage(); 10 } 11 ?> 三、显示数据列表(list.php) 1 <?php 2 require_once 'db.php'; 3 $sql = 'select * from students'; 4 $query = $pdo->query($sql); 5 echo "<table border='1'>"; 6 echo "<tr><td>id</td><td>number</td><td>name</td><td>操作</td><td>删除</td><

SQL分布式查询、跨数据库查询

故事扮演 提交于 2020-02-13 17:18:08
--【方法1】连接服务器方法 --step1 创建链接服务器 exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB', 'ip地址' exec sp_addlinkedsrvlogin 'srv_lnk', 'false ',null, 'sql登陆名', '密码' --exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB', '192.168.1.58' --exec sp_addlinkedsrvlogin 'srv_lnk', 'false ',null, 'sa', '123456' --step2 应用:查询 select * from srv_lnk.数据库名.dbo.表 --select * from srv_lnk.erp.dbo.t1192 --step2 应用:导入 select * into 表 from srv_lnk.数据库名.dbo.表名 select * into ttt from srv_lnk.erp.dbo.t1192 --step3 删除连接:以后不再使用时删除链接服务器 exec sp_dropserver 'srv_lnk ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --

Statement与PreparedStatement的区别

别等时光非礼了梦想. 提交于 2020-02-13 17:06:49
PreparedStatement预编译SQL语句,性能好。 PreparedStatement无序拼接SQL语句,编程更简单. PreparedStatement可以防止SQL注入,安全性好。 Statement由方法createStatement()创建,该对象用于发送简单的静态的SQL语句。 PreparedStatement由方法preparedStatement()创建,该对象用于发送带有一个 或多个输入参数的SQL语句。该方法继承了Statement的所有方法。并进行了扩展。 SQL语句使用“?”作为数据占位符,使用setXxx()方法设置数据。 setXxx()方法的第一个参数谁要设置参数的序数位置,第二个参数时设置给该参数的值。 //Statement的用法 int id=111; String sql="selsect * from user where id="+id; Statement st=connection.CreateStatement(); ResultSet rs=st.executeQuery(sql); //PreparedStatement的用法 //PreparedStatement可替换变量(在SQL语句中可以包含?) String sql="select * from user where id=?";

java中prepareStatement与createStatement的区别

冷暖自知 提交于 2020-02-13 14:12:28
首先来看两段代码: 第一个使用createStatement() 1 public void delete( int id){ 2 try { 3 Connection c = DBUtil.getConnection(); 4 Statement s = c.createStatement(); 5 String sql = "delete from category where id = " + id ; 6 s.execute(sql); 7 } catch (SQLException e) { 8 e.printStackTrace(); 9 } 10 } 下面一段代码使用prepareStatement()完成 1 /** 2 * 向数据库中增加信息 3 * @param config 4 */ 5 public void add(Config config){ 6 String sql = "insert into category values(null,?,?)"; 7 try { 8 Connection c = DBUtil.getConnection(); 9 PreparedStatement ps = c.prepareStatement(sql); 10 ps.setString(1, config.key); 11 ps.setString(2,