当前位置:文档之家› 测试人员应该掌握基本SQL语句

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

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

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,dbn ame2…

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 V ARCHAR(20),

SEX CHAR(2) DEFAULT '男' ,

DEPT V ARCHAR(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—数据操纵语言

数据查询是数据库中最常见的操作。在本文档里将作重点介绍。SQL语言提供SELECT语句,通过查询操作可得到所需的信息。

SELECT语句的一般格式为:

SELECT〈列名〉[{,〈列名〉}]

FROM〈表名或视图名〉[{,〈表名或视图名〉}]

[WHERE〈检索条件〉]

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

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

SELECT语句的执行过程是:

根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表。

如果有GROUP子句,则将查询结果按照<列名1>相同的值进行分组。

如果GROUP子句后有HA VING短语,则只输出满足HA VING条件的元组。

如果有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常用库函数及统计汇总查询

常用的库函数

A VG:按列计算平均值

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]

[HA VING<组提取条件>]

注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 A VG(成绩) 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>…])] V ALUES(<值>)

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、UPDA TE权限时才需指定列名。

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

常用SQL语句大全

常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 DROP database dbname 3、说明:备份sql server --- 创建备份数据的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],..) 根据已有的表创建新表: 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 column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname DROP primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:DROP index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:DROP view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count 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 11、说明:几个高级查询运算词

sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:学生Student (Sno,Sname,Ssex,Sage,Sdept) 课程表course(Cno,Cname,Cpno,Ccredit) 学生选课SC(Sno,Cno,Grade) 二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句2 3 删除student表中的元组 4在数据库school中删除关系student 5在student表添加属性sbirthdate 类型datetime

Delete 1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’); Update 1 修改0001 学生的系科为: JSJ 2 把陈小明的年龄加1岁,性别改为女。 2 修改李文庆的1001课程的成绩为9 3 分 3 把“数据库原理”课的成绩减去1分 Select 查询语句 一单表 1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。 2查询姓名中第2个字为“明”字的学生学号、性别。 3查询 1001课程没有成绩的学生学号、课程号 4查询JSJ 、SX、WL 系的年龄大于25岁的学生学号,姓名,结果按系排列 5按10分制查询学生的sno,cno,10分制成绩 (1-10分为1 ,11-20分为2 ,30-39分为3,。。。90-100为10) 6查询 student 表中的学生共分布在那几个系中。(distinct) 7查询0001号学生1001,1002课程的成绩。 二统计 1查询姓名中有“明”字的学生人数。 2计算‘JSJ’系的平均年龄及最大年龄。 3查询学生中姓名为张明、赵英的人数 4计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列 5 计算 1001,1002 课程的平均分。 6 查询平均分大于80分的学生学号及平均分 7 统计选修课程超过 2 门的学生学号 8 统计有10位成绩大于85分以上的课程号。 9 统计平均分不及格的学生学号 10 统计有大于两门课不及格的学生学号 三连接 1查询 JSJ 系的学生选修的课程号 2查询选修1002 课程的学生的学生姓名 (不用嵌套及嵌套2种方法) 3查询数据库原理不及格的学生学号及成绩 4查询选修“数据库原理”课且成绩 80 以上的学生姓名(不用嵌套及嵌套2种方法) 5查询平均分不及格的学生的学号,姓名,平均分。 6查询女学生平均分高于75分的学生姓名。 7查询男学生学号、姓名、课程号、成绩。(一门课程也没有选修的男学生也要列出,不能

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

SQL语句练习题(精品文档)

S Q L语言 一、选择题 1.S Q L语言是()的语言,容易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、 D E L E T E等。其中最重要的,也是使用最频繁的语句是()。 A.S E L E C T B.I N S E R T C.U P D A T E D.D E L E T E 3.在视图上不能完成的操作是()。 A.更新视图 B.查询 C.在视图上定义新的表 D.在视图上定义新的视图 4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。 A.数据查询 B.数据操纵 C.数据定义 D.数据控制 5.S Q L语言中,删除一个视图的命令是()。 A.D E L E T E B.D R O P C.C L E A R D.R E M O V E 6.在S Q L语言中的视图V I E W是数据库的()。 A.外模式 B.模式 C.内模式 D.存储模式 7.下列的S Q L语句中,()不是数据定义语句。 A.C R E A T E T A B L E B.D R O P V I E W C.C R E A T E V I E W D.G R A N T 8.若要撤销数据库中已经存在的表S,可用()。 A.D E L E T E T A B L E S B.D E L E T E S C.D R O P T A B L E S D.D R O P S

经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 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],..) 根据已有的表创建新表: 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 column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

