最近我朋友问题如何学习SQL,我整理了我很久之前学习时做了一些笔记,图片是我学习使用的数据库截图,文字部分是SQL查询语句:
数据表student(studens)一、基础SQL语句
1、查询studens表所有信息
SELECT * FROM studens
2、查询指定列的信息
select 字段1,字段2,字段3 from studens
SELECT XM,XB,XMJX FROM STUDENS
3、为列指定别名
SELECT XM AS 姓名,XB AS 性别,XMJX AS 姓名简写 FROM studens
4、输出条件注意大写与小写
SELECT XM AS 姓名,XB AS 性别,XMJX AS 姓名简写 FROM studens WHERE XMJX='ntp'
4.1字段名不区分大小写
4.2查询条件区分大小写
4.3不能使用字段别名作为查询条件
5、字段里进行运算
5.1 运算符介绍
①加减乘除:+ - * /
②比较运算符:> < >= <= <>
③<> 是不等于符号
5.2 计算 520+1314 等于几
SELECT 520+1314 FROM DUAL
二、逻辑运算与筛选查询
2.1 重点内容
1、什么是逻辑运算符
not 非 、and 且 、or 或
2、运算符优先级
not > and > or
2.2 查询脚本
1、将男同学的记录查询出来
SELECT * FROM STUDENT WHERE XB=’男’
2、将有钱的男同学查询出来
SELECT * FROM STUDENT WHERE FU=’富’ AND XB=’男’
2.1 WHERE 这个词只要写一次就可以了
2.2使用AND 实现
3、筛选出长的高或者皮肤白的学生
SELECT * FROM STUDENT WHERE GAO=’高’ OR GAO=’白’
3.1逐行筛选
4、 筛选出白富帅或者白富美的学生(方法一)
SELECT * FROM STUDENT WHERE GAO IN(’高’,白’) AND FU=’富’ AND SHUAI IN (’帅’,’美’)
5、筛选出白富帅或者白富美的学生(方法二)
SELECT * FROM STUDENT WHERE (GAO=’高’ AND FU=’富’ AND SHUAI=’帅’)OR (GAO=’白’ AND FU=’富’ AND SHUAI=’美’)
6、 筛选出白富帅或者白富美的学生里取前10个记录
SELECT XM,ROWID, ROWNUM FROM STUDENT WHERE (GAO=’高’ OR GAO=’白’) AND ROWNUM<=10
三、特殊关键字查询
3.1 重点内容
1、特殊关键字是什么
like,in,between,is null
2、like关键字查询
3、通配符介绍
%:代表任意字符
_:代表一个字符
4、like关键字
5、In关键字
6、BETWEEN(最小值区间) ,AND (最大值区间)
7、Is null
null:是否为空
注意空值与空格的区别
3.2 查询脚本
1、查询姓王的学生
SELECT * FROM STUDENT WHERE XM LIKE ’王%’
2、查询不姓王的学生
SELECT * FROM STUDENT WHERE XM NOT LIKE ’王%’
3、查询姓王且名字是2个字的学生
SELECT * FROM STUDENT WHERE XM LIKE ‘王_’
4计算出学生的年龄--强调当前的字段里没有符合年龄的字段,如何计算出来
SELECT XM, 2015-SUBSTR(SFZH,7,4) AS 年龄 FROM STUDENS
①支持函数运算
②支持+ - * / 运算
5、查询出年龄是8,9,10的学生
SELECT XM, 2015-SUBSTR(SFZH,7,4) AS 年龄FROM STUDENS WHERE 2020-SUBSTR(SFZH,7,4)=8 OR 2020-SUBSTR(SFZH,7,4)=9 OR 2020-SUBSTR(SFZH,7,4)=10
6、查询出年龄是8-25岁的学生
①、使用BETWEEN、and前方法一
SELECT XM,2015-SUBSTR(SFZH,7,4) AS 年龄 FROM STUDENS WHERE 2015-SUBSTR(SFZH,7,4) IN(8,9,10,11,12,13,14,15)
②、使用BETWEEN、AND前方法二
SELECT XM,2020-SUBSTR(SFZH,7,4) AS 年龄 FROM STUDENS WHERE 2020-SUBSTR(SFZH,7,4)>=8 AND 2020-SUBSTR(SFZH,7,4)<=25
③、使用BETWEEN、AND后
SELECT XM,2020-SUBSTR(SFZH,7,4) AS 年龄FROM STUDENS WHERE 2020-SUBSTR(SFZH,7,4) BETWEEN 8 AND 25
7、检查是否有身份证信息未填写的
SELECT * FROM STUDENT WHERE SFZH IS NULL OR LENGTH(SFZH) NOT IN(15,18)
①、真空:null
②、假空
③ 、非空
④、 触发器
网友评论