❶ sql注入靶场有哪些
有DVWA,pikachu,bwapp等。
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。
所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
❷ 为什么我的sqlyog 不能查看mediumblob
没有关系。sqlyog是个第三方开发的
mysql数据库
的
图形界面雀尺弯
,也就是mysql图形化管顷闷理工具。
sqlserver
是微软的数据库产品,自带困肆图形化管理界面。
❸ dvwa sql injection high级怎么破
1、设置
把安全等级先调整为low,让自己获得点信心,免得一来就被打脸。
2、测试和分析页面的功能
这里有一个输入框
根据上面的提示,输入用户的id。然后我们输入之后,发现它返回了关于这个user的信息!这里我们输入了“1”。
它返回三行数据,一行是我们输入的用户ID。一行是用户名,另外一行是用户别名。同时,看一下浏览器的地址栏那里,发现url成这样了
这里有个id=1,是不是就是我们输入的user id呢?再输入“2”,发现url变成了
好了,到这里,我们可以得出这里传进去的id的值是我们可以控制的。我们在输入框中输入什么,就会通过id传进去什么!
3、对参数进行测试
对id这个参数进行测试,查看一下它是否存在sql注入漏洞。我们在输入框里面输入“1'”,注意1后面有一个单引号“'”。
发现这里报错了,说我们的sql语句出现了语法错误。
我们可以进行这样一个猜测:首先它这个id是被两个“'”包住的。查询语句可能是这样的:
select firstname,surname from users where id = '1';
当我们在1之后加一个引号,则会导致单引号数目不平衡,那么查询语句会变成这样:
select firstname,surname from users where id = '1'';
可以看到最后一个引号没被闭合,那我们该怎么办呢?其实有好多种解决的办法,下面就简单介绍下。
方法一:可以在原来的基础上再继续输入一个引号,也就是“1''”。这时我们看一下查询语句:
select firstname,surname from users where id = '1''';
* 在where语句中,当出现多个字符串的时候,“=”将会选择优先级最高的一个,优先级是从左到右,依次降低的,也就是离“=”最近的一个。
看到了么,出来的结果还是和user_id=1一样。
方法二:使用“#”符号来注释后面的单引号,到时查询语句将会变成这样:
select firstname,surname from users where id = '1'#';
方法三:使用“-- ”。这里注意了“-- ”后面有一个空格。在url当中,我们可以使用“+”来代替“--”后面的空格。到时查询语句将会变成这样:
select firstname,surname from users where id = '1'--+';
上面显示出来的结果和输入1时一样。到这里我们就可以确定:
漏洞的参数是“id”。
漏洞的类型是字符型。
4、构造payload
好了,在我们确认漏洞之后,就可以构造payload了。什么是payload?说白了就是一段恶意代码,以便我们能够获得数据库里面的数据。
4.1 分析字段数
分析字段数的话,也是有两种方法。
方法一:用order by 语句。
分析字段数的原因是我们之后需要用union select语句来获得我们需要的敏感数据。根据order by知识知道,要是后面跟着的数字超出了字段数时,就会报错!通过这个我们可以确定字段数。我们构造的payload如下:
1' order by 1#
1' order by 2#
1' order by 3#
当输入到3的时候,发现它报错了,也就是说字段数为2。
方法二:直接用union select来猜测字段数。
因为当字段数不对应的时候,它也是会发生报错的!我们构造以下查询语句:
1' union select 1#
1' union select 1,2#
1' union select 1,2,3#
可以发现,当union select 1,2,3的时候报错,union select 1,2的时候没有报错,也就是说字段数为2。同时,我们也注意到,好像返回的内容中多了三条数据,这是啥呢?其实这就是我们union select出来的数据。这样通过查看页面,我们便可以获得数据库里面的信息了!
4.2 获取信息
字段数为2,说明数据列有两列。我们可以通过union select语句查出两个数据。好了,我们来获取所需要的数据库里面的信息吧!
4.2.1 获取当前数据库名,当前用户名
构造数据库查询语句如下所示:
1' union select database(),user()#
解释一下,database()将会返回当前网站所使用的数据库名字,user()将会返回进行当前查询的用户名。
好的,我们可以看到当前使用的数据库为:dvwa,当前的用户名:root@localhost。
有时候,后面的select语句会限制输出的行数,一般来说,都会让原数据库查询无效,也就是输入无效的id,使得原数据库查询不反回结果。如下操作:
-1' union select database(),user()#
这样就只会返回我们需要的数据了。
类似的函数还有:version() 获取当前数据库版本,@@version_compile_os获取当前操作系统。
-1' union select version(),@@version_compile_os#
* 数据库版本高于5.0就可以爆库了,下面会具体讲解。
4.2.2 获取当前的用户表
根据上面的信息,我们知道当前数据库名为dvwa,可是还不够呀,表名是什么?内容又是什么?是不是打算放弃了?先吃根辣条冷静一下吧。
想想看,当你有不懂的字会怎么办呢?不要动不动就去网络,除了问度娘,还能怎么做呢?对了,查字典。那么mysql有没有类似于字典的东西呢?答案是肯定的,就是information_schema,这是一个包含了mysql数据库所有信息的“字典”,本质上还是一个database,存放着其他各个数据的信息。
在information_schema里,有一个表tables。有一个columns……是不是有点感觉了? tables这个表存放的是关于数据库中所有表的信息,里面有个字段叫table_name,还有个字段叫做table_schema。其中table_name是表名,table_schema表示的是这个表所在的数据库。对于columns,它有column_name,table_schema,table_name。回想一下,我们拥有的信息是数据库名。也就是说我们可以构造这样的payload来从数据库里获取一些东西。
好的,构造的查询语句如下:
-1' union select table_name,2 from information_schema.tables where table_schema= 'dvwa'#
爆出来两个表,对那个感兴趣呢???当然是users表啦!不是说还有一个columns表么?所以我们还需要table_name以及table_schema来查column_name。这次我们构造的payload如下:
-1' union select column_name,2 from information_schema.columns where table_schema= 'dvwa' and table_name= 'users'#
这里简单说一下,倘若不指定数据库名为'dvwa',若是其他数据里面也存在users表的话,则会出现很多混淆的数据。当然,在这里直接使用下面的语句也是可以成功的。
-1' union select column_name,2 from information_schema.columns where table_name='users'#
跟上一条结果一样吧?
又来了,这么多数据,选哪个呢???废话,当然是user,password啦。我们再次修改payload:
-1' union select user,password from users#
Binggo!我们爆出所有的用户名和密码值!等等,这密码好像有点奇葩,数一数,32位!好吧,是经过md5加密的。好不容易爆出管理员账号和密码,但是密码却加密,这就没有办法了吗?不一定!我们需要找一些破解md5值的网站来进行破解!直接网络“CMD5”,然后选择一个网站进去破解就可以了。
我们选择admin这个来进行破解,md5密文为:。
可以看到密码已经被破解出来了,密码是“admin”,好的,我们来验证一下!
看,这个时候我们已经成功登陆了!
好的,简单的SQL注入就说到这儿了,下次我们将进行DVWA里面的中级SQL注入。
❹ SqlServer转mysql 字段注释sql脚本
SELECT 'alter table ' + LOWER(d.name) + ' modify column `' + a.name + '` ' + b.name
+ '(' + RTRIM(CONVERT(char, COLUMNPROPERTY(a.id,a.name,'PRECISION')) ) + ') comment ''' + RTRIM(REPLACE(CONVERT(char, g.value), '''', '')) + ''';'
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id
where b.name is not null
AND g.VALUE is not null
order by a.id,a.colorder
问题: 1、SqlServer 的image类型需要转为mysql的Blob类型
BLOB类型,用雹誉于存储二进制数据。
MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、昌肆纳LongBlob,
最大存储分别为:
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G;
mmsql的image可以耐没存储图片;mysql的blob可以存储图片、文档等,功能更加强大。
2、datetime(23) -> datetime(0)
❺ 如何获取字符串行的Sqlalchemy 长度
db.column(LargeBinary(length=65536)) 就可以直接存储为sql的mediumBlob类渗蠢型,看来虽然largeblob是默认blob类型丛岩陪,而且该字段并不能枣配指定修改type
❻ win2003 server的标准版和企业版有什么区别应该如何设置
2003优化
虽然微软把将Windows Server 2003定位于服务器市场,但经过不少资深玩家亲身验证,经过简单的调整,你完全可以把Server变成Professional,让它适合个人用户使用。如果你喜欢Windows XP的美丽,又对它的速度、性能、安全性有些不满意,那么赶快装上Windows Server 2003,跟我一起来对它进行改造吧!
安装前的准备
尽管Windows Server 2003已经内置大量硬件驱动程序,但最好还是到驱动之家(http://www.mydrives.com/)或厂商网站寻找硬件的最新驱动程序。
改造Windows Server 2003
Windows Server 2003的安装与Windows XP专业版非常相似,因此就不再赘述,下面就马上进入改造工配肢程:
1.取消“管理您的服务器”窗口
默认情况下,每次系统启动会显示“管理您的服务器”窗口,勾选该窗口左下方的“登录时不要显示此页”,这样以后就不会再有这个窗口出现了。
2.创建新用户
按下WIN+R组合键打开“运行”对话框,输入rundll32 netplwiz.dll,UsersRunDll (或者control userpasswords2),按在“确定”后即会弹出熟悉的“用户帐号”窗口,接下来你就可以创建新的用户帐号,同时可实现自动登录系统。
如果想实现更多高级用户设置,可在“运行”对话框中输入lusrmgr.msc,回车后打开“本地用户和组”窗口,双击“用户”中的相应用户即可进入属性窗口进行设置。
小提示:
★恼人的Ctrl+Alt+Del提示请彻底走开
尽管已经使用自动登录摆脱了恼人的Ctrl+Alt+Del的提示,但在按下WIN+L组合键锁定系统或使用了带密码保护的屏保时,它还是会冒出来,要想根除它,请进入“控制面板→管理工具→本地安全策略”,找到“本地策略→安全选项”,在右侧窗口中双击“交互式登录:不需要按CTRL+ALT+DEL”,将其设置为“已启动”。
★在“控制面板”中添加“用户和密码”
到http://www.cfan.com.cn/下载AddUserPasswordsToCP.reg,双击将其导入注册表,这样“控制面板”中就会出现“用户和密码”项了,管理用户更加方便。
3.禁止关闭事件跟踪程序
在你试图重启或关闭Windows Server 2003时,系统会询问关机理由,真是很烦,现在就来把它取消掉。
第一步:按WIN+R组合键打开“运行”对话框,输入gpedit.msc,回车后打开“组策略编辑器”;
第二步:选择“本地计算机策略→计算机配置→管理模板→系统”,接着双击右侧窗口的“显示关闭事件跟踪程序”,然后在“设置”选项卡中选中“已禁用”。
4.关闭IE增强的安全配置
当你打开IE后,会弹出如图的提示窗口,如果不对其进行更改,那么将无法对Internet进行浏览和文件下载。所以要点击IE的“工具→Internet→选项→安全”,将“Internet”区域的安全级别滑快由“高”拉动到“中”。
接着进入“控制面板→添加或删除程序→添加/删除Windows组件”,然后取消“Internet Explorer增强的安全配置”,按“确定”即可将其完全卸载。
小提示:在进行以上处理后,每次打开IE还会出现提示文字的页面,可以进入“工具→Internet→常规”,将默认主页更换掉姿旦。
5.开启硬件加速
第一步:默认情况下,Windows Server 2003禁用了显卡的硬件加速,因此只提供2D和有限的3D能力,所以首先要下载并安装显卡最新的For Windows 2000/XP的驱动程序。
第二步:在桌面窗口处右击“属性→设置→高级→疑难解答”,将其中的“硬件加速”滑块拉到最右侧(完全)。
第三步:按WIN+R组合键打开“运行”对培册世话框,输入dxdiag,回车后打开“DirectX诊断工具”窗口,进入“显示”选项卡,然后单击下面的“DirectX功能”项中的“启用”按钮,这样便打开了DirectX(8.1)DirectDraw、Direct3D、AGP纹理加速等功能。
小提示:由于Windows Server 2003内置的是DirectX 8.1,因此建议你将其升级到DirectX 9.0a,下载地址:http://crc.mydrivers.com/others/dx90a_redist.exe;或者DirectX 9.0b,下载地址:http://crc.mydrivers.com/others/dx90update_redist.exe
6.启用界面主题服务
现在要开启主题服务,从页可以从“显示属性”中选择Windows XP的Luna主题。
按WIN+R组合键打开“运行”对话框,输入services.msc,回车后在服务列表 找到并双击“Themes”,接着在“启动类型”中选择“自动”。
7.启动和关机也要美丽
应用了Luna主题后,启动和关机窗口还没有披上美丽的外衣,现在就对它们进行改进。
打开“注册表编辑器”,找到[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager],右击“ThemeManager”并选择“导出”,为导出文件起个名字,比如:theme.reg。
接着用“记事本”打开Theme.reg。将[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager]替换为[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\ThemeManager],完成后保存,并双击将其导入注册表。
重启后就会发现启动和关机也变得一样美丽了,不过如果以后你更换了主题,那么还需要重复上面的步骤。
8.让Windows Server 2003出声
第一步:Windows Server 2003默认下是禁声的,要想让它有声音,那么首先在“服务”中找到并双击“Windows Audio”,将其设置为“自动”。这样音频就启用了。
第二步:现在要开启音频的硬件加速,点击“开始→控制面板→声音和音频设备”,选择“音频→高级→性能”,将“硬件加速”的滑块拉到最右边(完全)。
小提示:如果你还是听不到声音,那么请到“设备管理器”中手动升级声卡驱动,这是最佳的方法,因为打包的驱动程序(比如Liveware)是无法通过Setup.exe在Windows Server 2003中安装的。
9.打开刻录和图像捕获服务
按下WIN+L组合键打开“运行”窗口并输入:Services.msc,在服务列表中找到并双击“IMAPI CD-Burning COM Service”,将“启动类型”改为“自动”。重启后“资源管理器”右键菜单的“发送到”中便会出现“CD 驱动器”项。
如果你有数码相机,扫描仪之类的影像设备,最好找到并双击“Windows Image Acquisition”,并将它的“启动类型”改为“自动”。
小提示:在“服务”窗口中还建议禁用一些服务,从而节省系统资源开支,提高性能,比如:“Automatic Updates”(自动升级,控制自动从Windows Update网站下载升级和补丁)、“Computer Browser”(用于维护网络上计算机的列表)、“Nvidia Driver Helper Service”(Nvidia显卡驱动的帮助服务)、“Remote Registry”(远程用户修改本机的注册表)、“Secondary Logon”(启用替换凭据下的启用进程)、“Task Scheler”(计划任务)、“Windows Time”(维护网络上的所有客户端和服务器的时间和日期同步)等。
10.安装Plus! for Windows XP
第一步:将Plus! for Windows XP光盘放入光驱,然后进入“命令提示符”窗口,输入(假设你的光驱盘符是G):msiexec.exe/qn+/i "G:\Microsoft Plus! for Windows XP.msi"
第二步:经过一段时间后,会得到安装成功的信息。现在点击“开始→所有程序→Microsoft Plus!”即可打开Plus了,当然也可以进入“控制面板→添加/删除程序”,添加或删除Plus! for Windows XP的组件。
11.安装Windows XP游戏
Windows Server 2003没有自带任何小游戏,所以下面就把Windows XP的游戏移植过来。
第一步:准备好Windows Server 2003、Windows XP安装光盘。
第二步:到http://www.cfan.com.cn/下载XP_Games.zip,接着将压缩包内的DLL文件复制到C:\Windows\System32\Setup\,所有INF文件复制到C:\Windows\Inf\;
第三步:用“记事本”打开C:\Windows\Inf\Sysoc.inf,将下面的语句复制进该文件中的IEHarden=ocgen.dll,OcEntry,ieharden.inf,,7语句下面(空一行):
Games=ocgen2.dll,OcEntry,games.inf,,7
Pinball=ocgen2.dll,OcEntry,pinball.inf,,7
ZoneGames=zoneoc.dll,ZoneSetupProc,igames.inf,,7
完成后,保存该文件。
第四步:将Windows Server 2003安装光盘放入光驱,点击“控制面板→添加或删除程序→添加/删除Windows组件”,双击“附件和工具”,然后选中“游戏”并按下“确定”按钮。当弹出的窗口中提示“需要(未知)上的Freecell.exe”时,将Windows Server 2003光盘换成Windows XP安装光盘。
这样你就可以进入“开始→所有程序→游戏”中玩自己喜欢的游戏了。
优化设置
在桌面右击“我的电脑”,选择“属性”,进入“高级”选项卡,单击“性能”项下的“设置”按钮,在“视觉效果”中可选择要“最佳外观”、“最佳性能”、“自定义”或“让Windows选择”。
接着再进入“高级”选项卡,将“处理器计划”、“内存使用”都选择为“程序”,同时你还可以单击“虚拟内存”中的“更改”按钮对虚拟内存进行修改。另外,如果你的内存容量比较大(比如:超过512MB),那么可以试着取消系统的虚拟内存,也就是选中已经设置了的虚拟内存的分区,然后再选择下面的“无分页文件”项。这样,Windows Server 2003的注销和关机速度会大大提升。
小提示:同时还可以进入“系统属性→高级→错误报告”,然后选择“禁用错误报告”;单击“启动和故障恢复”下的“设置”按钮,然后进行相应调整,比如:取消“发送管理警报”、“写入调试信息”设置为“无”等。
in2003优化大全
作者:a 来源:
一、windows server 2003 3790版本识别
RTM=release to manufacture (公开发行批量生产)是给硬件制造商的版本!是送去压盘的,不是拿去卖的。
OEM=Original Equipment Manufacturer只能全新安装, 和RTM差不多,只是称呼不同而已。
RTL=retail(零售)正式零售版,可以升级或者全新安装。
VLK=Volume License大量授权版,又称为企业版。无需激活。(网上所谓的简体中文VLK版
实际是普通简体中文版加英文VLK版中的8个文件而已)
二、Windows Server 2003的不同版本
Windows Server 2003 Web版:为快速开发、部署Web服务与应用程序,提供Web托管与服务平台。支持2路
SMP(对称多处理)系统、2GB内存。
Windows Server 2003标准版:面向中小型企业和部门级应用。支持4路SMP、4GB内存。
Windows Server 2003企业版:适合中心与大型组织使用,有32位和64位两个版本。支持8节点集群、NUMA;
支持8路SMP,其中32位版支持32GB内存,64位版支持64GB内存。
Windows Server 2003数据中心版:面向要求强伸缩性和高可用性的企业,有32位和64位两个版本。32位版
支持32路SMP、64GB内存;64位版支持64路SMP、512GB内存;两个版本均支持8节点集群、NUMA
三、windows server 2003 3790版的激活
在正式版算号器没有出来之前,现在流行的激活方式有以下几种:
(1)Reset5.02,在安全模式下运行即可激活,把时间调整为2008年都没有问题,一切使用正常。可以升级。
缺点:激活程序被彻底屏蔽,表现为运行msoobe /a没有任何显示,并且在服务中有一项reset5,开机会自动运
行此服务,C:\WINDOWS\system32\srvany.exe,此程序应该是reset5添加入系统的。
(2)俄罗斯破解,记得在xp时代,只要把setupreg.hiv在安装前替换,然后电话激活就可以达到完美的激活境
界,可在2003下,这样子做之后,当前显示已激活,可如果你调整了时间再开机又会显示要激活,甚至是不能
使用。估计次次问题关键还是在那个setupreg.hiv文件。
(3)在论坛上有人贴出了一个Winxpactivation.exe的文件,号称可以激活,实际上这个还是假激活,暂时屏
蔽了激活程序,是不能够修改时间的。
(4)用替换法做出来的伪VLK,安装使用都没有问题,只是不能升级。VLK是替换英文版的8个文件.但是SN已经
被微软封掉了.所以不能升级,但是此法是最稳定的,没有任何问题。
结论:推荐大家用8个替换法激活和reset5.02激活!
四、win 2003 server的一些优化设置
1.禁用配置服务器向导:
禁止“配置你的服务器”(Manage Your Server)向导的出现:在控制面板(Control Panel) -> 管理员工具
(Administrative Tools )-> 管理你的服务器(Manage Your Server)运行它,然后在窗口的左下角复选“
登录时不要显示该页”(Don't display this page at logon)。
2.启用硬件和DirectX加速
★硬件加速:桌面点击右键--属性(Properties) -> 设置(Settings )--高级( Advanced )--
疑难解答(Troubleshoot)。把该页面的硬件加速滚动条拉到“完全”( Full),最好点击“确定”(OK)保
存退出。这期间可能出现一瞬的黑屏是完全正常。
★DirectX加速:打开“开始”(Start) -> “运行”(Run),键入“dxdiag”并回车打开“DirectX 诊
断工具”(DirectX Tools),在“显示”(Display)页面,点击DirectDraw, Direct3D and AGP Texture 加
速三个按钮启用加速。把“声音的硬件加速级别”(Hardware Sound Acceleration Level)滚动条拉到“完全
加速”( Full Acceleration)。
3. 启用声卡:
系统安装后,声卡是禁止状态,所以要在 控制面板 -> 声音 -> 启用,重启之后再设置它在任务栏显示。
如果你使用的是Windows server 2003标准版请从第二步xx作,因为标准版已允许声音服务。
★打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,在出现的窗口中找到
“Windows Audio”并双击它,然后在启动模式(startup type )的下拉菜单选择“自动”ˋutomatic),
并点击“应用”(Apply) ->“开始”(Start) -> “确定”(OK)
★打开“开始”(Start) -> “运行”(Run),键入“dxdiag”并回车打开“DirectX 诊断工具”
(DirectX Tools),在“Sound”(Display)页面,把“声音的硬件加速级别”
(Hardware Sound Acceleration Level)滚动条拉到“完全加速”( Full Acceleration)。
4. 如何粲?ASP 支持:
Windows Server 2003 默认安装,是不安装 IIS 6 的,需要另外安装。安装完 IIS 6,
还需要单独开启对于 ASP 的支持。方法是: 控制面板 -> 管理工具 ->
Web服务扩展 -> Active Server Pages -> 允许。
5. 如何启用 XP 的桌面主题:
★打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,选themes“主题”(默认是禁止的)
,然后改为“自动”,按“应用”,选“开启”。
★接着点“桌面”的属性,在“主题”里选“windows xp”
★我的电脑----属性----高级----性能-----在桌面上为图标标签使用阴影
6. 禁止关机时出现的关机理由选择项:
关机事件跟踪(Shutdown Event Tracker)也是Windows server 2003区别于其他工作站系统的一个设置,
对于服务器来说这是一个必要的选择,但是对于工作站系统却没什么用,我们同样可以禁止它。
打开”开始“Start ->”运行“ Run ->输入”gpedit.msc “,在出现的窗口的左边部分,
选择 ”计算机配置“(Computer Configuration )-> ”管理模板“(Administrative Templates )
-> ”系统“(System),在右边窗口双击“Shutdown Event Tracker” 在出现的对话框中选择“禁止”
(Disabled),点击然后“确定”(OK)保存后退出,这样,你将看到类似于windows 2000的关机窗口
7. 如何使用USB硬盘、U盘,添加已经有分区的硬盘
我的电脑(单击右键)----管理----磁盘管理-----在相应的硬盘上执行导入和分配盘符操作
8. 在控制面板里显示全部组件:
把 Windows\inf 目录中的 sysoc.inf 文件里的 "hide" 替换掉。
9.禁用Internet Explorer Enhanced Security 和禁止安全询问框的出现
在IE工具选项中自定义设置IE的安全级别。在”安全“(Security)选项卡上拉动滚动条把Internet区域
安全设置为”中“(Medium)或“中低”。自定义设置中将有关的选择“提示”修改为选择“禁止”或“启用”。
10. 禁用开机 CTRL+ALT+DEL和实现自动登陆
★方法1:打开注册表(运行->“Regedit”),再打开:
HKEY_LOCAL_MACHIN|SOFTWARE|MicroSoft|Windows NT|CurrentVersion |Winlogon段,在此段中按右键,新建
二个字符串段,AutoAdminLogon=“1”,DefaultPassword=“为超级用户Administrator所设置的Password”。
注意,一定要为Administrator设置一个密码,否则不能实现自启动。 然后,重新启动Windows即可实现自动登录。
★方法2:管理工具 -> Local Security Settings(本地安全策略) -> 本地策略 -> 安全选项 ->
interactive logon: Do not require CTRL+ALT+DEL,启用之。
★方法3(自动登陆):使用Windows XP的Tweak UI来实现Server 2003自动登陆。
下载:Tweak UI http://www.ssite.org/uppic/sun_pic/...003/tweakui.exe
下载后直接执行tweakui.exe 在左边的面板中选择Logon -> Autologon -> 在右边勾选Log on automatically
at system startup输入你的用户名和域名(如果没有就不写),点击下面的Set Password,输入用户名的密码
,然后点击OK。
11.隐藏文件
Windows Server 2003默认情况下是显示所有的文件夹的,如果你不想这样,可以通过一下方法来隐藏:
打开任意一个文件夹,选择工具(Tools) -> 文件夹选项(Folder Options) -> 查看(View),
调整 显示系统文件夹的内容、隐藏受保护的操作系统文件、隐藏文件和文件夹 三项
12.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务
.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务
★假如你希望启用Windows内置的IMAPI CD-Burning服务。做如下xx作:
打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,在出现的窗口中找到
“IMAPI CD-Burning COM Service ”并双击它,然后在启动模式(startup type )的下拉菜单选择“自动”
(Automatic),并点击“应用”(Apply) ->“开始”(Start) -> “确定”(OK)
★假如你有如数码相机和扫描仪之类的影像设备,你应该打开Windows Image Acquisition 服务。
打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,在出现的窗口中找到
“Windows Image Acquisition (WIA) ”并双击它,然后在启动模式(startup type )的下拉
菜单选择“自动”(Automatic),并点击“应用”(Apply) ->“开始”(Start) -> “确定”(OK)
13.高级设置
★我们可以修改一些windows server 2003的高级设置以适合工作站的应用环境。
右键点击“我的电脑”(My Computer)--属性(Properties)--高级(Advanced)--性能(Performance)
--设置(Setting)--高级(Advanced),把“处理器计划”(Processor scheling )和内存使用
(Memory usage)分配给“程序”(Programs)使用。然后点击“确定”(OK.)
★禁用错误报告
右键点击“我的电脑”(My Computer)--属性(Properties)--高级(Advanced)--点击“错误报告”
(Error Reporting )按钮,在出现的窗口中把“禁用错误报告”(Disable Error Reporting)选上并复选“
但在发生严重错误时通知我”(But, notify me when critical errors occur.)
★调整虚拟内存
一些朋友经常会对关机和注销缓慢感到束手无策,解决办法就是禁用虚拟内存,这样你的注销和关机时间可能
会加快很多。右键点击“我的电脑”(My Computer)--属性(Properties)--高级(Advanced)--性能
(Performance)--设置(Setting)--高级(Advanced),点击“虚拟内存”(Virtual memory)部分的
“更改”(Change),然后在出现的窗口选择“无分页文件”。重启系统即可。
14.加快启动和运行速度
★修改注册表,减少预读取,减少进度条等待时间:
开始→运行→regedit启动注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management\refetchParameters, 有一个键值名为EnablePrefetcher,它的值是3,把它改为
“1”或“5”。找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,
将 WaitToKillServiceTimeout 设为:1000或更小。 ( 原设定值:20000 )
找到 HKEY_CURRENT_USER\Control Panel\Desktop 键,将右边视窗的
WaitToKillAppTimeout 改为 1000, ( 原设定值:20000 )即关闭程序时仅等待1秒。
将 HungAppTimeout 值改为:200( 原设定值:5000 ), 表示程序出错时等待0.5秒。
★让系统自动关闭停止回应的程式。
打开注册表 HKEY_CURRENT_USER\Control Panel\Desktop 键,
将 AutoEndTasks 值设为 1。 ( 原设定值:0 )
★禁用系统服务Qos
开始菜单→运行→键入 gpedit.msc ,出现“组策略”窗口, 展开 "管理模板”→“网络” , 展开 "QoS 数
据包调度程序", 在右边窗右键单击“限制可保留带宽" ,在属性中的“设置”中有“限制可保留带宽" ,选
择“已禁用”,确定即可。当上述修改完成并应用后,用户在网络连接的属性对话框内的一般属性标签栏中如
果能够看到"QoS Packet Scheler(QoS 数据包调度程序)"。说明修改成功,否则说明修改失败。
★改变窗口弹出的速度:
找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics子键分支,在右边的窗口中找到
MinAniMate键值,其类型为REG_SZ,默认情况下此健值的值为1,表示打开窗口显示的动画,把它改为0,则禁
止动画显示,接下来从开始菜单中选择“注销”命令,激活刚才所作的修改。
★禁止Windows XP的压缩功能:
点击“开始”下的“运行”,在“运行”输入框中输入“regsvr32/u zipfldr.dll”,然后按回车键即可。
★设置个性的启动信息或警告信息:
个性化的Windows XP启动:打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Winlogon子键分支,双击LegalNoticeCaption健值,打开“编辑字符串”对话框,在“数
值数据”下的文本框中输入自己想要的信息标题,如“哥们儿,你好!”,然后点击“确定”,重新启动。
如果想要改变警告信息的话可以双击LegalNoticeText健值名称,在出现的“编辑字符串”窗口中输入想要显示
的警告信息,单击“确定”,重新启动。
15.安装Java VM
Windows server 2003没有集成MS Java VM或Sun Java VM,你可以自行下载并安装它。
16.安装DirectX 9a
在Windows Server 2003上安装DirectX 9a和在其他版本的Windows上安装DirectX 9a的方法是一样的。安装之前
必须先启用DirectX and Graphics Acceleration。
17.可用的杀毒软件和防火墙:
Symantec Norton Antivirus Corporate 8.01
Zone Alarm 3.7.159
Norton Personal Firewall 2003
五、如何防范ipc$入侵
1、禁止空连接进行枚举(此操作并不能阻止空连接的建立)
首先运行regedit,找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把
RestrictAnonymous = DWORD的键值改为:00000001。
restrictanonymous REG_DWORD
0x0 缺省
0x1 匿名用户无法列举本机用户列表
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server
2、禁止默认共享
1)察看本地共享资源
运行-cmd-输入net share
2)删除共享(每次输入一个)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)
3)修改注册表删除共享
运行-regedit
找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\LANMANSERVER\ARAMETers]
把AutoShareServer(DWORD)的键值改为0000000。
如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。
3、停止server服务
1)暂时停止server服务
net stop server /y (重新启动后server服务会重新开启)
2)永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务
控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-已禁用
4、安装防火墙(选中相关设置),或者端口过滤(滤掉139,445等)
1).解开文件和打印机共享绑定
鼠标右击桌面上[网络邻居]→[属性]→[本地连接]→[属性],去掉“Microsoft网络的文件和打印机共享”前面的勾,解开文件和打印机共享绑定。这样就会禁止所有从139和445端口来的请求,别人也就看不到本机的共享了。
2).利用TCP/IP筛选
鼠标右击桌面上[网络邻居]→[属性]→[本地连接]→[属性],打开“本地连接属性”对话框。选择[Internet协议(TCP/IP)]→[属性]→[高级]→[选项],在列表中单击选中“TCP/IP筛选”选项。单击[属性]按钮,选择“只允许”,再单击[
❼ sql语言中,各种数据类型代表的含义是什么
(1)数值型
数值是诸如32 或153.4 这样的值。MySQL 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“E”、一个符号(“+”或“-”)和一个整数指数来表示。1.24E+12 和23.47e-1 都是合法的科学表示法表示的数。而1.24E12 不是合法的,因为指数前的符号未给出。
浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。
数值前可放一个负号“-”以表示负值。
(2)字符(串)型
字符型(也叫字符串型,简称串)是诸如“Hello, world!”或“一个馒头引起的血案”这样的值,或者是电话号码87398413这样的值。既可用单引号也可用双引号将串值括起来。
初学者往往分不清数值87398143和字符串87398143的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的87398143是要参与计算的,比如它是金融中的一个货款总额;而字符型的87398143是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。
(3)日期和时间型
日期和时间是一些诸如“2006-07-12”或“12:30:43”这样的值。MySQL还支持日期/时间的组合,如“2006-07-12 12:30:43”。
(4)NULL值
NULL表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是NULL值。
我们用Create Table语句创建一个表,这个表中包含列的定义。例如我们在前面创建了一个joke表,这个表中有content和writer两个列:
定义一个列的语法如下:
其中列名由col_name 给出。列名可最多包含64个字符,字符包括字母、数字、下划线及美元符号。列名可以名字中合法的任何符号(包括数字)开头。但列名不能完全由数字组成,因为那样可能使其与数据分不开。MySQL保留诸如SELECT、DELETE和CREATE这样的词,这些词不能用做列名,但是函数名(如POS 和MIN)是可以使用的。
列类型col_type表示列可存储的特定值。列类型说明符还能表示存放在列中的值的最大长度。对于某些类型,可用一个数值明确地说明其长度。而另外一些值,其长度由类型名蕴含。例如,CHAR(10) 明确指定了10个字符的长度,而TINYBLOB值隐含最大长度为255个字符。有的类型说明符允许指定最大的显示宽度(即显示值时使用多少个字符)。浮点类型允许指定小数位数,所以能控制浮点数的精度值为多少。
可以在列类型之后指定可选的类型说明属性,以及指定更多的常见属性。属性起修饰类型的作用,并更改其处理列值的方式,属性有以下类型:
(1)专用属性用于指定列。例如,UNSIGNED 属性只针对整型,而BINARY属性只用于CHAR 和VARCHAR。
(2)通用属性除少数列之外可用于任意列。可以指定NULL 或NOT NULL 以表示某个列是否能够存放NULL。还可以用DEFAULT,def_value 来表示在创建一个新行但未明确给出该列的值时,该列可赋予值def_value。def_value 必须为一个常量;它不能是表达式,也不能引用其他列。不能对BLOB 或TEXT 列指定缺省值。
如果想给出多个列的专用属性,可按任意顺序指定它们,只要它们跟在列类型之后、通用属性之前即可。类似地,如果需要给出多个通用属性,也可按任意顺序给出它们,只要将它们放在列类型和可能给出的列专用属性之后即可。
2. MySQL的列(字段)类型
数据库中的每个表都是由一个或多个列(字段)构成的。在用CREATE TABLE语句创建一个表时,要为每列(字段)指定一个类型。列(字段)的类型比数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。
MySQL有整数和浮点数值的列类型,如表1所示。整数列类型可以有符号也可无符号。有一种特殊的属性允许整数列值自动生成,这对需要唯一序列或标识号的应用系统来说是非常有用的。
类型 说明
TINYINT 非常小的整数
SMALLINT 较小整数
MEDIUMINT 中等大小整数
INT 标准整数
BIGINT 较大整数
FLOAT 单精度浮点数
DOUBLE 双精度浮点数
DECIMAL 一个串的浮点数
表1:数值列类型
每种数值类型的名称和取值范围如表2所示。
类型说明 取值范围
TINYINT[(M)] 有符号值:-128 到127
无符号值:0到255(0 到28 - 1)
SMALLINT[(M)] 有符号值:-32768 到32767(- 215 到215 - 1)
无符号值:0到65535(0 到21 6 - 1)
MEDIUMINT[(M)] 有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 )
无符号值:0到16777215(0 到22 4 - 1)
INT[(M)] 有符号值:-2147683648 到2147683647(- 231 到231- 1)
无符号值:0到4294967295(0 到232-1)
BIGINT[(M)] 有符号值:-9223372036854775808 到 9223373036854775807(- 263到263-1)
无符号值:0到18446744073709551615(0到264 – 1)
FLOAT[(M, D)] 最小非零值:±1.175494351E - 38
DOUBLE[(M,D)] 最小非零值:±2.2250738585072014E - 308
DECIMAL (M, D) 可变;其值的范围依赖于M 和D
表2:数值列类型的取值范围
类型说明 存储需求
TINYINT[(M)] 1字节
SMALLINT[(M)] 2字节
MEDIUMINT[(M)] 3字节
INT[(M)] 4字节
BIGINT[(M)] 8字节
FLOAT[(M, D)] 4字节
DOUBLE[(M, D)] 8字节
DECIMAL (M, D) M字节(MySQL < 3.23),M+2字节(MySQL > 3.23 )
表3:数值列类型的存储需求
MySQL提供了五种整型: TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。INT为INTEGER的缩写。这些类型在可表示的取值范围上是不同的。整数列可定义为UNSIGNED从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。
MySQL 提供三种浮点类型: FLOAT、DOUBLE和DECIMAL。与整型不同,浮点类型不能是UNSIGNED的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。
在选择了某种数值类型时,应该考虑所要表示的值的范围,只需选择能覆盖要取值的范围的最小类型即可。选择较大类型会对空间造成浪费,使表不必要地增大,处理起来没有选择较小类型那样有效。对于整型值,如果数据取值范围较小,如人员年龄或兄弟姐妹数,则TINYINT最合适。MEDIUMINT能够表示数百万的值并且可用于更多类型的值,但存储代价较大。BIGINT在全部整型中取值范围最大,而且需要的存储空间是表示范围次大的整型INT类型的两倍,因此只在确实需要时才用。对于浮点值,DOUBLE占用FLOAT的两倍空间。除非特别需要高精度或范围极大的值,一般应使用只用一半存储代价的FLOAT型来表示数据。
在定义整型列时,可以指定可选的显示尺寸M。如果这样,M应该是一个1 到255的整数。它表示用来显示列中值的字符数。例如,MEDIUMINT(4)指定了一个具有4个字符显示宽度的MEDIUMINT列。如果定义了一个没有明确宽度的整数列,将会自动分配给它一个缺省的宽度。缺省值为每种类型的“最长”值的长度。如果某个特定值的可打印表示需要不止M个字符,则显示完全的值;不会将值截断以适合M个字符。
对每种浮点类型,可指定一个最大的显示尺寸M 和小数位数D。M 的值应该取1 到255。D的值可为0 到3 0,但是不应大于M - 2(如果熟悉ODBC 术语,就会知道M 和D 对应于ODBC 概念的“精度”和“小数点位数”)。M和D对FLOAT和DOUBLE 都是可选的,但对于DECIMAL是必须的。在选项M 和D时,如果省略了它们,则使用缺省值。
2.2字符串行类型
MySQL提供了几种存放字符数据的串类型,其类型如下:
类型名 说明
CHAR 定长字符串
VARCHAR 可变长字符串
TINYBLOB 非常小的BLOB(二进制大对象)
BLOB 小BLOB
MEDIUMBLOB 中等的BLOB
LONGBLOB 大BLOB
TINYTEXT 非常小的文本串
TEXT 小文本串
MEDIUMTEXT 中等文本串
LONGTEXT 大文本串
ENUM 枚举;列可赋予某个枚举成员
SET 集合;列可赋予多个集合成员
表4:字符串行类型
下表给出了MySQL 定义串值列的类型,以及每种类型的最大尺寸和存储需求。对于可变长的列类型,各行的值所占的存储量是不同的,这取决于实际存放在列中的值的长度。这个长度在表中用L 表示。
类型说明
最大尺寸
存储需求
CHAR( M)
M 字节
M 字节
VARCHAR(M)
M 字节
L + 1字节
TINYBLOB, TINYTEXT
28- 1字节
L + 1字节
BLOB, TEXT
216 - 1 字节
L + 2字节
MEDIUMBLOB, MEDIUMTEXT
224- 1字节
L + 3字节
LONGBLOB, LONGTEXT
232- 1字节
L + 4字节
ENUM(“value1”, “value2”, ...)
65535 个成员
1 或2字节
SET (“value1”, “value2”, ...)
64个成员
1、2、3、4 或8字节
表5:串行类型最大尺寸及存储需求
L 以外所需的额外字节为存放该值的长度所需的字节数。MySQL 通过存储值的内容及其长度来处理可变长度的值。这些额外的字节是无符号整数。请注意,可变长类型的最大长度、此类型所需的额外字节数以及占用相同字节数的无符号整数之间的对应关系。例如,MEDIUMBLOB 值可能最多224 - 1字节长并需要3 个字节记录其结果。3 个字节的整数类型MEDIUMINT 的最大无符号值为224 - 1。这并非偶然。
2.3日期时间列类型
MySQL 提供了几种时间值的列类型,它们分别是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。下表给出了MySQL 为定义存储日期和时间值所提供的这些类型,并给出了每种类型的合法取值范围。
类型名 说明
DATE “YYYY-MM-DD”格式表示的日期值
TIME “hh:mm:ss”格式表示的时间值
DATETIME “YYYY-MM-DD hh:mm:ss”格式
TIMESTAMP “YYYYMMDDhhmmss”格式表示的时间戳值
YEAR “YYYY”格式的年份值
表6:日期时间列类型
下面举个例子:
这个例子创建一个student表,这个表中有name字段,字符类型列,不允许NULL(空值)。有Chinese、Maths和English三个整数类型列。还有个Birthday日期类型列。
CREATE TABLE student
(
Name varchar(20) NOT NULL,
Chinese TINYINT(3),
Maths TINYINT(3),
English TINYINT(3),
Birthday DATE
)
❽ 如何查看 zabbix-server-pgsql 版本
查并笑看服务器RAID信息,硬盘是否正常戚宴。
[root@monitor~]# hpacucli ctrl all show config
Smart Array P410i in Slot 0 (Embedded) (sn: 5001438018042FF0)
array A (SAS, Unused Space: 0 MB)
logicaldrive 1 (279.4 GB, RAID 1, OK)
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
3)通过hpacucli ctrl all show config detail命令可以详细地查看RAID和硬盘的信绝仔含息。
[root@monitor ~]# hpacucli ctrl all show config detail
Smart Array P410i in Slot 0 (Embedded)
Bus Interface: PCI
Slot: 0
Serial Number: 5001438018042FF0
Cache Serial Number: PBCDH0CRH1FH62
RAID 6 (ADG) Status: Disabled
Controller Status: OK
Chassis Slot:
Hardware Revision: Rev C
Firmware Version: 5.14
Rebuild Priority: Medium
Expand Priority: Medium
Surface Scan Delay: 15 secs
Monitor and Performance Delay: 60 min
Elevator Sort: Enabled
Degraded Performance Optimization: Disabled
Inconsistency Repair Policy: Disabled
Post Prompt Timeout: 0 secs
Cache Board Present: True
Cache Status: OK
Accelerator Ratio: 25% Read / 75% Write
Drive Write Cache: Disabled
Total Cache Size: 512 MB
No-Battery Write Cache: Disabled
Cache Backup Power Source: Capacitors
Battery/Capacitor Count: 1
Battery/Capacitor Status: OK
SATA NCQ Supported: True
Array: A
Interface Type: SAS
Unused Space: 0 MB
Status: OK
Logical Drive: 1
Size: 279.4 GB
Fault Tolerance: RAID 1
Heads: 255
Sectors Per Track: 32
Cylinders: 65535
Stripe Size: 128 KB
Status: OK
Array Accelerator: Enabled
Unique Identifier:
Disk Name: /dev/cciss/c0d0
Mount Points: /boot 99 MB
Logical Drive Label: A00ADBD9PR7AMU1472 898D
Mirror Group 0:
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
Mirror Group 1:
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
physicaldrive 1I:1:1
Port: 1I
Box: 1
Bay: 1
Status: OK
Drive Type: Data Drive
Interface Type: SAS
Size: 300 GB
Rotational Speed: 10000
Firmware Revision: HPD4
Serial Number: ECA1PC80GTS31234
Model: HP EG0300FBDSP
PHY Count: 2
PHY Transfer Rate: 6.0GBPS, Unknown
physicaldrive 1I:1:2
Port: 1I
Box: 1
Bay: 2
Status: OK
Drive Type: Data Drive
Interface Type: SAS
Size: 300 GB
Rotational Speed: 10000
Firmware Revision: HPD7
Serial Number: PMX6902D
Model: HP EG0300FBDBR
PHY Count: 2
PHY Transfer Rate: 6.0GBPS, Unknown
HP官方还有一个hpasmcli管理工具,可以很详细查看服务器CPU,内存,处理器,电源等的温度信息。
❾ 高分求SQL的全部保留字是哪些
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
--事务控制
COMMIT --结束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据访问特征
--程序化SQL
DECLARE --为查询设定游标
EXPLAN --为查询描述数据访问计划
OPEN --检索查询结果打开一个游标
FETCH --检索一行查询结果
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
---局部变量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局变量
---必须以@@开头
--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --打印字符串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
--CASE
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*1.08
when job_level = ’2’ then e_wage*1.07
when job_level = ’3’ then e_wage*1.06
else e_wage*1.05
end
--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --打印变量x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c --打印变量c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
stockname like '[^F-M]%' --------- (^排除指定范围)
--------- 只能在使用like关键字的where子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stocksex = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by列号
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查询
--------- 除非能确保内层select只返回一个行的值,
--------- 否则应在外层where子句中用一个in限定符
select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 将表按行分组,指定列中有相同的值
having count(*) = 2 --------- having选定指定的组
select *
from table1, table2
where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示
table1.id =* table2.id -------- 右外部连接
select stockname from table1
union [all] ----- union合并查询结果集,all-保留重复行
select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value为select语句
***update***
update table_name set Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
***delete***
delete from table_name where Stockid = 3
truncate table_name ----------- 删除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全删除表
***alter table*** --- 修改数据库表结构
alter table database.owner.table_name add column_name char(2) null .....
sp_help table_name ---- 显示表已有特征
create table table_name (name char(20), age smallint, lname varchar(30))
insert into table_name select ......... ----- 实现删除列的方法(创建新表)
alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束
***function(/*常用函数*/)***
----统计函数----
AVG --求平均值
COUNT --统计数目
MAX --求最大值
MIN --求最小值
SUM --求和
--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id
--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
from employee)
--STDEV()
--STDEV()函数返回表达式中所有数据的标准差
--STDEVP()
--STDEVP()函数返回总体标准差
--VAR()
--VAR()函数返回表达式中所有值的统计变异数
--VARP()
--VARP()函数返回总体变异数
----算术函数----
/***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度转换为角度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT 类型
RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT 类型
EXP(float_expression) --返回表达式的指数值
LOG(float_expression) --返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10 为底的对数值
SQRT(float_expression) --返回表达式的平方根
/***取近似值函数***/
CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据
--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型
--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
PI() --返回值为π 即3.1415926535897936
RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数
----字符串函数----
ASCII() --函数返回字符表达式最左端字符的ASCII 码值
CHAR() --函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值
LOWER() --函数把字符串全部转换为小写
UPPER() --函数把字符串全部转换为大写
STR() --函数把数值型数据转换为字符型数据
LTRIM() --函数把字符串头部的空格去掉
RTRIM() --函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串
CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置
SOUNDEX() --函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
--0 两个SOUNDEX 函数返回值的第一个字符不同
--1 两个SOUNDEX 函数返回值的第一个字符相同
--2 两个SOUNDEX 函数返回值的第一二个字符相同
--3 两个SOUNDEX 函数返回值的第一二三个字符相同
--4 两个SOUNDEX 函数返回值完全相同
QUOTENAME() --函数返回被特定字符括起来的字符串
/*select quotename('abc', '{') quotename('abc')
运行结果如下
----------------------------------{
{abc} [abc]*/
REPLICATE() --函数返回一个重复character_expression 指定次数的字符串
/*select replicate('abc', 3) replicate( 'abc', -2)
运行结果如下
----------- -----------
abcabcabc NULL*/
REVERSE() --函数将指定的字符串的字符排列顺序颠倒
REPLACE() --函数返回被替换了指定子串的字符串
/*select replace('abc123g', '123', 'def')
运行结果如下
----------- -----------
abcdefg*/
SPACE() --函数返回一个有指定长度的空白字符串
STUFF() --函数用另一子串替换字符串指定位置长度的子串
----数据类型转换函数----
CAST() 函数语法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])
select cast(100+99 as char) convert(varchar(12), getdate())
运行结果如下
------------------------------ ------------
199 Jan 15 2000
----日期函数----
DAY() --函数返回date_expression 中的日期值
MONTH() --函数返回date_expression 中的月份值
YEAR() --函数返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
--函数返回两个指定日期在datepart 方面的不同之处
DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分
GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间
----系统函数----
APP_NAME() --函数返回当前执行的应用程序的名称
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值
COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值
COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名
DATALENGTH() --函数返回数据表达式的数据的实际长度
DB_ID(['database_name']) --函数返回数据库的编号
DB_NAME(database_id) --函数返回数据库的名称
HOST_ID() --函数返回服务器端计算机的名称
HOST_NAME() --函数返回服务器端计算机的名称
IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
/*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函数判断所给定的表达式是否为合理日期
ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值
NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值
NULLIF(<expression1>, <expression2>)
--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值
❿ 【模拟环境】SQL注入时如何绕过逗号和百分号
UNION 跟 UNION ALL 是交集跟并集的写法
select * from a union select * from b --这种是A表与B表结果的交集写法,合并表,没有重复行;
select * from a union all select * from b --这种是A表与B表结果的并集写法 有重复行;
a表和b表结构一样,合并两个表,没有重复行,如果要重复行用union all