收藏 分销(赏)

测试人员应该掌握的基本SQL语句.doc

上传人:天**** 文档编号:3138170 上传时间:2024-06-19 格式:DOC 页数:16 大小:357KB 下载积分:8 金币
下载 相关 举报
测试人员应该掌握的基本SQL语句.doc_第1页
第1页 / 共16页
测试人员应该掌握的基本SQL语句.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
3.1.1 SQL发展历程  考核要求:达到“识记”   层次知识点:SQL的发展历程   SQL:结构式查询语言,虽然名为查询语言,实际上具有定义、查询、更新和控制等多种功能。   3.1.2 SQL数据库的体系结构   考核要求:达到“领会”   层次知识点:三级结构的理解   SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称“行”,属性称“列”。   SQL数据库体系的结构要点如下:   (1)一个SQL数据库是表的汇集。   (2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。   (3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。   (4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。   (5)用户可以用SQL语句对表进行操作,包括视图和基本表。   (6)SQL的用户可以是应用程序,也可以是终端用户。   3.1.3 SQL的组成   考核要求:达到“识记”   层次知识点:四个组成部分   SQL由四部分组成:   (1)数据定义:SQL DDL.定义SQL模式,基本表、视图和索引。   (2)数据操纵:SQL DML.包括数据查询和数据更新(增、删、改)。   (3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。   (4)嵌入式SQL的使用规定。 系统分析师是计算机行业的高级人才,是一个大型软件项目的核心领导者,他的主要职责是对软件项目进行整体规划、需求分析、设计软件的核心架构、指导和领导项目开发小组进行软件开发和软件实现,并对整个项目进行全面的管理工作。系统分析师的工作职责决定了他必须是计算机行业各个领域的精通者,因此一个合格的系统分析师,能够精通各种计算机前沿理论、具体的软硬件开发技术、大型数据库的知识、项目的整体规划和框架设计、模块式设计和开发技术、数字化建设知识等等。系统分析师具备在一个信息化项目从立项到正式上线整个过程中,在过程的各个不同阶段担任不同的核心角色的能力,其中最为重要的能力就是系统架构的整体设计能力和详细设计能力,这个能力直接关系到一个软件项目的成败。   系统分析师所具备的职业能力和素质主要有:精通计算机行业的前沿理论,精通代表主流开发思想的程序开发语言,精通建设信息系统所要求的各种具体技术,熟悉应用领域的业务,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制定项目开发计划,协调信息系统开发与运行所涉及的各类人员,能指导制定企业的战略数据规划,组织开发信息系统,能评估和选用适宜的开发方法和工具,能按照标准规范写系统分析、设计文档,能对开发过程进行质量控制与进度控制,能具体指导项目开发,具有高级工程师的实际工作能力和业务水平。   系统分析师的基本职责是从事管理信息系统的定制、企业资源管理系统的设计开发及市场评估策划,能独立翻译、阅读国外技术资料,理解商务逻辑和客户需求,有管理信息系统的设计、项目设计能力、开发进度的估计能力、控制力,具有良好的理解力和逻辑分析能力以及表达能力、足够的沟通能力,具备基本文档写作能力。   在日常工作当中,系统分析师通常都是本单位的技术骨干,主要担任项目的主导者和领导者的工作。在政府机关,系统分析师通常负责数字化城市、电子政务、公共政务网等电子政府统一规划的规划与建设工作;在高校、研究所等科研机构,系统分析师通常担任计算机前沿理论的研究、计算机专业、信息化管理专业、电子商务及电子政务等专业的教学、数字化校园的规划与建设、大型集中式教务数据库的建设、教务系统的开发与建设等工作;在非IT企业,系统分析师通常主要负责本企业的电子商务系统的规划与建设、大型信息化系统(如MIS、ERP等)的规划、建设与开发等工作;在IT企业,系统分析师通常担任首席分析师和项目经理的工作,主要负责中大型软件项目的规划、建设、软件架构的整体设计与详细设计、开发模式的设计、项目开发工作的指导和监督、系统的整体测试工作、项目的全面管理及进度管理等。   总而言之,系统分析师通常在本单位担任独当一面的技术骨干,同时也应当承担起更大的工作责任,充分发挥自己的特长,更好地为单位作出应有的贡献。 编辑本段业务范围   根据时下IT企业所涉足开发的领域,其业务范围主要包括:仓储管理系统、报关业务系统、销售统计与管理系统、财务管理系统、物流管理指挥系统、楼宇智能化管理系统以及各种数据查询统计与分析、业务流程控制系统、模拟考试系统、人力资源管理分析系统等等,由此而产生各种信息系统分析师人才品种,即系统分析专家,他们不仅承担着为客户设计开发软件新品的业务指导任务,而且向客户提供二次开发的技术支持和培训顾问服务,既是IT企业中的技术骨干和将才,又是IT企业软件新品市场前景的预测者和参与营销的市场策划者,从这个角度看,又是企业的智囊高参和运筹帷幄的帅才,堪称具有国际视野的高级复合型人才。   熟悉应用领域的业务,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制定项目开发计划,协调信息系统开发与运行所涉及的各类人员,能指导制定企业的战略数据规划,组织开发信息系统,能评估和选用适宜的开发方法和工具,能按照标准规范写系统分析、设计文档,能对开发过程进行质量控制与进度控制,能具体指导项目开发,具有高级工程师的实际工作能力和业务水平。   (1)具有系统工程的基础知识;   (2)掌握开发信息系统的综合技术知识(硬件、软件、网络、数据库);   (3)熟悉企业和政府信息化建设,并具有组织信息化战略规划的知识;   (4)熟悉掌握信息系统开发过程和方法;   (5)熟悉信息系统开发标准;   (6)掌握信息安全的相关知识与技术;   (7)理解软件质量保证的手段;   (8)具有经济与管理科学的相关基础知识,熟悉有关的法律法规;   (9)具有大学本科的数学基础;   (10)熟练阅读和正确相关领域的英文文献。 编辑本段未来展望   近年来,我国政府及工商企业使用电子计算器处理作业快速成长,人才需求愈来愈多,惟因学校培育的科班信息人才供不应求.   因而造就其它科系更多的出路,其中尤以商业科系为主。展望台后在经济结构改变.各行业规模愈趋扩大,并须建立企业计算机化管理制度的情势下,对系统分析师的需求更将有增无减,因此.凡受过信息专业教育或训练,具有电子计算器专门知识及企业管理观念的青年,其就业前途是非常乐观的。 目录   一、DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)   二、DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT INTO)   三、DCL—数据控制语言(GRANT,REVOKE) 四、下半部分内容(主要是PL/SQL:函数,存储过程,事务等) 说明:本文档的使用对象是对SQL有一些了解的软件测试人员,我只是把我知道的知识结合网上的资料进行二次总结,不正之处望多请教。本文档配置附有SQL范例脚本。 一、DDL数据定义语言 首先,简要介绍基础语句,作为测试人员一般测试时,已经由数据库设计师建好了数据库,数据库设计师可能也不用语句的方式来建表,但我们应该能看懂各语句的使用格式,语句的含义,有兴趣再作深入了解。 1、创建数据库 CREATE DATABASE [database-name] 2、删除数据库 DROP DATABASE dbname1,dbname2… 3、备份数据库 --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack   4、创建表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 例如: CREATE TABLE S (SNO CHAR(10) NOT NULL , SN VARCHAR(20), AGE INT, SEX CHAR(2) DEFAULT '男' , DEPT VARCHAR(20)); 根据已有的表创建新表:   A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、删除表 drop table tabname   6、增加字段 Alter table tabname ADD <列名><数据类型>[NULL|NOT NULL] 7、修改字段 ALTER TABLE<表名> ALTER COLUMN <列名><数据类型>[NULL|NOT NULL] 8、删除字段 ALTER TABLE<表名> DROP COLUMN <列名><数据类型>[NULL|NOT NULL] 9、添加主键 Alter table tabname add primary key(col)   10、删除主键 Alter table tabname drop primary key(col)   11、创建索引 create [unique] index idxname on tabname(col….)   12、删除索引 drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 13、创建视图 create view viewname as [select statement ] 14、删除视图 drop view viewname 二、DML—数据操纵语言 1、数据查询 数据查询是数据库中最常见的操作。在本文档里将作重点介绍。SQL语言提供SELECT语句,通过查询操作可得到所需的信息。 SELECT语句的一般格式为: SELECT〈列名〉[{,〈列名〉}] FROM〈表名或视图名〉[{,〈表名或视图名〉}] [WHERE〈检索条件〉] [GROUP BY <列名1>[HAVING <条件表达式>]] [ORDER BY <列名2>[ASC|DESC]]; SELECT语句的执行过程是: 根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表。 如果有GROUP子句,则将查询结果按照<列名1>相同的值进行分组。 如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组。 如果有ORDER子句,查询结果还要按照<列名2>的值进行排序。 1.1、查询指定列 SELECT <列名> FROM <表名或视图名> 1.2、查询全部列 SELECT * FROM <表名或视图名> 或SELECT <全部列名> FROM <表名或视图名> 1.3、取消相同取值的行 在查询结果中有可能出现取值完全相同的行了。 SELECT DISTINCT <列名> FROM <表名或视图名> 1.4、比较大小 比较运算符有        =,>,>=,<=,<,<>,!>,!< NOT+上述比较运算符 SELECT <列名> FROM <表名或视图名> WHERE <列名> [比较运算符] <比较的值> 1.5、多重条件查询 当WHERE子句需要指定一个以上的查询条件时,则需要使用逻辑运算符AND、OR和NOT将其连结成复合的逻辑表达式。 其优先级由高到低为:NOT、AND、OR,用户可以使用括号改变优先级。 SELECT <列名> FROM <表名或视图名> WHERE <条件1> AND <条件1> OR <条件1>… 1.6、确认范围查询 用于确定范围运算符有:BETWEEN…AND…和NOT BETWEEN…AND… SELECT <列名> FROM <表名或视图名> WHERE <列名> [NOT] BETWEEN  值1 AND 值2 这与下等价 SELECT <列名> FROM <表名或视图名> WHERE <列名>>=值1 AND <列名><=值2 SELECT <列名> FROM <表名或视图名> WHERE <列名><值1 OR <列名>>值2 1.7、确认集合 确定集合符号:IN,NOT IN SELECT <列名> FROM <表名或视图名> WHERE <列名>[NOT] IN  (常量1,常量2,…,常量n) 1.8字符匹配查询 字符匹配查询符号:LIKE,NOT LIKE SQL Server 2000支持如下四种通配符: _(下划线):匹配任意一个字符; %(百分号): 匹配O个或多个字符; [ ]:匹配[ ]中的任意一个字符。如[acdg]表示匹配a或c或d或g,如果[ ]中的字符是有序的,则可以使用连字符一来简化[ ]中的内容,例如[abcde]可简写为:[a-e]; [^]:不匹配[ ]中的任意一个字符。如[^acdg]表示不匹配a、c、d、g,如果[^]中的字符是有序的,也可以使用简化形式例如[^abcde]可简写为:[^a-e]。 SELECT <列名> FROM <表名或视图名> WHERE <列名> [NOT] LIKE <匹配字符串> 1.9空值查询 空值不同于零和空格,它不占任何存储空间。 判断某个值是否为NULL值,不能使用普通的比较运算符(一、!一等),而只能使用专门的判断NULL值的子句来完成。 SELECT <列名> FROM <表名或视图名> WHERE <列名> IS [NOT] NULL 1.10常用库函数及统计汇总查询 常用的库函数 AVG: 按列计算平均值 SUM:按列计算值的总和 MAX:求一列中的最大值 MIN:求一列中的最小值 COUNT:按列值计算个数 总数:select count(field1) as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 注1:SQL规定,当使用计算函数时,列名不能与计算函数一起使用(除非他们出现在其他集合中)。 例如查询年龄最大的学生的姓名和年龄,如下写法是错误的: SELECT 姓名,MAX(年龄)FROM Student 注2:计算函数不能出现在WHERE子句中。    . 例如查询年龄最大的学生的姓名如下写法是错误的: SELECT 姓名 FROM Student WHERE 年龄=MAX(年龄) 正确的命令应为:   SELECT 姓名,年龄 FROM Student Where  年龄=(select max(年龄) from student) 1.11分组查询 SELECT <列名> FROM <表名或视图名> GROUP BY<分组依据列>[,…n] [HAVING<组提取条件>] 注1:分组依据列不能是text、ntext、image和bit类型的列。 注2:有分组时,查询列表中的列只能取自分组依据列(计算函数中的列除外) 1.12对查询结果进行排序 SELECT <列名> FROM <表名或视图名> ORDER BY<列名>[ASC l DESC][,…n] 1.13数据表连接查询 A、        INNER JOIN: 这是最普通的联接类型。只要在这两个表的公共字段之中有相符值,内部联接将组合两个表中的记录。 SELECT fields FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field1 AND ON table1.field2 compopr table2.field2) OR ON table1.field3 compopr table2.field3)]; B、left outer join:   左外连接(左连接):结果集包括连接表的匹配行,也包括左连接表的所有行。   SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c C:right outer join:   右外连接(右连接):结果集包括连接表的匹配连接行,也包括右连接表的所有行。   D:full outer join:   全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 1.14使用TOP限制结果集 使用TOP谓词时注意最好与ORDER BY子句一起使用,因为这样的前几名才有意义。但当使用WITH TIES时,要求必须使用ORDER BY子句。 TOP谓词写在SELECT单词的后边,查询列表的前边。 使用TOP谓词的格式为:     TOP n[percent]with ties]     其中:n为非负整数。     TOP n:表示取查询结果的前n行;     TOP n percent:表示取查询结果的前n% 行;        With ties:表示包括并列的结果。 1.15将查询结果存入表中 INTO子句的语法格式为:     INTO 新表名 INTO子句跟在SELECT子句之后、FROM子句之前。SELECT <列名> INTO 新表名 FROM。 新表名是要存放查询结果的表名,SELECT INTO语句包含两个操作:首先按查询列表创建新表,然后执行查询语句,并将结果保存到新表中。     用INTO子句创建的新表可以是永久表,也可以是临时表。临时表又分为两种:局部临时表和全局临时表。局部临时表要在表名前加#,它只能用在当前的连接中;全局临时表要在表名前加##,它的生存期为创建全局临时表的连接的生存期 1.16合并查询 使用UNION的格式为:     SELECT 语句1     UNION     SELECT 语句2     UNION [ALL]     SELECT 语句n 使用UNION的两个基本规则是: A、所有查询语句中的列个数和列的顺序必须相同。 B、所有查语句中的对应列的数据类型必须兼容。 1.17子查询 A、使用子查询进行比较测试 使用子查询进行比较测试时,通过比较运算符(=、!=、<、>、<=、>=),将一个表达式的值与子查询返回的单值进行比较。如果比较运算的结果为True,则比较测试也返回True。     使用子查询进行的比较测试要求子查询语句必须是返回单值的查询语句。 例1:查询修了"c02"课程的且成绩高于此课程的平均成绩的学生的学号和成绩。     SELECT 学号,成绩 FROM SC     WHERE 课程号=‘c02’     and 成绩>( SELECT AVG(成绩) from SC     WHERE 课程号=‘c02’) B、使用子查询基于集合的测试 使用子查询进行基于集合的测试时,通过运算符IN和NOT IN,将一个表达式的值与子查询返回的结果集进行比较。这同前边在WHERE子句中使用的IN作用完全相同。使用IN运算符时,如果该表达式的值与集合中的某个值相等,则此测试为True;如果该表达式与集合中的所有值均不相等,则返回False。     注意:使用子查询进行基于集合的测试时,由该子查询返回的结果集是仅包含单个列的一个列表,该列必须与测试表达式的数据类型相同。当子查询返回结果之后,外层查询将使用这些结果。    C、        使用子查询进行存在性测试 使用子查询进行存在性测试时,往往使用EXISTS谓词。带EXISTS谓词的子查询不返回查询的数据,只产生逻辑真值和逻辑假值。 例6:查询选修了‘‘c01”号课程的学生姓名。     SELECT 姓名 FROM Student        WHERE EXISTS     (SELECT * FROM SC     WHERE 学号=Student.学号 AND 课程号=‘c01’) 注1:带EXISTS谓词的查询是先执行外层查询,然后再执行内层查询。由外层查询 的值决定内层查询的结果;内层查询的执行次数由外层查询的结果数决定。 上述查询语句的处理过程为:   (1)找外层表Student表的第一行,根据其学号的值处理内层查询;   (2)用外层的值与内层的结果比较,由此决定外层条件的真、假值;如果为真,则此记录为符合条件的结果;   (3)顺序处理外层表Student表中的第2、3、…行。 注2:由于EXISTS的子查询只能返回真或假值,因此在这里给出列名无意义。所以在有EXISTS的子查询中,其目标列表达式通常都用“*”。 2.数据更新 SQL语言的数据更新语句DML主要包括插入数据、修改数据和删除数据三种语句。 2.1插入一行新记录 INSERT INTO <表名>[(<列名1>[,<列名2>…])] VALUES(<值>) 2.2插入一行的部分数据值 只写上部分列名,没有写上的列名值自动为空,如果列是NOT NULL则必需赋值。 2.3插入多行记录 INSERT INTO <表名> [(<列名1>[,<列名2>…])]  子查询 2.4修改数据 UPDATE <表名> SET <列名>=<表达式> [,<列名>=<表达式>]… [WHERE <条件>] 2.5删除记录 DELETE FROM<表名> [WHERE <条件>] 三、DCL—数据控制语言 1、权限与角色 在SQL SERVER中,权限可分为系统权限和对象权限。 系统权限由数据库管理员授予其他用户,是指数据库用户能够对数据库系统进行某种特定的操作的权力。创建一个基本表(CREATE TABLE) 对象权限由创建基本表、视图等数据库对象的用户授予其他用户,是指数据库用户在指定的数据库对象上进行某种特定的操作的权力。如查询(SELECT)、插入(INSERT)、修改(UPDATE)和删除(DELETE)等操作。 角色是多种权限的集合,可以把角色授予用户或其他角色。当要为某一用户同时授予或收回多项权限时,则可以把这些权限定义为一个角色,对此角色进行操作。这样就避免了许多重复性的工作,简化了管理数据库用户权限的工作。 2、系统权限与角色的授予 SQL语言使用GRANT语句为用户授予系统权限,其语法格式为: GRANT <系统权限>|<角色> [,<系统权限>|<角色>]… TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… [WITH ADMIN OPTION] 其语义为:将指定的系统权限授予指定的用户或角色。 其中ULBIC代表数据库中的全部用户。WITH ADMIN OPTION为可选项,指定后则允许被授权的用户将指定的系统特权或角色再授予其他用户或角色。 例1: 为用户张三授予CREATE TABLE的系统权限。 GRANT CREATE TABLE TO 张三 3、系统权限与角色的收回 数据库管理员可以使用REVOKE语句收回系统权限,其语法格式为: REVOKE <系统权限>|<角色> [,<系统权限>|<角色>]… FROM <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… 例2: 收回用户张三所拥有的CREATE TABLE的系统权限。 REVOKE CREATE TABLE FROM 张三 4、对象权限与角色的授予 SQL语言使用GRANT语句为用户授予对象权限,其语法格式为: GRANT ALL|<对象权限>[(列名[,列名]…)][,<对象权限>]…ON <对象名> TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… [WITH GRANT OPTION] 其语义为:将指定的操作对象的对象权限授予指定的用户或角色。 其中: ALL代表所有的对象权限。 列名用于指定要授权的数据库对象的一列或多列。如果不指定列名,被授权的用户将在数据库对象的所有列上均拥有指定的特权。 实际上,只有当授予INSERT、UPDATE权限时才需指定列名。 ON子句用于指定要授予对象权限的数据库对象名,可以是基本表名、视图名等。 WITH ADMIN OPTION为可选项,指定后则允许被授权的用户将权限再授予其他用户或角色。 例3: 将对Sc表和student表的所有对象权限授予USER1和USER2。 GRANT ALL ON Sc,student TO USER1,USER2 例4: 将对Course表的查询权限授予所有用户。 GRANT SELECT ON Course TO PUBLIC 例5: 将查询student表和修改学生年龄的权限授予USER3,并允许将此权限授予其他用户。 GRANT SELECT,UPDATE(PROF) ON studentT TO USER3 WITH ADMIN OPTION USER3具有此对象权限,并可使用GRANT命令给其他用户授权,如下例,USER3将此权限授予USER4: GRANT SELECT,UPDATE(年龄) ON student TO USER4 5、对象权限与角色的回收 所有授予出去的权力在必要时都可以由数据库管理员和授权者收回,收回对象权限仍然使用REVOKE语句,其语法格式为: REVOKE <对象权限>|<角色> [,<对象权限>|<角色>]… FROM <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… 例6: 收回用户USER1对Course表的查询权限。 REVOKE SELECT ON C FROM USER1 其次,大家来看一些不错的sql语句 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1 <>1 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b; 3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件 例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、说明:两张关联表,删除主表中已经在副表中没有的信息   delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 5、说明:四表联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 6、说明:日程安排提前五分钟提醒   select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 7、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 8、说明:前10条记录 select top 10 * FROM table1 where 范围 9、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b) 10、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表 (select a from tableA ) except (select a from tableB) except (select a from tableC) 11、说明:随机取出10条数据 select top 10 * from tablename order by newid() 12、说明:随机选择记录 select newid() 13、说明:删除重复记录 Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 14、说明:列出数据库里所有的表名 select name from sysobjects where type='U'   15、说明:列出表里的所有的 select name from syscolumns where id=object_id('TableName') 16、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type vender pcs 电脑 A 1 电脑 A 1 光盘 B 2 光盘 A 2 手机 B 3 手机 C 3 17、说明:初始化表table1 TRUNCATE TABLE table1 18、说明:选择从10到15的记录 select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc    19、查询时字符串连接(用+号) select YHDM+'['+YHMC+']' YH from yonghu
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服