测试人员要掌握的基本的SQL语句
目录
一、DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
二、DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
三、DCL—数据控制语言(GRANT,REVOKE)
四、下半部分内容(主要是PL/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>…