SQL 结构化查询语言SQL( Struceured Query Languang)一直是关系数据库管理系统(RDBMS)的标准语言 集DDL,DML,DCL于一体, 数据查询 与 数据操纵 SELECT [ALL|DISTINCT]<目标表达式>[,目标表达式]…… FROM<表名>[,表名] WHERE<条件表达式> ORDER BY <列名>[ASC|DESC] 单表查询 建立数据库studentinfo, 建立数据库表 student (学生基本信息表) 建立字段(列),sno,sname,ssex,sage,sdept 建立数据库表 sc (学生选课表) 建立字段,id,sno,cno,grade 查询表中若干列 1查询指定的列 例1 查询全体学生的学号与姓名。 SELECT sno,sname FROM student 例2 查询全体学生的名称、学号、所在系 SELECT studentname,studentno,sdepartment FROM student; 例3 查询全体学生详细记录 SELECT * FROM student 等价于 SELECT * sno,sname,ssex,sage,sdept FROM student 例 4 查询全体学生的姓名以及出生年份 SELECT Sname,2006-sage FROM student; 查询表中若干元组 1 消除重复的数据 查询选修课程的所有学生学号 SELECT sno FROM sc 这样会包含一些重复数据,如何消除呢? 使用DISTINCT SELECT DISTINCT sno FROM sc 查询满足条件的数据 比较 = , > ,< , >= , <= , != , <> , !> !< ; NOT +比较运算符 确定范围 BETWEEN AND ,NOT BETWEEN AND 确定集合 IN,NOT IN 字符匹配 LIKE, NOT LIKE 空值 IS NULL,IS NOT NULL 多重条件 AND, OR 例5 查询 计算机系所有学生名单 SELECT Sname , FROM student WHERE Sdept = ‘CS’; 例6 查询年龄在20以下的学生姓名及其年龄 SELECT Sname , Sage , FROM student WHERE sage <20; 确定范围ie BETWEEN…AND 和 NOT BETWEEN….AND 例7 查询年龄在20-23岁之间的学生姓名、系别和年龄。 SELECT sname , sdept,sage FROM student WHERE sage BETWEEN 20 AND 23 确定集合 IN可以查询值属于指定集合的数据 例8 查询信息系(is) 与计算机系(cs)学生的姓名与性别 SELECT sname,ssex FROM student WHERE sdept IN(‘is’,’cs’); 字符匹配 LIKE 和 NOT LIKE 用于字符串的匹配。其中可以包含通配符_和% %代表任意长度 _代表一个字符 例9 查询学号为06001的学生所有数据 SELECT * FROM student where sno LIKE ‘95001’; 例10 查询所有姓刘的学生姓名、学号和性别 SELECT sname,sno,ssex WHERE sname LIKE ‘刘%’ 例 11 查询姓”欧阳”并且三个汉字的学生姓名 SELECT sname FROM student WHERE sname LIKE ‘欧阳_ _’ 多重条件查询 AND 和 OR可用来连接多个查询条件 例12 查询所有计算机系年龄在20以下的学生 SELECT sname FROME student WHERE sdept=’cs’ and sage<20; 例 13 查询是计算机系的或者是信息系的所有学生姓名和性别 SELECT sname,ssex FROM student WHERE sdept=’cs’ OR sdept=’is’ 对查询结果排序(ORDER BY) ORDER BY 对查询结果按照一个字段的升序(ASC)或降序(DESC)排列,默认为升序 例14 查询选修了3号课的学生学号以及成绩,查询结果按照分数的降序排列 SELECT sno,grade FROM sc where cno=’3’ ORDER BY grade DESC; 使用函数 COUNT 统计数据条数 SUM 计算某一列值得总和 AVG 计算某一列值得平均值 MAX 求某一字段中最大值 MIN 求某一字段的最小值
SQL(1)
最新推荐文章于 2024-06-29 12:12:59 发布