练习sql知识.docx

上传人:b****7 文档编号:11018901 上传时间:2023-02-24 格式:DOCX 页数:12 大小:18.22KB
下载 相关 举报
练习sql知识.docx_第1页
第1页 / 共12页
练习sql知识.docx_第2页
第2页 / 共12页
练习sql知识.docx_第3页
第3页 / 共12页
练习sql知识.docx_第4页
第4页 / 共12页
练习sql知识.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

练习sql知识.docx

《练习sql知识.docx》由会员分享,可在线阅读,更多相关《练习sql知识.docx(12页珍藏版)》请在冰豆网上搜索。

练习sql知识.docx

练习sql知识

select*fromSur_BaseInfo_T

select*

fromSur_BaseInfo_T

whereSurType='CAG'

select*

from表

where字段='条件'

and和or使用

 

select*

fromSur_BaseInfo_T

whereSurType='急诊PCI手术'orSur_OperaterName='王东'

select*

from表

where字段='条件'and字段='条件'

 

select*

fromSur_BaseInfo_T

whereSurType='急诊PCI手术'andSur_OperaterName='王东'

select*

fromSur_BaseInfo_T

whereSurName='冠脉手术'andSur_AssistName='刘国勇'andSur_NurseName='李琦'

排序

 

selectsurcode,surtype

fromSur_BaseInfo_T

orderbySurTypedesc

 

select字段,字段

from表

orderby字段desc

 

INSERTINTO语句用于向表格中插入新的行。

INSERTINTO表VALUES('Gates','Bill','Xuanwumen10','Beijing')

INSERTINTOTev_ObrVALUES('ORID0000000000000829','1','造影检查','冠脉造影','2015-07-03','20150515123325','20150515123325','2','2','2','2','2','2','2','王振星','2','2','2','2','2','2','2','2','未到检','2','1','2','2','2','2','2','2','2','2','20150515123326','2','2','2','2','2','2','2','PVID0000000000001073','2','2')

select*fromTev_Obr

Update语句

Update语句用于修改表中的数据。

 

updateTev_Obr

setPlacer_Order_Number='ORID0000000000000829'

wherePlacer_Order_Number='1'

 

update表

set字段='条件'

where字段='条件'

select*fromTev_Pid

wherePATIENT_NAME='孙延仁'

select*fromTev_Pid

wherePATIENT_NAME='周树云'

select*fromTev_Pid

wherePATIENT_NAME='李登荣'

select*fromTev_Pid

wherePATIENT_NAMElike'成%'

 

updateTev_Pid

setPATIENT_IDENTIFIER_LIST='00738343'

wherePATIENT_NAME='蒲慧莲'

 

select*fromTev_Pid

updateTev_Pid

setPATIENT_IDENTIFIER_LIST='00'+PATIENT_IDENTIFIER_LIST

wherePATIENT_IDENTIFIER_LISTin('668504','667504','668514')

Update表

Set字段=’要添加的条件’+字段

Where字段=(原始条件)

Update表

Set字段=’要添加的条件’+字段

Where字段in(‘条件’,’条件’,’条件’,......)

 

select*fromTev_Pid

wherePATIENT_IDENTIFIER_LIST=('00668504')

 

updateSur_BaseInfo_T

setVisitNumber=(selectVISIT_NUMBERfromTev_Pv1wherePATIENT_IDENTIFIER_LIST='00738274')

wherePatientID='00738274'

 

select*fromSur_BaseInfo_TwherePatientID='错误的患者编号'

updateSur_BaseInfo_TsetPatientID='正确的患者编号'wherePatientID='错误的患者编号'

 

selectPATIENT_IDENTIFIER_LIST,VISIT_NUMBER

fromTev_Pv1

wherePATIENT_IDENTIFIER_LIST='00738274'

 

updateSur_BaseInfo_T

setVisitNumber=(selectVISIT_NUMBERfromTev_Pv1wherePATIENT_IDENTIFIER_LIST='00738274')