sql语句模拟测试题

SQL语句真题模拟测试 姓名__________分数___________ 有如下四个表: 查询测试: 1、查询出在2号仓库工作的所有员工的工资,并且去掉重复值 2、查询出工资在1230到1250之间的所有员工信息 3、查询出供应商名中所有包含“子”字的供应商信息 4、找出工资为1250元的职工号和城市

5、查询出wh1仓库中共有多有个员工 6、计算出每个仓库的人数,总工资和最高工资,字段分别显示为仓库号,人数,总工资和最高工资 7、在订购单表中查询出还没有完成订单的订单信息 8、找出和职工E4挣同样工资的职工号和工资 9、找出还没有员工的仓库信息 10、查询出工资大于或等于2号仓库中其中一名职工工资的的员工信息 11、显示工资最高的30% 的员工信息 操作测试: 1、用SQL语句在职工表中插入记录(“WH4”,”E8”,1111) 2、把所有面积小于500的仓库,面积在原来的基础之上扩大20% 3、删除所有还没有完成订单的记录 定义功能: 1、在数据库中创建表的CREATE TABLE命令中定义主索引、实现实体完整性规则的短语是( )。

A) FOREIGN KEY B) DEFAULT C) PRIMARY KEY D) CHECK 2、在Visual FoxPro中,下列关于SQL表定义语句(CREATE TABLE)的说法中错误的是( )。 A) 可以定义一个新的基本表结构 B) 可以定义表中的主关键字 C) 可以定义表的域完整性、字段有效性规则等 D) 对自由表,同样可以实现其完整性、有效性规则等信息的设置 3、"教师表"中有"职工号"、"姓名"和"工龄"等字段,其中"职工号"为主关键字,建立"教师表"的SQL命令是( )。 A) CREATE TABLE 教师表(职工号 C(10)PRIMARY,姓名 C(20),工龄I) B) CREATE TABLE 教师表(职工号 C(10)FOREIGN,姓名 C(20),工龄I) C) CREATE TABLE 教师表(职工号 C(10)FOREIGN KEY,姓名 C(20),工龄I) D) CREATE TABLE 教师表(职工号 C(10)PRIMARY KEY,姓名 C(20),工龄I) 4、表名为Employee的表结构是(职工号,姓名,工资),建立表Employee的SQL命令是 A) CREATE TABLE Employee(职工号 C(10),姓名 C(20), 工资 Y) B) CREATE Employee TABLE(职工号 C(10),姓名 C(20), 工资 Y) C) CREATE DATABASE Employee(职工号 C(10),姓名 C(20), 工资 Y) D) CREATE Employee DATABASE(职工号 C(10),姓名 C(20), 工资 Y 5、从产品表中删除生产日期为2013年1月1日之前(含)的记录,正确的SQL语句是 A) DROP FROM 产品 WHERE 生产日期<={^2013-1-1} B) DROP FROM 产品 FOR 生产日期<={^2013-1-1} C) DELETE FROM 产品 WHERE 生产日期<={^2013-1-1} D) DELETE FROM 产品 FOR 生产日期<={^2013-1-1} 6、为"评分"表的"分数"字段添加有效性规则:"分数必须大于等于0并且小于等于10",正确的SQL语句是( )。 A) CHANGE TABLE 评分ALTER 分数 SET CHECK 分数>=0 AND 分数<=10 B) ALTER TABLE 评分 ALTER 分数 SET CHECK 分数>=0 AND 分数<=10 C) ALTER TABLE 评分 ALTER 分数 CHECK 分数>=0 AND 分数<=10 D) CHANGE TABLE 评分 ALTER 分数 SET CHECK 分数>=0 OR 分数<=10 7、有表名为Employee的表结构(职工号,姓名,工资),为表Employee增加字段"住址"的SQL命令是 A) ALTER DBF Employee ADD 住址 C(30) B) CHANGE DBF Employee ADD 住址 C(30) C) CHANGE TABLE Employee ADD 住址 C(30) D) ALTER TABLE Employee ADD 住址 C(30) 8、在Visual FoxPro中,如果要将学生表S(学号,姓名,性别,年龄)中"年龄"属性删除,正确的SQL命令是( )。 A) ALTER TABLE S DROP COLUMN 年龄 B) DELETE 年龄 FROM S C) ALTER TABLE S DELETE COLUMN 年龄 D) ALTER TABLE S DELETE 年龄

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

vfp6SQL练习题

