sql格式转化
A. 将.sql文件转换成.mdf文件
您好,这样的:
我想在这里 先让你理解一下两个文件的区别
.sql 是包含一些sql语句的文件 例如:insert into tab_name valus(11) 等
.mdf文件 是数据文件 一个数据库(例如名称是 db_name)有两部分组成 一是数据文件(.mdf做后缀) 二是日志文件(.log 做后缀)
这里你所说的 “用企业管理器-打开.sql文件,然后点执行”也是错误的 ,应该是“用查询分析器-打开.sql文件,然后点执行”如果想生成.mdf的文件,那该.sql文件中应包含create database(创建数据库)的语句。
将文件(.sql格式)在sql工具中打开(可以直接双击打开),
点击上面的“执行”按钮,就可以创建.mdf格式的数据库。
B. 如何将sql格式的文件转换成word
一、准备工作
首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,就可以打开VS.NET,并新建一个Visual C#项目ASP.NET Web应用程序,位置为“”。
二、引用Word对象库文件
要操作Word,就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,就可以在office安装目录的Office10文件夹下面找到这个文件,当将这个文件引入到项目后,就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目添加引用浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
三、Webform1.aspx.cs代码
完成添加引用后,MSWORD.OLB已经转化为相关DLL文件并放置于项目的BIN目录下了,这样我们只需在源码中创建该对象,并使用word库文件内置的操作函数即可轻松实现操作Word。
四、web.config设置
web.config文件还需添加一句 identity impersonate="true"/以启用模拟身份,因为默认ASPNET这个用户是没有权限访问Word.ApplicationClass(),当启用模拟身份后所有页面将会使用匿名Internet用户帐户(IUSR_machinename)这个用户名的权限执行,这样就能成功访问Word.ApplicationClass()并在ASP.NET中操作Word!
//传文档所在晌前路径 返回文档内容
public string Doc2Text(string docFileName)
{
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object fileobj = docFileName;
object nullobj = System.Reflection.Missing.Value;
/芹毁/打开指定文件嫌谨备(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj
);
//取得doc文件中的文本
string outText = doc.Content.Text;
//关闭文件
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭COM
wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
//返回
return outText;
}
在读取的时候会有损坏的文件 和被加密的文件等问题 总之C#和office的兼容性不太好,别忘了要引用word的dll,引用文件夹 右键添加引用 在组件里找Microsoft.Office.Interop.Word
读出了word文档再把它写入sql server数据库就可以了。
C. 资料库SQL语句 表格式转换
资料库SQL语句 表格式转改腔隐换 declare @b table(barcode varchar(10), size varchar(5), quantity int, requantity int)
declare @a table(barcode varchar(10), s1 int, s2 int, s3 int,s4 int,s5 int)
insert into @a
select '1009823',0,0,1,0,2 union
select '1009824',3,0,1,0,3 union
select '1009825',-1,2,0,3,0
select * from @a
select * from (
select barcode, 's1' as size,case when s1>0 then s1 else 0 end quantity, case when s1<0 then s1 else 0 end requantity from @a union
select barcode, 's2' as size,case when s2>0 then s2 else 0 end quantity, case when s2<0 then s2 else 0 end requantity from @a union
select barcode, 's3' as size,case when s3>0 then s3 else 0 end quantity, case when s3<0 then s3 else 0 end requantity from @a union
select barcode, 's4' as size,case when s4>0 then s4 else 0 end quantity, case when s4<0 then s4 else 0 end requantity from @a union
select barcode, 's5' as size,case when s5>0 then s5 else 0 end quantity, case when s5<0 then s5 else 0 end requantity from @a
) t
where not exists ( select 1 from (
select barcode, 's1' as size,case when s1>0 then s1 else 0 end quantity, case when s1<0 then s1 else 0 end requantity from @a union
select barcode, 's2' as size,case when s2>圆升0 then s2 else 0 end quantity, case when s2<0 then s2 else 0 end requantity from @a union
select barcode, 's3' as size,case when s3>核厅0 then s3 else 0 end quantity, case when s3<0 then s3 else 0 end requantity from @a union
select barcode, 's4' as size,case when s4>0 then s4 else 0 end quantity, case when s4<0 then s4 else 0 end requantity from @a union
select barcode, 's5' as size,case when s5>0 then s5 else 0 end quantity, case when s5<0 then s5 else 0 end requantity from @a
) t1
where t1.quantity=0 and t1.requantity=0
and t.barcode = t1.barcode and t.size=t1.size
)
order by barcode
-----------------------------------
(3 个资料列受到影响)
barcode s1 s2 s3 s4 s5
---------- ----------- ----------- ----------- ----------- -----------
1009823 0 0 1 0 2
1009824 3 0 1 0 3
1009825 -1 2 0 3 0
(3 个资料列受到影响)
barcode size quantity requantity
---------- ---- ----------- -----------
1009823 s3 1 0
1009823 s5 2 0
1009824 s1 3 0
1009824 s3 1 0
1009824 s5 3 0
1009825 s1 0 -1
1009825 s2 2 0
1009825 s4 3 0
(8 个资料列受到影响)
资料库SQL语句
给你一个参巧一下:
查询房费大于200的可以尝试这样写SQL语句:
select * from guest where Money>200 and Details='房费'
然后是执行该SQL语句.应该可以获取到想要的效果.其它的效果就模拟这个样式写就好了,要注意的一点是 字串内容查询需要把 字串 使用单引号 括起来 比如说 '房费'这里.
以前在SQL 中写SP 时,如比较复杂时,喜欢中间使用临时表来暂存相关记录,这样的好处有很多,提高效率,提高程式的可读性等。当然后临时表的使用,一般均会使用使用者临时表,即 #TempTable, 但有一些情况下,偶尔也会使用系统临时表,即 ##TempTable。
两种临时表的的使用语法差不多,可用几种方法来建立,可 Create ,也可 Select Into 。
当然关键的是系统临时表和使用者临时表的区别:(如下)
1)使用者临时表:使用者临时表的名称以单个数字符号(#)开头;
使用者临时表只对建立这个表的使用者的Session可见,对其他程序是不可见的.
当建立它的程序消失时这个临时表就自动删除.
2)系统临时表:系统临时表的名称以数字符号(##)开头
全域性临时表对整个SQL Server例项都可见,但是所有访问它的Session都消失的时候,它也自动删除.
明白了这些就知道了他们的用途和限制,但有一些地方还是容易出问题,故在此专门列出。
1, 在使用 Exec(SQLScript) 执行Script 时,其间也相当于单独有一个程序处理,故执行期间内如果建立使用者临时表的话,在执行完成后也就结束了,即执行完成后,你不可以使用在 SQLScript 中生成的使用者临时表,可以用系统临时表代替。
2, 在使用使用者临时表时,有一个问题要注意,就是最好在建立时指定其使用者为 dbo ,以避免可能的问题;
3, 在使用系统临时表时,一定要考虑到,不可以将其用于多使用者使用的环境功能或系统中,否则就可能出现冲突的问题,导致结果不可预料。
如果在多使用者使用的环境中使用系统临时表,则可能会出现多个使用者同时对同一系统临时表进行处理,从而导致冲突和资料的错误。以前没有注意这一点,我就因此而浪费过不少的时间。
有时需要使用Exec(SQLScript)方式产生资料,但其中只能使用系统临时表,如何处理呢?
1, 可以预先定义好一个使用者临时表,然后使用 Insert #TempTable Exec(SQLScript) 的方式,即可将Exec 产生的结果记录加入使用者临时表,从而避免使用系统临时表;
2, 从根本上避免使用 Exec() ,可用其它方式代替。
Exec() 的使用是因为有一些 Script 比较复杂,其中需要一些组合字符,如 in ('','','') 或其它可能的情况,在此情况,无法直接使用一般的Script 产生记录,只能先产生一个组合的Script ,然后用Exec 执行
1 avg=avg(gmark)
2 student a,s-c
3 class=''10
4 sno
5 distinct sname
6 student a
7 ()
8 sno,o
9 sname Desc
10 gmark,sname
11 s-c.sno=student.sno. group by sno
12 =
13 distinct(max(mark))
14 <
15 not null
1 select * from 表名 where 部门ID = 20
2 select 员工号,员工名,部门号 from 表名 where 工种=CLERK
3 select * from 表名 where COMM>SAL
4 select * from 表名 where COMM>(SAL*0.2)
5 select * from 表名 where (部门ID = 10 and 工种=MANAGER) or(部门ID=20 and 工种=CLERK)
6 select * from 表名 where 工种!=MANAGER and 工种!=CLERK and 工资>1999
7 select 工种 from 表名 where 奖金 != null
select r.读者编号,姓名 from Readers r
inner join Brrowinf b on b.读者编号=r.读者编号
where 借期='2012-1-1'
没执行过这语句,你试试,有错误再贴出来我再改改
drop database 资料库名 --删除资料库的
drop table 表名--删除表的
delete from 表名 where 条件 --删除资料的
truncate table 表名 也是删除资料库的.但是他可以裁断序列 这个你跟DELETE 对照试一下就知道了
资料库sql语句
1:
select ft.s_name
from student ft
where ft.s_id not in (select distinct
a.s_id
from chosen_class a
left join class b on a.c_id = b.c_id
where b.c_name like '%C1%'
)
;
2:
select b.c_name,
avg(a.grade) as grade_avg
from chosen_class a
left join class b on a.c_id = b.c_id
group by b.c_name
order by grade_avg desc
;
3:
select b.s_name,
count(distinct a.c_id) as class_num
from chosen_class a
left join student b on a.s_id = b.s_id
group by b.s_name
having count(distinct a.c_id) >= 2
;
这个没办法做,只有=999 显示或隐藏一行。列没地方设定。
如果一定要做,那你只能拼字串,先查一列是否有符合的,有的话就不放在select 语句中。
select count(*) from (select workerId, workerName, t1.departmentId, departmentName, telephone from worker t1 left join department t2 on t1.departmentId = t2.departmentId)
D. 在SQL语句里面如何将字符型转换成数字型
先检查金额列的数据是否都符合小数规范,用cast(金额 asdecimal(10,4))>500或者
convert(decimal(10,4),金额)>500
注:decimal的长度和碧闹小数位数根据自己需要设定
sql中将字符串数字转换成数字:
方法一:SELECT CAST('123' AS SIGNEDinteger);
方法二:SELECT CONVERT('123',SIGNED);
方法三:SELECT '123'+0;
(4)sql格式转化扩展阅读:
能将字符型转换成数字型晌慧好,就能将数字转化为字符,对于宴铅精确数值的数据类型,转换出来的字符串就是我们存储的数值。比如:
declare @i int
set @i=123456789
print 'test:'+convert(varchar(20),@i)
输出就是:test:123456789
而如果对于近似数值的数据类型,那么可就没有那么简单了。
declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),@i)
输出结果:test:1.23457e+008
E. 在SQL语句里面如何将字符型转换成数字型
将字陆销符的数字转成数字,比如'0'转成0可以直接用加法来实现;
例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决;
select * from pony order by (d+0);
在进行ifnull处理时,比如 ifnull(a/b,'0') 这样就会导致 a/b成了字符串,因此需要把'0'改成0,即可解决此困扰;
比较数字和varchar时,比如a=11,b="11ddddd";
则 select 11="11ddddd"相等;
若绝对比较可以这样:
select binary 11 =binary "11ddddd";
字符集转换 : CONVERT(xxx USING gb2312);
类型转换和SQL Server一样,就是类型参数有点点不搜郑同 : CAST(xxx AS 类型),CONVERT(xxx,类型);
类型必须用下列的类型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、早漏游UNSIGNED。
F. SQL 怎么把DD-MM-YYYY格式的转换成YYYY/MM/DD
可以尝试用闹锋掘枯以下语句来转换:(前提是ODATE字段是日期型date)
select to_char(ODATE,'YYYY/MM/DD') odate from 表名 where rownum=1;
如果ODATE是字符型的话,还要再转换一道:
select to_char(to_date(ODATE,'DD-MM-YYYY'液散晌),'YYYY/MM/DD') odate from 表名 where rownum=1;
G. sql格式文件能转换成视频吗
sql数据库存放视频是可以的,但是不推荐这么做,一般要把视频文件困返贺以二进制流的方式写入数据库字段,这样会消耗性能,读取也不方便。
但是现实中一般是推荐存放视频文件路径,比如把这种文件(图片、音频、视频)保存到一个专门的路径下, 而数据库只保存这个文件的完整路径即可。
调用时从数据库中取路径, 然后把相关的文件显示出来即可。
(7)sql格式转化扩展阅读:
SQL Server数据库包括Microsoft SQL Server以及Sybase SQL Server两个子数据库,该数据库能否正常运行直接关系着整个计算机系统的运行安全。
SQL包括了所有对数据库的操作,主要是由4个部分组成:
1、数据定义:又称为“DDL语言”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2、数据操纵:又称为“DML语言”,包括插入、删除和更新三种操作。
3、数据查询:又称为“DQL语言”,包括数汪派据查询操作。
4、数据控制:又称为“DCL语言”,对用户访问数据的控制有基本表和视图的授权及回收。
5、事务控制:又称为“TCL语言”,包括事务的提交与回滚。
6、嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的世蚂程序中使用的规则。
H. sql日期格式转换
举例如下:
select Convert(varchar(10),getdate(),120)
2006-05-12
select CONVERT(varchar, getdate(), 120 )
2006-05-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20060512110608
select CONVERT(varchar(12) , getdate(), 111 )
2006/05/12
select CONVERT(varchar(12) , getdate(), 112 )
20060512
select CONVERT(varchar(12) , getdate(), 102 )
2006.05.12
其它几种不常用的日期格式转换方法:
select CONVERT(varchar(12) , getdate(), 101 )
0612/2005 select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.05.2006
select CONVERT(varchar(12) , getdate(), 105 )
12-05-2006
select CONVERT(varchar(12) , getdate(), 106 )
12 05 2006
select CONVERT(varchar(12) , getdate(), 107 )
05 12, 2006
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
0512 2006 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 052006
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
I. sqldatetime转为smalldatetime格式
在 SQL Server 中,可以使用 CAST 或 CONVERT 函数将 SQLDatetime 转换为 SmallDatetime 格式。以下是两种不同的转换方法:
1. 使用 CAST 函数:
```
SELECT CAST('2021-05-31 22:30:00' AS SmallDatetime)
```
这会将 SQLDatetime '2021-05-31 22:30:00' 转换为 SmallDatetime 格式。
2. 使用 CONVERT 函数:
```
SELECT CONVERT(SmallDatetime, '2021-05-31 22:30:00', 120)
```
这也会将 SQLDatetime '2021-05-31 22:30:00' 转换为 SmallDatetime 格式。其中,120 是转链源如换代码(convert code),用于棚启指定将字符串转换为哪种日期和时间格式。在这里,120 表示将字符串转换为 "yyyy-mm-dd hh:mi:ss" 格式的日期和时间。
以上两种方法都可以将 SQLDatetime 转换为 SmallDatetime 格式。需要注意的是,由于 SmallDatetime 格式的精度只有分钟级别,因此裂猛在进行转换时可能会发生舍入或截断。
J. SQL中如何将数字型转换为日期型
平时为了方便存储和查询,通常会选择将时间存储为毫秒或者秒的形式。但是页面显示的时候很不直观,需要将整型数字转化成日期格式,转化方式包友行括下面几种:
1、秒数与Date之间的转换:selectfrom_unixtime(1388776825);
还可以定义时间格式,用法如下:
SELECTFROM_UNIXTIME(1388776825,'%Y-%m-%d%H:%m:%s');
结果:2014-01-0403:01:25
SELECTFROM_UNIXTIME(1388776825,'%Y年%m月%d')
结果:2014年1月4
2、将秒数转为Date:SELECTUNIX_TIMESTAMP('2014-03-2310:10:40')
如果想逆向转换,可以通过unix_timestamp()函数反向转换。用法如下:
SELECTUNIX_TIMESTAMP();//获取当前时间的秒数
SELECTUNIX_TIMESTAMP('2014-03-2310:10:40');//获取指定日期格式的秒数
SELECTUNIX_TIMESTAMP('2014-03-23');//获取指定日期格式的秒数
(10)sql格式转化扩展阅读:
一、date型换int型
SELECTUNIX_TIMESTAMP(‘2017-9-2213:54:45’)
二、int型转date型
SELECTFROM_UNIXTIME(1506059685)
需要注意的是,孙拿一个int值转换为DateTime需要从1970年1月1日0点则告搭0分0秒开始,但是必须明确,这个时间是标准时间,而不是北京时间。
数据库中数据的时间都是以标准时间为准绳的。所以必须转换到当前时间,中国是+8,可以简单的调用ToLocalTime达到效果。