SQL语言是数据库的标准语言
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例2:按课程号顺序输出学生的各科成绩,同一门课按成绩降序 排列 SELECT * FROM 成绩 ORDER BY 课程号, 成绩 DESC
计算与分组查询 使用 GROUP BY 子句可以实现分组查询,通常与计算 查询(如计数、求和、求平均值等)结合使用,先按指定的 数据项分组,再对各组汇总计算。 常用的计算检索函数: AVG(字段名) 求一列数据的平均值 SUM(字段名)求一列数据的和 COUNT(字段名)求查询的记录的个数 MIN (字段名)求指定列中的最小值
基本查询
1、查询的基本结构
SELECT 字段名表 FROM 表名 WHERE 条件语句
功能:把表中符合条件的记录的字段名表 中字段的信息显示出来
例1:从“学生”表中查询所有男生的学号、姓名和出生日期。 SELECT 学号,姓名 AS 学生名单 ,; 出生日期 FROM 学生 WHERE 性别=“男” 例2: 从课程表中查询所有课程的信息 select * from 课程 [注意]1首先要打开数据库。 2 WHERE 条件语句 相当于 for条件语句 3 如果显示所有字段的信息,字段名表用“*”代替
格式:UPDATE 表名
SET 字段名1 = 表达式1,;
字段名2 = 表达式2,..; WHERE 条件
例1:将“学生1”表中所有男生的“贷款否”字段改为“.T.” UPDATE 学生1 SET WHERE 贷款否 = .T. ; 性别 = “男”
例2:将“学生1”表中所有女生的“贷款否”字段改为
TAG 姓名_生日
姓名+DTOC(出生日期)
5.2.3 表的删除
命令格式
DROP TABLE 表名
例如,删除“学生1”表
DROP TABLE 学生1
5.3 数据操作
1、插入记录
格式1:在表的尾部尾添加一条新记录 表名 (字段1,字段2,……) ;
INSERT INTO
VALUES (值1,值2,……)
where 系别=“计算机” or
系别=“管理”
3、排序查询
使用 ORDER BY 字段名,可以对查询结果按升序(ASC)或 降序(DESC)排列。
SELECT 字段名表 FROM 表名 WHERE 条件语句 (或字段名表) 例1:按成绩升序输出所有学生的英语课成绩 select 成绩 from 成绩 where ; by 成绩 课程号=„101‟ order ORDER BY 字段名
4、格式4:
ALTER TABLE
表名
TO 新字段名 ERROR 出错信息
(1)DROP 字段名 (2)ENAME 原字段名 (3)SET CHECK 记录有效性规则 (4)DROP CHECK (5)ADD PRIMARY KEY 主关键字
TAG 索引标识
(6)DROP PRIMARY KEY 功能:删除字段、更改字段名、设置记录有效性规则等
2、带特殊运算符的条件查询
在 WHERE 子句所带的筛选条件表达式中可以使用一些特殊 运算符,如 IN、BETWEEN„AND„、LIKE 、=、<>、>、<、>=、 <= 等。 例1: 在成绩表中查询成绩良好(75~85分)的学生的信息。 SELECT AND 85 * FROM 成绩 WHERE 75 and AND 成绩 BETWEEN 75 ;
SQL 语 言
SQL语言是数据库的标准语言,几乎所有的关系数据库 管理系统都支持SQL标准。SQL语言的主要特点是: (1)高度集成化 SQL语言集数据定义、数据操作、数 据查询和数据控制功能于一体。
(2)非过程化
SQL是一种非过程化的语言。
(3)简洁易学 SQL语言完成数据定义(CREATE、DROP、 ALTER)数据操纵(INSERT、UPDATE、DELETE)、数据控制 (GRANT、REVOKE)和数据查询(SELECT)等核心功能只用 了9个命令动词;而且语法也接近英语自然语法。 (4)用法灵活 SQL语言既能够以人机交互方式来使用, 也可以嵌入到程序设计语言中以程序方式使用。
删除“成绩1”表中平时成绩字段的有效性规则, 并设置字段默认值设置为80 ALTER TABLE 成绩1 ALTER 平时成绩 ; DROP CHECK ALTER TABLE 成绩1 ALTER 平时成绩 ; SET DEFAULT 80 或 ALTER TABLE 成绩1 ALTER 平时成绩 ; SET DEFAULT 80 DROP CHECK
[注意]如果该字段建立了索引,则必须先删除索引,才 能删除该字段。
例1:将“学生1”表中的“学号”字段更名为“学生证编号“ ALTER TABLE 学生1 RENAME 学号 TO 学生证编号
例2: 对“学生1”表以“姓名”和“出生日期”字段建立主 索引 ALTER TABLE 学生1 ADD PRIMARY KEY ;
(3)VFP用对话框定义表结构,SQL用命令定义表结构
例1:定义学生表结构:学号:C(5),姓名:C(6) 性别:L,出生日期:D,语文:N(4,1)
CREATE CREATE DATABASE TABLE Y1 学生(学号 C(5),姓名 C(6),;
性别 L,出生日期 D,语文 N(4,1))
5.2 表结构及其它属性的定义
1、表结构定义的最基本命令格式
CREATE (字段名1 字段名2 TABLE (或DBF) 表名 ; 字段类型(宽度,小数位数),; 字段类型(宽度,小数位数),……..)
功能:定义表的字段名、字段类型、宽度、小数位数
说明(1)各字段之间用逗号区分,字段名与字段类型
之间用一个或多个空格区分 (2)C、D、N、I、L、M、G 分别代表字符型、 日期型、 数值型、整型、逻辑型、备注型 和通用型。
课程名
c(20), 学时 N(3),
学分 N(2) )
Create table 成绩1 ( 学号 c(8),课程号 c(3), ;
成绩 N(5,1) check (成绩>=0 and 成绩<=100 )
error “成绩必须在0到100分之间” ,;
Foreign key 学号 tag 学号 references 学生1,;
说明:插入所有字段值时,可省略字段名表
例1:向“学生1”表中添加两条记录:
INSERT
INTO
学生1
;
红”,“男”,;
VALUES(“01020314”,”张 人”,null) INSERT INTO
{^1982/07/01},”计算机”,.T.,”张红北京;
学生1(学号Байду номын сангаас姓名) ;
VALUES(“01020315”,”李兰”)
2、将“平时成绩”字段修改为 N(5,1),并要求平时成绩 不超过100分。 ALTER TABLE 成绩1 ALTER 平时成绩 N(5,1); check (成绩>=0 and 成绩<=100 ) error “0-100”
3、将学生1“学号”字段修改为 N(3),并和成绩1表相联 接。 ALTER TABLE 学生1 ALTER references 成绩1。 学号 N(5,1);
Foreign key 课程号 tag 课程号 references 课程1)
5.2.2 表结构的修改
SQL提供了3种 alter table 命令格式, 分别用来完成对表结构不同方面的修改, 如添加字段、修改已有的字段、编辑有效 性规则、删除字段等。
1、格式1: ALTER TABLE 表名1 ADD; 字段名 类型 (宽度,小数位数) (1)CHECK 字段有效性规则 ERROR 出错信息 (2)default
[注意]和哪一个表建立联系,哪个表为主索引
3、 格式3: ALTER TABLE 表名 ALTER 字段名
(1)SET DEFAULT 默认值
(2)SET CHECK 有效性规则
(3)DROP DEFAULT
(4)DROP CHECK
功能:设置、修改或删除 指定字段的默 认值、 有效性规则。
例如:
默认值
(3) PRIMARY KEY
或
UNIQUE
(4)REFERENCES 表名2
功能:修改字段的类型、宽度、有效性规则、错误
提示信息、默认值、定义主键字和联接关系等。但
不能修改字段名。一次只能修改一个字段。
例如: 1、在“成绩1”表中添加一个字段:平时成绩 N(5) ALTER TABLE 成绩1 ADD 平时成绩 N(5)
[注意] “成绩 WHERE
BETWEEN
85” 相当于
成绩>=75
成绩<=85
例2:查询计算机系和管理系学生的学号、姓名和 系别信息。
Select 学号,姓名,系别 from 学生 ;
where 系别 in (“计算机”,“管理”) where 系别 in (“计算机”,“管理”)
[注意]
相当于
说明:A:(1)、(2)、(3)、(4)、(5)根据题目 的要求选择其中的一部分放在字段类型的后面,并且各项 之间用一个或一个以上的空格区分。
B(4)是定义主表主索引用的,(5)是定义子表索 引及和主表建立联接用的。
例2:定义一个名为“学生1.DBF”的数据库表:
学号 C(8)为主关键字,姓名c(8),性别出 c(2)性别的默认 值为“男”,出生日期 d,系别 c(10),贷款否 L,简历 M,照片 G NULL。
2、删除记录 格式:DELETE FROM 表名 WHERE 条件
功能:为指定表中符合条件的记录进行逻辑删除。
例如,将“学生1”表中所有男生的记录逻辑删除
DELETE FROM 学生1
WHERE 性别 = “男”
说明:取消逻辑删除用:recall
物理逻辑删除用:pack
3、更新记录(修改表中记录的值,相当于replace)
完成更复杂的查询任务。
SELECT 字段名1 [ AS 列名1 ,] ; 字段名2 [ AS 列名2 ,…] FROM [数据库名!]表名1 JOIN [数据库名!] 表名2 [ON 联接条件] where 查询条件 [注意](1) 1字段名、字段名2 …等是指查询结果 中出现的字段名(也指源表中的字段名). (2)如果有 “AS 列名” 则 查询结果中 的字段名将变为列名。
“.T.”,系别改为“政治系”
UPDATE 学生1 SET 贷款否 = .T. , ; 系别 =“政治系” WHERE 性别 = “女”
5.4 数据查询
数据查询是SQL语言的核心,也称作SQL-SELECT命令。 使用SQL-SELECT命令,可以对数据源进行各种组合,有效地 筛选记录、管理数据、并对结果排序及指定输出去向等,无 论查询多么复杂,只有一条SELECT语句。 SQL-SELECT 命令可以进行多个查询块的嵌套查询,以
格式2:记录值来自数组或同名的内存变量
INSERT
INTO
表名
FROM
ARRAY
数组
[注意]首先定义数组,并赋值
Dime AA (5)
AA(1)=“01010” AA(2)=“王洋” AA(3)=“女” AA(4)={^1998-09-12} AA(5)=“计算机” Insert into 学生1 from array aa
说明:先用命令建立数据库,然后 再定义表结构,输入记录。
1、表结构定义的复杂命令格式
复杂:即再给字段定义更多的修饰,如:指定主关键字、 设置字段的有效性规则、设置提示信息、设置默认值、设 置外部关键字并和主表建立联接。 (1) PRIMARY (2) CHECK (3) DEFAULT (4) PRIMARY (5) FOREIGN KEY 字段有效性规则 [ ERROR 错误信息 ] 默认值 KEY 主关键字 tag 标识名 KEY 外部关键字 tag 标识名 ; REFERENCES 主表名
CREATE TABLE 学生1(学号 C(8) PRIMARY key, 姓名 ; C(8),性别 C(2) DEFUALT “男”, 出生日期 D,系别 ; C(10), 贷款否 L,简历 M,照片 G NULL) 说明:对同一个字段修饰的各部分之间用一个 以上的空格区分。
Create table 课程1(课程号 c(3) primary key,;
默认值
(3) PRIMARY KEY
或 表名2
UNIQUE
(4)REFERENCES
功能:在表中添加字段,设置字段的类型、宽度、有效
性规则、错误提示信息、默认值、定义主键字和联接关 系等。但不能修改字段名。一次只能添加一个字段。
2、格式2: ALTER TABLE 表名1 ALTER ; 字段名 类型 (宽度,小数位数) (1)CHECK 字段有效性规则 ERROR 出错信息 (2)default