随笔分类 -  数据库 TSQL

1
oracle 数据库 (表)的逻辑备份与恢复
摘要:数据库 (表)的逻辑备份与恢复 介绍 介绍ν 逻辑备份是指使用工具 export 将数据对象的结构和数据导出到文件的过程,逻 辑恢复是指当数据库对象被误操作而损坏后使用工具 import利用备份的文件把 数据对象导入到数据库的过程。 物理备份即可在数据库 open 的状态下进行也可在关闭数据库后进行,但是逻辑 备份和恢复只能在open 的状态下进行。 看图: 导出ν 导出具体的分为:导出表,导出方案,导出数据库三种方式。 导出使用exp 命令来完成的,该命令常用的选项 : userid: 用于指定执行导出操作的用户名,口令,连接字符串 tables: 用于指定执行导出操作的表 owner: . 阅读全文
posted @ 2011-08-23 11:06 cnby 阅读(2520) 评论(0) 推荐(0)
dbcc extentinfo 查看磁盘分区 分析压缩数据库对象
摘要:DBCC EXTENTINFO命令用于查询某个数据库、或者某个数据对象(主要是数据表)的盘区分配情况,然后计算每个对象理论上区的数目和实际数目,如果实际数目远大于理论的数目,那这个对象就是碎片过多,管理员应该要考虑重建对象建立下面的存储过程帮助分析:View Code createtableextentinfo([file_id]smallint,page_idint,pg_allocint,ext_sizeint,obj_idint,index_idint,partition_numberint,partition_idbigint,iam_chain_typevarchar(50),pfs 阅读全文
posted @ 2011-07-25 10:32 cnby 阅读(671) 评论(0) 推荐(0)
sql2005分区表实例
摘要:--创建数据库即文件组createdatabasedbStudyonprimary(name='dbPrimary',filename='d:\dbprimary.mdf'),filegroupdbstudyfilegroup1(name='dbgroupfile1',filename='d:\dbgroupfile1.ndf'),(name='dbgroupfile2',filename='d:\dbgroupfile2.ndf'),filegroupdbstudyfilegroup2(name= 阅读全文
posted @ 2011-07-07 17:03 cnby 阅读(295) 评论(0) 推荐(0)
创建文件组 文件
摘要:已单独创建的文件(即没有加入文件组的文件)不能再移入文件组。文件组是逻辑上用于管理文件的。文件才是物理上的存在。当单独的primary主数据库文件超过window 文件大小时可通过添加文件组为数据库添加新空间。在创建表,索引时可指定其所在文件,提交io读写效率。---添加文件组alterdatabasePartitiondbaddfilegroupDatagroup1go--查看数据库文件信息sp_helpfilegroup--添加文件到文件组alterdatabasepartitiondbaddfile(name=worksheet1,filename='d:\worksheet1. 阅读全文
posted @ 2011-07-06 17:07 cnby 阅读(1006) 评论(0) 推荐(0)
数据库安全 登陆账户数据库账户管理
摘要:--登陆账户名gaiyang,默认连接到数据库tempdb,但是还不能访问数据库的对象--gaiyang账户是guest数据库身份可以访问guest能够访问的数据库对象createlogingaiyangwithpassword='password',default_database=tempdb;--要使gaiyang帐户能够在tempdb数据库中访问自己需要的对象,需要在数据库--tempdb中建立一个“数据库用户”,赋予这个“数据库用户”某些访问权限,--并且把登陆帐户“gaiyang”和这个“数据库用户”映射起来。--习惯上,“数据库用户”的名字和“登陆帐户”的名字相同 阅读全文
posted @ 2011-07-06 09:46 cnby 阅读(677) 评论(0) 推荐(0)
SQLserver中用convert函数转换日期格式
摘要:SQLserver中用convert函数转换日期格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-ddThh:mm:ss.mmm例如:selectgetdate()2004-09-1211:06:08.177整理了一下SQLServer里面可能经常会用到的日期格式转换方法:举例如下:selectCONVERT(varchar,getdate(),120)2004-09-1211:06:08selectreplace(replace(replace(CONVERT(varchar,getdate(),120),'-',''), 阅读全文
posted @ 2011-06-23 22:02 cnby 阅读(310) 评论(0) 推荐(0)
SQL Server 2005:Apply运算符
摘要:使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集跟右输入返回的列的列表的组合。类似表间的联接查询APPLY 有两种形式: CROSS APPLY 和 OUTER APPLY。CROSS APPLY 仅返回外部表中通过表值函数生成结果集的行(相当于left join)。OUTER APPLY 既返回生成结果集的行,也返回不生成结果集的行,其中表值函数生成的列中的值为 NULL(相当于full j 阅读全文
posted @ 2011-05-06 13:23 cnby 阅读(636) 评论(0) 推荐(0)
按时间(年,月,季度,周)查询统计
摘要:准备案例数据:--SQLcode--建表createtable#Temp(datedatetime,Dcountint)insertinto#Tempselect'2010-01-01',10unionallselect'2010-01-25',10unionallselect'2010-01-31',15unionallselect'2010-02-25',30unionallselect'2010-02-28',20unionallselect'2011-01-03',20unionallsel 阅读全文
posted @ 2011-04-15 15:05 cnby 阅读(810) 评论(0) 推荐(0)
sql查询试题(一)
摘要:--1。得到当前月的天数select datepart(dd,dateadd(dd,-1, --2011-04-30 00:00:00.000dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-' --2011-04-01 00:00:00.000 +cast(month(getdate()) as varchar)+'-01' as datetime) --2011-05-01 00:00:00.000)))--2.应用case划分 等级 select productid,productName,unitP 阅读全文
posted @ 2011-04-15 04:59 cnby 阅读(611) 评论(0) 推荐(0)
Tsql查询执行顺序(二)
摘要:· T-SQL查询处理这种逻辑处理顺序,是理论上的处理过程,实际情况还会根据查询优化器选择最优的执行计划。还是从FROM阶段讲开。(1)FROM阶段 这个阶段是查询逻辑处理的第一步。想到这里,想起了LINQ表达式不就是从FROM开始的嘛,看来还是挺有道理的。FROM阶段负责表示表或要查询的表。如果指定了表运算符,还需 要按从左到右的顺序,对运算符进行逐个处理。表运算符有4类,JOIN,APPLY,PIVOT,UNPIVOT。每个表运算符都有自己的处理规则。这里挑最常见的JOIN来说。对于联接(join),一般有以下几个个步骤:a.求笛卡尔积,对两张表进行cross join,得出最大 阅读全文
posted @ 2011-04-13 04:04 cnby 阅读(2521) 评论(2) 推荐(3)
T-SQL查询处理执行顺序(一)
摘要:对于T-SQL编程,用得最广泛的,莫过于查询(Querying)。要想写出高质量、高性能的查询语句,必须深入地了解逻辑查询处理。一、逻辑查询处理的各个阶段(5)SELECT DISTINCT TOP(<top_specification>) <select_list>(1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate> (2)WHERE <where_predicate>(3)GROUP BY <group_by_spe 阅读全文
posted @ 2011-04-13 04:02 cnby 阅读(3867) 评论(1) 推荐(2)
case基础应用
摘要:USE pubsGOSELECT Category = CASE type WHEN 'popular_comp' THEN 'Popular Computing' WHEN 'mod_cook' THEN 'Modern Cooking' WHEN 'business' THEN 'Business' WHEN 'psychology' THEN 'Psychology' WHEN 'trad_cook' THEN 'Traditional 阅读全文
posted @ 2011-04-12 18:23 cnby 阅读(296) 评论(0) 推荐(0)
交叉表
摘要:先看看交叉表什么样子:“交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成: 行 列 摘要字段 “交叉表”中的行沿水平方向延伸(从一侧到另一侧)。在上面的示例中,“手套”(Gloves) 是一行。“交叉表”中的列沿垂直方向延伸(上下)。在上面的示例中,“美国”(USA) 是一列。汇总字段位于行和列的交叉处。每个交叉处的值代表对既满足行条件又满足列条件的记录的汇总(求和、计数等)。在上面的示例中,“手套”和“美国”交叉处的值是四,这是在美国销售的手套的数量。 下面实现一个例子:有一个表:BHGZLBJE---------- 阅读全文
posted @ 2011-04-12 17:50 cnby 阅读(2939) 评论(0) 推荐(0)
多表连接查询(内,外,交叉连接)
摘要:连接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征.select 表1.字段名1,表2.字段名2,... from 表1,表2where 连接条件SQL-92标准所定义的FROM子句的连接语法格式为: FROM 表名 join_type 表名 [ON (连接条件)]连接操作中的ON (连接条件) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。 连接查询分类:1.自连接查询,对同一个表进行连接操作(可以理解为两个不同表的内连接,有时可与嵌套查询等价)2.内连接查询,<又分为:自然连接、等值连接、不等值连接三种>3.外连接查询 阅读全文
posted @ 2011-04-12 02:46 cnby 阅读(43180) 评论(3) 推荐(4)
SQL 约束 (Constraints)
摘要:约束说明如下: create table Persons(id int primary key identity(1,1) , ---主键,自增长 id_p int not null unique CHECK (Id_P>0) --check , --唯一LastName varchar(255) not null , --null FirstName varchar(255),City varchar(255) default 'beijing', --defaultConstraint uc_FullName unique(FirstName,LastName) , 阅读全文
posted @ 2011-04-07 23:36 cnby 阅读(2400) 评论(0) 推荐(0)
SQL SELECT INTO 语句
摘要:SQL SELECT INTO 语句可用于创建表的备份复件。简单说明:select filed1,filed2 --要创建的新列into table1 --创建的新表名from table2 --要复制的表where 1=2 --要复制的数据,如果条件不成功则只复制表结构,没有数据从一个以上的表中选取数据也是可以做到的。下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:SELECT Persons.LastName,Orders.OrderNoINTO Persons_Orde 阅读全文
posted @ 2011-04-07 22:54 cnby 阅读(452) 评论(0) 推荐(0)
Tsql案例: 题库,学生课程成绩相关查询
摘要:1案例描述:从题库(保存了所有考试的题目)中抽出一样数量的题做为新的试卷,要求每次的试题顺序不同,这样也就没法抄了啊。 View Code --建立表createtableQuestions(intQuestionIDint,vchQuestionTextvarchar(512))gocreatetableTestQuestions(intQuestionIDint,vchQuestionTextvarchar(512))GO--插入数据declare@intCounterintdeclare@vchQuestionvarchar(64)setnocountonselect@intCounte 阅读全文
posted @ 2011-04-07 22:43 cnby 阅读(2672) 评论(1) 推荐(0)
Group by与having理解
摘要:注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里。1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)例如,有如下数据库表:A B 1 abc 1 bcd 1 asdfg如果有如下查询语句(该语句是错误的,原因见前面的原则)select A,B from table group by A 该查询语句的意图是想得到如下结果(当然只是一相情愿) A B abc 1 bcd asdfg 右 阅读全文
posted @ 2011-04-01 17:57 cnby 阅读(247201) 评论(16) 推荐(16)
相关子查询 与非相关子查询
摘要:1:标量子查询(相对于多值子查询):只有标量子查询返回的是单个记录或者不返回,就是有效的子查询。Ex1:select OrderId From Orders where EmployeeId=(select EmployeeId From employees where lastName like N'Davolio')将’Davolio’改为'D%'时,这个时候子查询中返回结果为2行,等号右边此时为多值,查询失败.将’=’改为in谓词.查询才能通过.employees表中无lastname=’jason’,外部查询将返回null.2:非相关子查询(嵌套子查询) 阅读全文
posted @ 2011-04-01 17:10 cnby 阅读(19690) 评论(0) 推荐(0)
SQL数据库表 与excel 数据导入导出
摘要:1:用select语句将数据库数据导出到excel,可以灵活的用sql语句设计你想要的结果集View Code declare@serversysname,@unamesysname,@pwdsysname,@QueryTextvarchar(200),@filenamevarchar(200),@hrint,@SQlServerint,@result_strvarchar(255),@QueryResultsint,@CurrentResultSetint,@objectint,@WorkBooksint,@WorkBookint,@Rangeint,@Columnsint,@Rowsint 阅读全文
posted @ 2011-04-01 14:23 cnby 阅读(1668) 评论(0) 推荐(0)

1