付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.数据类型类型名称取值范围bigint、(±922 亿亿)8int、(±21 亿)4整数smallint、(±32768)2tin yi nt(0-255)1位型Bit由0和1表示真、假。money、(±922万亿)货币型smallm oney(±21万),精确到万分之一。十进制Decimal 、Numeric±1038-1,最大位数38位float、浮点数real(±1.79E+308) (±3.40E+38)1753.1.1-9999.12.31, 精确到 3.33日期Datetime、毫秒时间smallda
2、tetime1900.1.1-2079.12.31,精确到分钟char / varchar /单字节字符text定/变长单字节字符最长8000 ;n char / n varchar /Un icode 字符ntext定/变长双字节字符,最长4000 ;Binary / varb inary定/变长二进制数据, 最长8000 ;变二进制数据/ image长二进制数据特殊timesta mpSQL活动的先后顺序。类型uniq ueide ntifier全局唯一标识2.常量类型类型说明例如整型常量没有小数点和指数 E60,25,-365实型常量decimal 或 numeric 带小15.63、-
3、200.25数点的常数,float或real+123E-3、-12E5带指数E的常数字符串常量单引号引起来'学生','this is database'双字节前缀N必须是大写N'学生'字符串单引号引起来日期型常量单引号(')引起来'6/5/03','May 12 2008',19491001'货币型常量精确数值型数据,前缀$380.2二进制常量前缀Ox。0xAE、0x12Ef、0X69048AEFDD010E全局唯一前缀0x0X6F9619FF8B86D011B42D00C04FC964F标识符单引
4、号(')引起来F'6F9619FF-8B86-D011-B42D-00C04FC964FF'3.SQL查询分析器常用快捷键快捷键功能快捷键功能CTRL+A全选F3重复查找CTRL+C复制CTRL+H替换CTRL+V粘贴CTRL+SHIFT+L使选定内容为小写CTRL+X剪切CTRL+SHIFT+U使选定内容为大写CTRL+Z撤消CTRL+F5分析查询并检查语法TAB增大缩进二5执行查询SHIFT+TAB减小缩进ALT+BREAK取消查询CTRL+SHIFT+C注释代码F1查询分析器帮助CTRL+SHIFT+删除注释SHIFT+F1对所选SQL语句的帮助RCTRL+F查找
5、二8显示/隐藏对象浏览器4.select无源查询,即在客户的屏幕上显示内容SELECT常量I变量I函数I表达式as别名,nDECLARE语句声5.变量是由用户定义并可赋值的实体。变量有全局变量和局部变量两种。局部变量用明,声明时它被初始化为 NULL,并由SET语句或SELECT语句赋值,它只能用在声明该变量的过程实体符号开始。中,即使用范围是定义它的批、存储过程和触发器等。其名字由一个定义:DECLARE局部变量名数据类型,n赋值:SET局部变量名=表达式,n 如:declare 整型变量 int , s nvarchar (9)set 整型变量=40set s ='欢迎您到太原。s
6、elect 整型变量,s变量,也不可能使用SET语句去修改全局变量的值。通常应该将全局变量的值赋给在同一个批中的局部变 量,以便保存和处理。全局变量分为两类:? 与连接有关的全局变量,如:rowcou nt影响的行数;? 与系统内部信息有关的全局变量。如version SQL 的版本号。SQL常用的全局变量名称说明c onn ecti返回当前到本服务器的连接的数目。onsrowco unt返回上一条T-SQL语句影响的数据行数。error返回上一条T-SQL语句执行后的错误号。p rocid返回当前存储过程的ID号remserver返回登录记录中远程服务器的名字。s pid返回当前服务器进程的
7、ID标识。versio n返回当前SQL Server服务器的版本和处理器类型。la nguage返回当前SQL Server服务器的语言。7.函数可分系统定义函数和用户定义函数。系统定义函数中最常用的是:数学函数、字符串函数、日期时间函数、聚合函数、系统函数、系统统计函 数。数学函数:函数名称ROUND(数字表达式,小数位数)四舍五入FLOOR(数字表达式)整数函数(小于它的最大整数)CEILING(数字表达式)整数函数(大于它的最小整数)RAND()随机函数字符串函数:名称函数ASCII 码ASCII (字符表达式)字符CHAR (数字表达式)统一代码UNICODE (字符表达式)字符NC
8、HAR (数字表达式)小写-OWER (字符表达式)大写UPPER (字符表达式)长度-EN (字符表达式)空格SPACE(数字表达式)截取左字串_EFT(字符表达式,整数)截取右字串RIGHT(字符表达式,整数)截取中间字串SUBSTRING(字符表达式,起始点,n)求子串位置CHARINDEX( 字符表达式1,1字符表达式2,开始位置)剪去左空格-TRIM(字符表达式)剪去右空格RTRIM(字符表达式)重复字串REPLICATE(字符表达式,n)倒置字串REVERSE(字符表达式)数值转字串STR(数字表达式)日期时间函数名称函数现在日期时间GETDATE ()年YEAR(日期型表达式)月
9、MONTH (日期型表达式)日DAY (日期型表达式)日期部分DATE PART (格式串,日期型表达式)日期加DATEADD (格式串 擞值,日期)日期差DATEDIFF (格式串,日期1,日期2)聚合函数(除COUnt外,其它的都忽略空值)名称最大最小求和平均计数函数MAXMINSUMAVGCOUNT系统函数函数说明AP P_NAME当前会话的应用程序名称CURRENT_USER当前的数据库用户。USER_NAME用户数据库用户名。SESSION_USER会话用户名SYSTEM_USER系统用户名HOST_ID工作站标识号。HOST_NAME工作站名称。ISDATE是否为有效的日期。ISN
10、ULL是否为NULL。ISNUMERIC是否为一个有效的数字类型。ERROR最后执行的T-SQL语句的错误代码。TRANCOUNT当前连接的活动事务数。系统统计函数函数说明CONNECTIONS连接次数。CPUBUSYCPU的工作时间IDLE闲置的时间IO_BUSY输入和输出的时间TIMETICKS返回一刻度的微秒P ACK_SENT发送的数据包数P ACK_RECEIVED接受的数据包数P ACKET_ERRORS发生的数据包错误TOTAL_WRITE写入磁盘的次数TOTAL_READ读取磁盘的次数TOTAL_ERRORS磁盘读/写错误次数8.逻辑运算运算符含义AND而且OR或者NOT否定N
11、在之内KE匹配(像)BETWEEN在之间。EXISTS存在ALL所有(都)ANY任一SOME有些运算符优先级(从上到下,相同级从左到右)类型运算符元运算+(正)、-(负卜(按位NOT)乘除模*(乘卜/(除卜%(模)加减串联+(加)、(+串联)、-(减)比较运算=,>,< >=,<=,<>位运算A(位异或卜&(位与卜1(位或)逻辑非NOT逻辑与AND逻辑或等ALL、ANY、BETWEEN、IN、LIKE、OR、SOME赋值=9.批是一个SQL语句集,这些语句一起提交并作为一个组来执行。批结束的符号是“GO ”。由于批中的多个语句是一起提交给 SQL S
12、ERVER的,所以可以节省系统开销。使用批限制:CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW语句不能在批处理中与其它语句组合使用。批处理必须以CREATE语句开始,所有跟在 CREATE后的其它语句将被解释为第一个CREATE语句定义的一部分。? 在同一个批中不能既绑定到列又被使用规则或默认。? 在同一个批中不能删除一个数据库对象又重建它。? 在同一个批中不能改变一个表再立即引用其新列。10.1 . RETURNRETURN的作用是无条件返回所在的批、存储过程和触发器。退出时,可以返回状态信息。
13、在RETURN语句后面的任何语句不被执行。RETURN语句的语法形式: RETURN 整型表达式2 PRINT 和 RAISERRORPRINT 语句的作用是在屏幕上显示用户信息。其语法形式为:NT 日志中。其语法形式为:PRINT '字符串' | 局部变量 | 全局变量RAISERROR 语句的作用是将错误信息显示在屏幕上,同时也可以记录在RAISERROR( 错误号| 错误信息, 错误的严重级别 , 错误时的状态信息 )。3 复合语句 (BEGIN.END)其语法形式为:BEGIN执行的 SQL 语句END4 CASE 表达式 根据测试 / 条件表达式的值的不同,取其相应的
14、值。CASE WHEN 条件表达式 0 THEN 结果表达式 0,.n ELSE 结果表达式 nEND如: declare 分数 decimaldeclare 成绩级别 nchar(3)set 分数= 88set 成绩级别casewhen 分数 >=90 and 分数 <=100 then ' 优秀 'when 分数 >=80 and分数 <90 then '良好 'when 分数 >=70 and分数 <80 then '中等 'when 分数 >=60 and分数 <70 then '及
15、格 'when 分数 <60 then不及格 'endprint 成绩级别CASE 测试表达式WHEN 简单表达式 0 THEN结果表达式 0,.nELSE 结果表达式 nEND如: declare 分数 decimaldeclare 成绩级别 nchar(3)set 分数= 88set 成绩级别case floor( 分数 /10)when 10 then '优秀when 9 then '优秀 'when 8 then '良好'when 7 then '中等 'when 6 then '及格'els
16、e ' 不及格 'endprint 成绩级别5判断语句 (IF.ELSE)语法:IF 条件表达式SQL 语句 1ELSESQL 语句 26循环语句 (WHILE)WHILEWHILE条件表达式语句的作用是为重复执行某一语句或语句块设置条件。其语法形式为:SQL 语句 | 复合语句说明: BREAK 、 CONTINUE 位于复合语句内,为可选项。 BREAK 跳出循环之后执行 、 CONTINUE转到循环开始之处执行。如:计算 1到 100 之间偶数的个数和偶数的总和declare score int declaresum int declare count intset sc
17、ore =1 set count= 0 set sum = 0while score <= 100beginif score %2= 0begin/当在控制流中需要用 begin nd来代替其他语言中的花括号set sum = sum + score set count =count + 1end set score = score + 1endselect sum ,count7注释多行注释:/*/单行 注释:SQL 杂汇1. 创建数据库CREATE DATABASE 数据库名 ON (NAME = ' 逻辑文件名 ',FILENAME = ' 物理文件名 .m
18、df ') LOG ON (NAME = ' 逻辑文件名 _log',FILENAME ='物理文件名 _log.ldf ')如:create database 教学成绩管理数据库on(name = 教学成绩管理数据库 ,教学成绩管理数据库 .mdf',size = 1,filegrowth = 10%)log on(name = 教学成绩管理数据库 _log,filename =教学成绩管理数据库 .ldf',size = 5,filegrowth = 10%)2. 查看数据库,以下四种:sp_helpdb 数据库名 / 显示一个数据库
19、的信息sp_databases/ 显示系统内所有可用的数据库sp_helpfile 数据库名 sp_helpfilegroup 文件组名3. 修改数据库ALTER DATABASE命令中分别用下列选项:ADD FILE增加数据文件REMOVE FILE删除数据文件MODIFY FILE修改数据文件ADD LOG FILE增加日志文件REMOVE LOG FILE删除日志文件MODIFY LOG FILE修改日志文件如: - 【例 5.12 】设置教学成绩管理数据库 自动收缩。alter database 教学成绩管理数据库 set auto_shrink on4. 删除数据库DROP DATA
20、BASE数据库名 ,5. 表的管理创建表: CREATE TABLE 数据表名 ( 列名 数据类型 | 列名 AS 计算列表达式 ,.n )显示表的结构:sp_help 数据库对象名 sp_tableoption '学生简历照片表 ','text in row','1000'不大于 1000 字节列的管理:示例: alter table 学生信息表alter column 姓名nchar(4) not nullALTER TABLE表名ADD 列名 列的描述ALTER TABLE表名DROP COLUMN列名,ALTER TABLE表名ALTER
21、 COLUMN列名 列的描述1 添加列2 删除列3 修改列删除表: DROP TABLE 表名6. 数据的管理1. 插入数据:INSERT INTO表名(列名1,)Values (表达式1,)2.更新数据:UPDATE 表名SET 列名= 表达式 WHERE 条件3.删除数据:DELETE 表名WHERE 条件 或 TRUNCATE TABLE 表名4.图像、文本数据的管理:代研究。1. sp_tableoption '表名 ', 'text in row',值'sp_tableoption '学生简历照片表 ','text in
22、 row','on'不大于 256 字节。不在行中存储sp_tableoption '学生简历照片表,'text in row','off2.写入数据:WRITETEXT表名.列名指针变量数据(TEXTPTR函数获得有效的文本指针值 )3.修改数据:UP DATETEXT 表名.列名 指针变量 NULL|位置 NULL|长度 数据4.读出数据:READTEXT表名.列名指针位置长度7. 小结功能语句语法格式CREATE DATABASE 数据库名ON (NAME =' 逻辑文件名',创建数据库*FILENAME ='
23、;物理文件名.mdf)数据库LOG ON (NAME ='逻辑文件名 _log'.FILENAME ='物理文件名 _log.ldf)删除数据库*DROP DATABASE 数据库名CREATE TABLE数据表名(列名数据类型I列名AS计算列表达式数据表创建表*,n 添加列ALTER TABLE表名ADD 列名列的描述ALTER TABLE 表名修改列数据表修改表ALTER COLUMN 列名列的描述ALTER TABLE 表名删除列DROP COLUMN 列名,删除表*DROP TABLE 表名插入数据*NSERT INTO 表名(列名 1,)Values (表达式
24、1,)修改数据*UP DATE表名SET列名=表达式WHERE条件删除数据*DELETE 表名WHERE 条件数据操作数据查询l.select基本语法:SELECT字段列表INTO目标数据表FROM源数据表或视图,.nWHERE条件表达式GROUP BY分组表达式HAVING 搜索表达式ORDER BY 排序表达式ASC|DESCCO MP UTE 行聚合函数名(表达式),. .nBY 表达式,.n 2.聚合函数函数名功能sum()对数值型列或计算列求总和avg()对数值型列或计算列求平均值min()返回一个数值列或数值表达式的最小值max()返回一个数值列或数值表达式的最大值cou nt()
25、返回满足指定的条件的记录的个数coun t(*)返回找到的行数3.连接查询(S1难点)1).内连接(自然连接):FROM 表1 inner JION 表2 ON 条件表达式1(查询两张表都存在的)2).外连接:(1)左外连接:FROM表1 LEFT OUTER JOIN 表2 ON 条件表达式(主表存在的,即紧跟from的表)3).右外连接:FROM全外连接:FROM表 1 RIGHT表 1 FULL自连接:在同一张表内进行自身连接OUTER JOIN 表2 ON 条件表达式(从表存在的,即后面的OUTER JOIN 表2 ON 条件表达式(两张表有一存在即可)(必须为表指定两个别名)4).交
26、叉连接:非限制连接,将两个表不加任何约束地组合起来FROM 表 1 CROSS JOIN 表 2 或 FROM 表 1,表 24.合并结果集:Union ALL注意:(1)联合查询是将两个表(结果集)顺序连接。(2)UNION 中的每一个查询所涉及的列必须具有相同的列数、相同位置的列数据类型要相同。若长度不同,以最长的字段作为输出字段的长度。结果集中的列名来自第一个 SELECT语句。最后一个 SELECT查询可以带 ORDER BY子句,对整个UNION 操作结果集起作用。 且只能用第一个SELECT查询中的字段作排序列。(5)系统自动删除结果集中重复的记录,除非使用ALL关键字。BY分类表
27、达式,n 5. COMPUTE 行聚合函数名(统计表达式),.n函数描述AVG平均值COUNT行数MAX最高值MIN最低值SUM和STDEV统计标准偏差STDEVP填充统计标准偏差VAR统计方差VARP填充统计方差注意:(1)COMPUTE 或COMPUTE BY 子句中的表达式,必须出现在选择列表中,并且必须将其指定为与选择列表中的某个表达式完全一样,不能使用在选择列表中指定的列的别名。在COMPUTE 或COMPUTE BY 子句中,不能指定 ntext、text和image数据类型。如果使用 COMPUTE BY,则必须也使用 ORDER BY 子句。表达式必须与在QRDER BY 后列
28、出ORDER BY 子句是:ORDER BY a, b,的子句相同或是其子集,并且必须按相同的序列。例如,如果c 则 COMPUTE 子句可以是下面的任意一个 ( 或全部 ) :COMPUTE BY a, b, c 或 COMPUTE BY a, b 或 COMPUTE BY a(4)在 SELECT INTO 语句中不能使用 COMPUTE 。因而,任何由 COMPUTE 生成的计算结果不出现在用 SELECT INTO 语句创建的新表内。数据视图6.创建视图:CREATE VIEW 视图名(列名1 ,n) AS 查询语句注意:(1)定义视图的用户必须对所参照的表或视图有查询权限,即可执行S
29、ELECT 语句。(2)(3)不能使用 ORDER BY 子句。(4)不能使用 INTO 子句。(5)不能在临时表或表变量上创建视图。不能使用 COMPUTE 或 COMPUTE BY 子句。修改视图:ALTER VIEW 视图名(列名1 ,n) AS查询语句删除视图:DROP VIEW 视图名,n7. 注意事项:即对不同( 1 )只有在当前数据库中才能创建视图。(2)视图的命名必须遵循标识符命名规则,不能与表同名,且对每个用户视图名必须是惟一的,用户,即使是定义相同的视图,也必须使用不同的名字。(3) 不能把规则、默认值或触发器与视图相关联。(4) 不能在视图上建立任何索引,包括全文索引。(
30、5) 使用视图查询时,若其关联的基本表中添加了新字段,则必须重新创建视图才能查询到新字段。(6) 如果与视图相关联的表或视图被删除,则该视图将不能再使用。8.小结SELECT语句语法格式SELECT字段列表INTO目标数据表FROM源数据表或视图,WHERE 条件表达式GRO UP BY 分组表达式HAVING 搜索表达式ORDER BY 排序表达式ASC|DESCCOMPUTE 行聚合函数名 1(表达式1),. .nBY 表达式,.n 子句语法格式列 1 ,. .nSELECT ALL|DISTINCTT OP n P ERCENT1. * 所有列2. 表名|视图名|表别名.列名指定列SEL
31、ECT3.列表达式as另名|计算字段名=表达式列别名4. ALL | DISTINC所有结果或去掉重复的结果5. TOP n P ERCENT前n条(n%)的结果1.FROMAS 表别名1 |视图1 AS 视图别名1 , .n2.FROMinner JION 表2 ON 条件表达式3.FROMLEFT OUTER JOIN表2 ON 条件表达式FROM4.FROMRIGHT OUTER JOIN表2 ON条件表达式5.FROMFULL OUTER JOIN表2 ON 条件表达式6.FROMCROSS JOIN 表 2或 FROM 表1 ,表2WHEREORDER BYNTOWHERE条件表达式
32、1.表达式比较运算符表达式2.表达式AND|OR表达式或:NOT表达式3.表达式NOT BETWEEN表达式1 AND表达式4.表达式NOT IN (表达式1,表达式n)5.表达式NOT LIKE格式串通配符:% _F2ORDER BY 表达式 1 ASCI DESC,nINTO目标数据表(如果要存到临时表里,则表名前要加#)GROUP BY GROUP BY分组表达式 ,.n HAVING 搜索表达式COMP UTE 行聚合函数名1(统计表达式1),nCOMPUTEBY分类表达式,n UNION查询语句1 UNION ALL 查询语句2语句语法格式定义创建修改删除视图操作插入修改删除CREA
33、TE VIEW 视图名(列名1 ,n) AS 查询语句ALTER VIEW 视图名(列名1 ,n) AS查询语句DROP VIEW 视图名,nINSERT INTO 表名 视图名(列名1,) Values (表达式1,)UP DATE 表名视图名SET列名=表达式 WHERE 条件DELETE表名视图名WHERE 条件查询SELECT字段列表FROM 数据表视图,关于数据完整性创建 check 约束: ALTER TABLE < 表名 > ADD CONSTRAINT < 约束名 > CHECK ( 约束内容 )1. 约束种类 .? NOT NULL (非空)约束PRI
34、MARY KEY (主键)约束UNIQUE (惟一性)约束CHECK (检查)约束DEFAULT (默认)约束FOREIGN KEY (外键)约束2.非空约束: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 NULL | NOT NULL ,)主键约束: CREATE TABEL 数据表名 (列名 数 据类型 CONSTRAIN 约束名 PRIMARY KEYCLUSTERED | NONCLUSTERED,)(说明:语法格式1定义单列主键,CLUSTERED 和NONCLUSTERED分别代表聚集索引和非聚集索引。语法格式 2 :CREATE TABEL
35、数据表名 (CONSTRAIN 约束名 PRIMARY KEY CLUSTERED |NONCLUSTERED(列名1,n),.)(说明:语法格式2定义多列 组合主键,CLUSTERED和NONCLUSTERED分别代表聚集索引和非聚集索引。唯一性约束: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 UNIQUE CLUSTERED |NONCLUSTERED ,.) (单列约束)语 法 格 式 2 : CREATE TABEL 数 据 表 名 (CONSTRAIN 约 束 名NONCLUSTERED(列名 1,n),.)(多列唯一性约束) UNIQUE C
36、LUSTERED |约束名CHECK (逻辑表达式),.) (说明:如果是在现有表中添加检查约束,可以设置WITH NOCHECK,对现有数据强制约束约束CHECK约束:CREATE TABEL数据表名(列名 数据类型CONSTRAINT检查)默认约束:语法格式 1 : CREATE TABEL 数据表名 (列名数据类型 CONSTRAINT约束名 DEFAULT默认值 ,.)语法格式 2 : CREATE TABEL 数据表名 (CONSTRAINT约束名 DEFAULT 默认值FOR 列,.)时,也将从引用表中删除引用行;ONUPDATE CASCADE 表示级联更新,即父表中更新被引用行时,约束名 FOREIGN外键约束:语法格式 1 : CREATE TABEL 数据表名 (列名 数据类型 CONSTRAINKEY REFERENCES 参照主键表 (参照列 ) ON DELETE CASCADE | ON UPDATE CASCADE ,.)说明:语法格式 1 定义单列外键约束。ON DELETE CASCADE 表示级联删除,即父表中删除被引用行也将在引用表中更新引用行。语法格式 2 : CREATE TABEL数据表名(CONSTRAIN 约束名FOREIGN KEY(列,n)refere nces 参照主键表 (参照列,n) ON DELETE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机科学概论(微课版)· 第8章 大数据 · 教学课件
- 虚拟现实设备技术参数统一标准信函(3篇)
- 菏泽中考政治模拟试题及答案
- 展会活动策划与实施指导手册
- 旅游目的地宣传推广计划通知(5篇范文)
- 通讯设备供应商质量审查通知(6篇)范文
- 智慧城市交通物流行业智能配送与调度优化方案
- 办公耗材采购函件模板(4篇)
- 北京华恒智信赋能投资公司搭建科学投资决策体系
- 安全第一:校园安全你我他小学主题班会课件
- 公文起草培训课件
- 水痘的诊断标准课件
- 2025年上海市法院系统辅助文员招聘笔试模拟试题及参考答案详解一套
- 《生态文明教育》高职生态文明教育课程全套教学课件
- 员工公出管理办法
- 医院领导带班管理制度
- JG/T 157-2009建筑外墙用腻子
- T/CEMTA 2-2022工业电子雷管通用型起爆器
- T∕CITS 172-2024 居家医学检验外送服务规范
- 2024年国家现行有关工程施工和验收的标准、规范、规程、图集合集
- 办理暂住证授权委托书格式
评论
0/150
提交评论