SQL综合练习题一 一、单项选择题 1.下列说法正确的是()。 A)SQL 语言不能直接以命令方式交互使用,而只能嵌入到程序设计语言中以程序方式使用 B)SQL 语言只能直接以命令方式交互使用,而不能嵌入到程序设计语言中以程序方式使用 C)SQL 语言不可以直接以命令方式交互使用,也不可以嵌入到程序设计语言中以程序方式使用,是在一种特殊的环境下使用的语言D)SQL 语言既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用 2.SQL 语言具有()的功能。 A)关系规范化,数据操纵,数据控制 B)数据定义,数据操纵,数据控制 C)数据定义,关系规范化,数据控制 D)关系规范化,数据操纵,数据查询 3.SQL 语言中使用最多的功能是()。 A)数据查询 B)数据修改 C)数据定义 D)数据控制 4.SQL 语句中,Select 命令的分组操作配套使用的条件短语应使用()引导。 A)Where B)like C)Having D)In 5.Sql 语句中删除表中记录的语句是()。 A)Drop B)Erase C)Cancle D)Delete 6.用SQL 语句建立表时为属性定义主索引,应在SQL 语句中使用短语()。 A)Default B)Primary Key C)Check D)Unique 7.SQL 语句的where短语中可以使用通配符是()。 A)* B)? C)% D)— 8.SQL 语句中条件短语的关键字是()。 A)Where B)For C)While D)as 9.SQL 中可以使用的通配符有()。 A)* B)% C)_ D)B 项和c 项 10.SQL 的数据操纵语句不包括()。 A)Insert B)Delete C)Update D)Change 11.字符串匹配运算符是()。 A)Like B)And C)In D)= 12.将查询结果放在数组中应使用()短语。 A)Into Cursor B)To Array C)Into Table D)Into Array 13.SQL 实现分组查询的短语是()。 A)Order By B)Group By C)Having D)Asc 14.用Sql 语句建立表时为属性定义有效性规则,应使用短语是()。 A)Default B)Primary Key C)Check D)Unique 15.书写SQL 语句,若语句要占用多行,在行的末尾要加续行符()。 A): B); C), D)” 16.用于更新表中数据的SQL 语句是()。

数据库基本----sql语句大全

学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作.... 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的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],..) 根据已有的表创建新表: 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 column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where X围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where X围 更新:update table1 set field1=value1 where X围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count 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

sql语句练习50题

sql语句练习50题 Student(Sid,Sname,Sage,Ssex) 学生表 Course(Cid,Cname,Tid) 课程表 SC(Sid,Cid,score) 成绩表 Teacher(Tid,Tname) 教师表 练习内容: 1.查询“某1”课程比“某2”课程成绩高的所有学生的学号; SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHERE a.score>b.score AND a.sid=b.sid; 此题知识点,嵌套查询和给查出来的表起别名 2.查询平均成绩大于60分的同学的学号和平均成绩; SELECT sid,avg(score) FROM sc GROUP BY sid having avg(score) >60; 此题知识点,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。group by后面不能接where,having代替了where 3.查询所有同学的学号、姓名、选课数、总成绩 SELECT Student.sid,Student.Sname,count(SC.cid),sum(score)FROM Student left Outer JOIN SC on Student.sid=SC.cid GROUP BY Student.sid,Sname 4.查询姓“李”的老师的个数; select count(teacher.tid)from teacher where teacher.tname like'李%' 5.查询没学过“叶平”老师课的同学的学号、姓名; SELECT Student.sid,Student.Sname FROM Student WHERE sid not in (SELECT distinct( SC.sid) FROM SC,Course,Teacher WHERE SC.cid=Course.cid AND Teacher.id=Course.tid AND Teacher.Tname='叶平'); 此题知识点,distinct是去重的作用 6.查询学过“```”并且也学过编号“```”课程的同学的学号、姓名; select a.SID,a.SNAME from (select student.SNAME,student.SID from student,course,sc where cname='c++'and sc.sid=student.sid and sc.cid=course.cid) a, (select student.SNAME,student.SID from student,course,sc where cname='english'and sc.sid=student.sid and sc.cid=course.cid) b where a.sid=b.sid; 标准答案(但是好像不好使)SELECT Student.S#,Student.Sname FROM Student,SC WHERE Student.S#=SC.S# AND SC.C#='001'and exists( SELECT * FROM SC as SC_2 WHERE SC_2.S#=SC.S# AND SC_2.C#='002'); 此题知识点,exists是在集合里找数据,as就是起别名 7.查询学过“叶平”老师所教的所有课的同学的学号、姓名; select a.sid,a.sname from (select student.sid,student.sname from student,teacher,course,sc where teacher.TNAME='杨巍巍' and teacher.tid=course.tid and course.cid=sc.cid and student.sid=sc.sid) a 标准答案:SELECT sid,Sname FROM Student WHERE sid in (SELECT sid FROM SC ,Course ,Teacher WHERE SC.cid=Course.cid AND Teacher.tid=Course.tid AND Teacher.Tname='杨巍巍' GROUP BY sid having count(SC.cid)=(SELECT count(cid) FROM Course,Teacher WHERE Teacher.tid=Course.tid AND Tname='杨巍巍')) 8.查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;

