1、连接条件INTO|TO FILEADDITIVE|TO PRINTER PROMPT|TO SCREENPREFERENCENOCONSOLEPLAINNOWAITWHEREAND AND|OR AND|OR GROUP BY ,HAVINGUNIONALLSELECT命令ORDER BY ASC|DESC,ASC|DESCSELECT说明要查询的数据。FROM 说明要查询的数据来自哪个(些)表。WHERE 说明查询条件,即选择元组的条件。GROUP BY 用于对查询结果进行分组,可以利用它进行分类汇总。HAVING 必须跟随GROUP BY使用,客观存它用来限定分组必须满足的条件。ORDER
2、 BY 用来对查询的结果进行排序。数据查询语句SQL数据查询命令是SELECT命令。该命令的基本框架是SELECTFROMWHERE,它包含输出字段、数据来源、查询条件等基本子句。在这种固定格式中,可以不用WHERE,但是SELECT和FROM是必备的。基本查询所谓基本查询是指无条件查询,其常用格式是: SELECT ALLDISTINCT别名.选项AS 显示列名,别名.选项AS 显示列名FROM 表名1 别名1,表名2 别名2 其中ALL表示输出所有记录,包括重复记录。DISTINCT表示输出无重复结果的记录。 基本查询示例写出对学生表进行如下操作的命令。(1) 列出全部学生信息。(2) 列
3、出全部学生的姓名和年龄(去掉重名的)。 操作1: SELECT * FROM 学生 操作2: SELECT DISTINCT 姓名 AS 学生名单,YEAR(DATE()-YEAR(出生日期)AS年龄 FROM 学生带条件查询WHERE 子句用于指定查询条件,其格式是:WHERE 条件表达式其中条件表达式可以是单表的条件表达式,也可以是多表之间的条件表达式,表达式用的比较符为:=(等于)、!=(不等于)、=(精确等于)、(大于)、=(大于等于)、(小于)、=(小于等于)。带条件查询示例 (1) 列出入学成绩在560分以上的学生记录。 (2) 求出湖南学生入学成绩平均分。 SELECT * FR
4、OM 学生 WHERE 入学成绩560SELECT 籍贯,AVG(入学成绩) AS 入学成绩平均分 FROM 学生 WHERE 籍贯=湖南 写出对教学管理数据库进行如下操作的命令。(1) 列出非湖南籍的学生名单(2) 列出江苏籍和贵州籍的学生名单(3) 列出入学成绩在560分到650分之间的学生名单(4) 列出所有姓赵的学生名单(5) 列出所有成绩为空值的学生学号和课程号操作1:SELECT 学号,姓名,籍贯 FROM 学生 WHERE 籍贯= 560 AND 入学成绩ANY(SELECT 成绩 FROM 选课 WHERE 课程号=”K02”)(2) ALL运算符的用法 对教学管理数据库,列出
5、选修”W01”课的学生中成绩比选修”K02”的最高成绩还要高的学生的学号和成绩.ALL(SELECT 成绩 FROM 选课 WHERE 课程号=”K02”)(3) IN运算符的用法(等价于”=ANY”)对教学管理数据库,列出选修”数据库原理”或”软件工程”的所有学生的学号.SELECT 学号 FROM 选课 WHERE 课程号 IN( SELECT 课程号 FROM 课程 WHERE 课程名=”数据库原理” OR 课程名=”软件工程”)多表查询等值连接等值连接是按对应字段的共同值将一个表中的记录与另一个表中的记录相连接。写出对教学管理数据库进行如下操作的命令(1) 输出所有学生的成绩单,要求给
6、出学号,姓名,课程号,课程名和成绩.(2) 列出男生的选课情况,要求列出学号,姓名,课程号,课程名,授课教师和学分数.(3) 列出至少选修”W01”课和”K02”课的学生学号.操作1:SELECT a.学号,姓名,b.课程号,课程名,成绩 FROM 学生 a,选课 b,课程 c WHERE a.学号=b.学号 AND b.课程号=c.课程号SELECT a.学号,a.姓名 AS 学生姓名,b.课程号,课程名, e.姓名 AS教师姓名,学分 FROM 学生 a,选课 b,课程 c,授课 d,教师 e WHERE a.学号=b.学号 AND b.课程号=c.课程号 AND c.课程号=d.课程号
7、AND d.教师号=e.教师号 AND 性别=”男”SELECT a.学号 FROM 选课 a,课程b WHERE a.学号=b.学号 AND b.课程号=”W01” AND a.课程号=”K02”非等值连接非等值连接按对应字段的记录的某种不等值关系进行连接例:对教学管理数据库,列出选修”K02”课的学生中,成绩大于学号为”200109”的学生该门课程成绩的那些学生的学号及其成绩.SELECT a.学号,a.成绩 FROM 选课 a,课程b WHERE a.成绩b.成绩 AND a.课程号=b.课程号 AND b.课程号=”K02” AND b.学号=”200109”连接查询内部连接(Inne
8、r Join) 所谓内部连接是指包括符合条件的每个表中的记录。也就是说是所有满足连接条件的记录都包含在查询结果中。对教学管理数据库,列出少数民族学生的学号,课程号及成绩.SELECT a.学号,b.课程号 FROM 选课 a,课程b WHERE a.学号=b.学号 AND 少数民族否若采用内部连接则为:SELECT a.学号,b.课程号 FROM 选课 a INNER JOIN 课程b ON a.学号=b.学号 WHERE 少数民族否 外部连接左外连接 左外连接也叫左连接(Left Outer Join),其系统执行过程是将左表的某条记录与右表的所有记录依次比较,若有满足连接条件的,则产生一个
9、真实值记录;若都不满足,则产生一个含有NULL值的记录。接着,左表的下一记录与右表的所有记录依次比较字段值,重复上述过程,直到左表所有记录都比较完为止。连接结果的记录个数与左表的记录个数一致。右外连接 右外连接也叫右连接(Right Outer Join),其系统执行过程是右表的某条记录与左表的所有记录依次比较,若有满足连接条件的,则产生一个真实值记录;接着,右表的下一记录与左表的所有记录依次比较字段值,重复上述过程,直到左表的所有记录都比较完为止。连接结果的记录个数与右表的记录个数一致。全外连接 全外连接也叫完全连接(Full Join),其系统执行过程是先按右连接比较字段值,然后按左连接比
10、较字段值,重复记录不记入查询结果中。查询结果处理排序输出(ORDER BY) 格式 :ORDER BY 排序选项1ASC DESC,排序选项2ASC DESC 对教学管理数据库按性别顺序列出学生的学号,姓名,性别,课程名及成绩,性别相同的先按课程后按成绩同高到低排序.SELECT a.学号,姓名,性别,课程名,成绩 FROM 学生 a,选课 b,课程 c WHERE a.学号=b.学号 AND b.课程号=c.课程号 ORDER BY 性别,课程名,成绩DESC重定向输出(INTO) INTO 目标 TO FILE文件名ADDITIVE TO PRINTER 有三种形式:ARRAY:将查询结果
11、存到指定的数组中.CURSOR将查询结果存到一个临时表中,这个表的操作与其它表一样,不同的是,它一旦被关闭就会被删除.DBF|TABLE=80二、数据定义有关数据定义的SQL命令分为3组,它们是建立(CREATE)数据库对象、修改(ALTER)数据库对象和删除(DROP)数据库对象。每一组命令针对不同的数据库对象(如数据库、查询、视图等)分别有3个命令。建立表结构CREATE TABLEDBF 表名1 NAME 长表名 FREE(字段名1 类型(宽度,小数位数) NULLNOT NULL CHECK 条件表达式1 ERROR 出错显示信息 功能:建立表可以完成用表设计器完成的所有功能。建立一个
12、自由表:人事档案(编号,姓名,性别,基本工资,出生年月),其中允许出生年月为空值。CREATE TABLE D:人事管理人事档案FREE (编号 C(7),姓名 C(8),性别 C(2),基本工资 N(7,2),出生年月 D NULL) 删除表命令格式:DROP TABLE 表名 DROP TABLE命令直接从磁盘上删除所指定的表文件。如果指定的表文件是数据库中的表并且相应的数据库是当前数据库,则从数据库中删除了表。否则虽然从磁盘上删除了表文件,但是记录在数据库文件中的信息却没有删除,此后会出现错误提示。修改表结构格式1:ALTER TABLE 表名1 ADDALTER COLUMN 字段名
13、字段类型(宽度,小数位数)可以添加(ADD)新的字段或修改(ALTER)已有的字段,它的句法基本可以与CREATE TABLE的句法相对应。格式2:ALTER TABLE 表名 ALTER COLUMN 字段名 NULLNOT NULL SET DEFAULT表达式 SET CHECK 逻辑表达式ERROR 出错显示信息 DROP DEFAULT DROP CHECK定义、修改和删除有效性规则以及默认值定义。数据操纵三、数据操纵插入记录 INSERT INTO 表名(字段名1,字段名2,)VALUES(表达式1,表达式2,) 在指定的表尾添加一条新记录,其值为VALUES后面表达式的值。 INSERT INTO 表名 FROM ARRAY 数组名 FROM MEMVAR在指定的表尾添加一条新记录,其值来自于数组或对应的同名内存变量。删除记录 DELETE FROM 数据库名!表名 WHERE 条件表达式从指定表中,根据指定的条件逻辑删除记录。更新记录 UPDATE 数据库名!表名SET 字段名1=表达式1,字段名2=表达式2WHERE逻辑表达式用表达式的值更新字段值,WHERE子句指定更新条件,更新满足条件的一些记录的字段值。如果不使用WHERE子句,则更新全部记录。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1