wherePatientID='00738274'

 

deletefromTev_Obr

wherePlacer_Order_Number='ORID0000000000000829'

deletefrom表

where字段='条件'

 

INSERTINTOTev_ObrVALUES('ORID0000000000000829','1','造影检查','冠脉造影','2015-07-03','20150515123325','20150515123325','2','2','2','2','2','2','2','王振星','2','2','2','2','2','2','2','2','未到检','2','1','2','2','2','2','2','2','2','2','20150515123326','2','2','2','2','2','2','2','PVID0000000000001073','2','2')

 

TOP子句用于规定要返回的记录的数目。

 

SELECTTOP2*FROMTev_Obr

SELECTTOP2*FROM表

LIKE操作符用于在WHERE子句中搜索列中的指定模式。

 

select*fromSur_BaseInfo_T

 

select*fromSur_BaseInfo_T

whereSur_OperaterNamelike'%雪'

select*from表

where字段like'%条件'

 

select*fromSur_BaseInfo_T

whereSurNamelike'_AG'

 

IN操作符实例

现在,我们希望从上表中选取姓氏为'条件'和'条件'的人:

 

SELECT*FROMSur_BaseInfo_T

WHERESur_OperaterNameIN('药素毓','白明')

SELECT*FROM表

WHERE字段IN('条件','条件')

 

BETWEEN操作符在WHERE子句中使用,作用是选取介于两个值之间的数据范围。

BETWEEN操作符

操作符BETWEEN...AND会选取介于两个值之间的数据范围。

这些值可以是数值、文本或者日期。

如需以字母顺序显示介于"Adams"(包括)和"Carter"(不包括)之间的人,请使用下面的SQL:

BETWEEN操作符在WHERE子句中使用,作用是选取介于两个值之间的数据范围。

SELECT*FROMSur_BaseInfo_T

WHERESurCode

BETWEEN'SGCD0000000000001779'AND'SGCD0000000000001804'

orderbySurCodedesc

 

SELECT*FROM表

WHERE字段

BETWEEN'条件'AND'条件'

select*fromSur_VitalSigns_T

COUNT()函数返回匹配指定条件的行数。

SELECTCOUNT(recordcode)AStttFROMSur_VitalSigns_T

SELECTCOUNT(字段)AS总字段FROM表

SELECTCOUNT(DISTINCTPATIENT_NAME)AS'总人数'FROMTev_Pid

 

selectCOUNT(PATIENT_NAME)as'总人数'fromTev_Pid

嵌套使用

selectReportCode

fromSur_SurgReport_T

whereIDin

(selectID

fromSur_SurgReport_T

whereID='85')

 

GROUPBY语句

GROUPBY语句用于结合合计函数,根据一个或多个列对结果集进行分组。

SELECT字段,SUM(字段)FROM表

GROUPBY字段

 

select*fromStk_CodeRule_T

selectCodeFieldName,SUM(BaseIndex)

fromStk_CodeRule_T

groupbyCodeFieldName

 

selectSur_OperaterName,surtype,count(SurType)as'总计'

fromSur_BaseInfo_T

groupbySur_OperaterName,SurType

orderbySur_OperaterName

--select字段,字段,count(字段)as’列名‘

--from表

--groupby字段,字段

--orderby字段

SQLCREATEVIEW视图语法

CREATEVIEW视图名字AS

SELECT字段

FROM表名字

WHERE条件

CREATEVIEWTest_oAS

SELECTTableName

FROMStk_CodeRule_T

WHERECodeFieldName='UnitCode'

 

SQLCREATEORREPLACEVIEWSyntax

CREATEORREPLACEVIEWview_nameAS

SELECTcolumn_name(s)

FROMtable_name

WHEREcondition

 

select*fromSur_VitalSigns_T

SELECT*FROMSur_VitalSigns_TWHERERecordTime='2015-04-2711:

02:

52.000'

 

SQLISNOTNULL

我们如何选取在"Address"列中不带有NULL值的记录呢?

我们必须使用ISNOTNULL操作符:

SELECT字段,字段,字段FROM表

WHERE字段ISNOTNULL

 

select字段1,字段2from表

where字段2isnotnull

 

selectPATIENT_NAME,DATE_TIME_OF_BIRTH

fromTev_Pid,Tev_Pv1

whereTev_Pid.PATIENT_IDENTIFIER_LIST=Tev_Pv1.PATIENT_IDENTIFIER_LIST

andsex='男'

 

selectPATIENT_NAME,DATE_TIME_OF_BIRTH

fromTev_Pid

wheresex='男'

 

selectTev_Pid.PATIENT_NAME,DATE_TIME_OF_BIRTH,Tev_Pv1.VISIT_NUMBER

fromTev_Pid,Tev_Pv1

whereTev_Pid.PATIENT_IDENTIFIER_LIST=Tev_Pv1.PATIENT_IDENTIFIER_LIST

 

截取数据库10条记录

selecttop10*fromTev_Pid

orderbynewid()

获取sql所有数据库名称

SelectNameFromMaster..SysDatabasesorderByName

 

获取数据库

SelectNameFromSysObjectsWhereXType='U'orderByName

获取系统数据库

SelectNameFromSysObjectsWhereXType='S'orderByName

--获取数据库所有字段名

SelectNameFromSysColumnsWhereid=Object_Id('Tev_Pid')

select*fromTev_Pv1

select*fromTev_Pid

 

--(cast(substring([EvtSysData].[dbo].[Tev_Pv1].[ADMIT_DATE_TIME],1,4)asint)-cast(substring([EvtSysData].[dbo].[Tev_Pid].[DATE_TIME_OF_BIRTH],1,4)asint))between'24'and'70')

 

SELECT*FROMTev_PidWHEREDATEDIFF(year,19390210,GETDATE())>29

左连接

SELECT表1。

字段,表2。

字段

FROM表1

LEFTJOIN表2

ON表1。

字段_ID=表2。

字段_ID

selectTev_Pid.PATIENT_IDENTIFIER_LIST,PATIENT_NAME,Sur_BaseInfo_T.SurName

fromTev_Pid

leftjoinSur_BaseInfo_T

onTev_Pid.PATIENT_IDENTIFIER_LIST=Sur_BaseInfo_T.PatientID

leftjoin(左联接):

返回包括左表中的所有记录和右表中联结字段相等的记录。

3

rightjoin(右联接):

返回包括右表中的所有记录和左表中联结字段相等的记录。

4

innerjoin(等值连接):

只返回两个表中联结字段相等的行。

--在SQL中增加HAVING子句原因是,WHERE关键字无法与合计函数一起使用。

Count函数

--COUNT返回指定列不同值的记录数

Distinct函数

--distinct返回唯一不同的值

 

--EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False

--EXISTS指定一个子查询,检测行的存在。

----分析器会先看语句的第一个词,当它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存。

--接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析,如果找到WHERE,则分析其中的条件,完成后再回到SELECT分析字段。

最后形成一张我们要的虚表。

----WHERE关键字后面的是条件表达式。

条件表达式计算完成后,

--会有一个返回值,即非或,非即为真(true),即为假(false)。

--同理WHERE后面的条件也有一个返回值,真或假,来确定接下来执不执行SELECT。

----分析器先找到关键字SELECT,然后跳到FROM关键字将STUDENT表导入内存,并通过指针找到第一条记录,

--接着找到WHERE关键字计算它的条件表达式,如果为真那么把这条记录装到一个虚表当中,指针再指向下一条记录。

--如果为假那么指针直接指向下一条记录,而不进行其它操作。

一直检索完整个表,并把检索出来的虚拟表返回给用户。

--EXISTS是条件表达式的一部分,它也有一个返回值(true或false)。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1