数据库语言大全

经典SQL语句大全 —、基础 1说明:创建数据库 CREATE DATABASE database-n ame 2、说明:删除数据库 drop database dbn ame 3、说明:备份sql server ---创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwi nd_1.dat' ---开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tab name(col1 type1 [not nu II] [primary key],col2 type2 [not nul l] ,..) 根据已有的表创建新表: 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 tab name 6、说明:增加一个列 Alter table tab name add colu mn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varc har类型的长度。 7、说明:添加主键:Alter table tab name add primary key(col) 说明:删除主键 : Alter table tab name drop primary key(col) 8、说明:创建索弓丨:create [unique] index idxname on tabname(col ….) 删除索弓丨:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view view name as select stateme nt 删除视图:drop view view name 10、说明:几个简单的基本的sql语句 选择:select * from tablei where 范围 插入:in sert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ' %value1% ---like 的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的就是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…、) 删除索引:drop index idxname 注:索引就是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

西门子ABB等PLC专用经典SQL语句大全一、基础

西门子ABB等PLC专用经典SQL语句大全一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 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],..) 根据已有的表创建新表: 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 column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxna me on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

SQL 测试题

SQL考试题 一、选择题 1.SELECT语句中与HAVING子句通常同时使用的是(C)子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 2.以下聚合函数求数据总和的是(B) A.MAX B.SUM C.COUNT D.AVG 3.SELECT语句的完整语法较复杂,但至少包括的部分是( B ) A.仅SELECT B.SELECT,FROM C.SELECT,GROUP D.SELECT,INTO 4.SQL语句中的条件用以下哪一项来表达( C ) A.THEN B.WHILE C.WHERE D.IF 5.查找表结构用以下哪一项( B ) A.FIND B.SELETE C.ALTER D.DESC 6.向数据表中插入一条记录用以下哪一项( B ) A.CREATE B.INSERT C.SAVE D.UPDATE 7.SQL语言中,删除一个表的命令是( D ) A.REMOVE B.CLEAR C.DELETE D.DROP 8.修改数据库表结构用以下哪一项( D ) A.UPDATE B.CREATE C.UPDATED D.ALTER 9.下列( D )不属于连接种类 A.左外连接B.内连接C.中间连接D.交叉连接10.SQL是一种( C )语言。 A.函数型B.高级算法C.关系数据库D.人工智能11.下列的SQL语句中,( B )不是数据定义语句。

A.CREATE TABLE B.GRANT C.CREATE VIEW D.DROP VIEW 12.以下聚合函数求平均数的是( C ) A.COUNT B.MAX C.AVG D.SUM 13.用来插入数据的命令是( A ),用于更新的命令是( ) A.INSERT,UPDATE B.CREATE,INSERT INTO C.DELETE,UPDATE D.UPDATE,INSERT 14.以下哪项用于左连接( C ) A.JOIN B.RIGHT JOIN C.LEFT JOIN D.INNER JOIN 15.一张表的主键个数为( C ) A.至多3个B.没有限制C.至多1个D.至多2个 二、填空题 1.select 9/3;的结果为___true_。 2.补全语句:select vend_id,count(*) as num_prods from products group by __vend__; 3.用SELECT进行模糊查询时,可以使用匹配符,但要在条件值中使用__下划线__或%等通配符来配合查询。 4.如果MySQL服务名为MySQL5,则在Windows的命令窗口中,启动MySQL 服务的指令是__net start MYSQL5__。 5.MySQL是一种___多用户___(多用户、单用户)的数据库管理系统。 6.创建数据表的命令语句是____create table 表名();_____。 7._order by___语句可以修改表中各列的先后顺序。 8.当某字段要使用AUTO_INCREMENT的属性时,该字段必须是_整数___类型的数据。 三、解答题 1.表名:购物信息 购物人商品名称数量 A 甲 2 B 乙 4 C 丙 1 A 丁 2 B 丙 5 …… (其他用户实验的记录大家可自行插入)

相关主题
文本预览
相关文档 最新文档