从今天起开始整理一下SQL的知识,呵呵,其实SQL都用了6年了,自认为无论是简单的还是复杂的,基本上都可以轻松搞定,不过还是写点东西比较好,算是做一个回忆吧!唉,没办法,七十年代生的玉飞龙比较怀旧啊!
一、简单的SELECT查询语句书写应注意的地方:
1〉注意大小写
select name , sex from student where sex='Male' ;
懂得SQL的朋友一定会说,SQL语句是不区分大小写的!是的,我说的注意大小写指的是语句中的'Male' ,这里指的是数据库中的查询条件记录,它是区分大小写的,如果把'Male' 写成'MALE'的话,尽管从英文单词上看没有问题,表示的都是查找学生中性别为男性的学生的记录,但是如果要查找的字段没有大写MALE的话,就不会有返回结果,也就是你将什么也查不到,尽管自然语言上没有错误,但计算机数据库不这样认为,他会认为'Male' 与'MALE'是完全不同的。
2〉注意逗号、空格、单引号、双引号、分号这些符号细节
3〉注意删除重复记录
select distinct name , sex from student where sex='Male' ;
4〉运算符号的使用:+ 、- 、* 、/ 、%
1)加号用法2个,一个用在select子句中,另外就是用在where子句中,一下仅举一例:
select apple , price+1 from fruit where price=20 ;
将数据库中20元的苹果价格提高一元钱
2)减号用法同加法:
select A_account - B_account from student ;
重要的一点,可以直接改变数值结果符号:
select -account from student ; 这样写就可以把结果数值全部改变符号了
3)乘除法的用法略
4)%取模,就是取得数值或计算结果的余数,有的系统中用MOD(A , B)来表示
5〉比较运算符号的使用就不多说了:
只是注意,不同数据库系统中不等号可能不同:“!=”或“<>”
6〉like查找:
即:模糊检索,有两种通配符:%表示多字符串通配,_表示单字符通配,用于不同的要求
select * from friends where phone like '555_6%' ;
7〉||连接操作符:
用于将两个字符串连接起来
select firstname || lastname from student ;
8〉逻辑运算符:AND、OR、NOT
不用多说,只拿NOT来举两例
select firstname from student where firstname not like 'B%' ;
select lastname from student where lastname is not null ;
上例第一个是查找学生姓氏不是以B开头的名单,第二个是查找有lastname的学生名单。
9〉集合运算
1)注意 union 与 union all 的用法与区别(两表求和)
2)注意 intersect (两表相交)
3)注意 minus (两表相减)
4)注意 in 与 between ... and ... (从属语句)
select name from student where address in('北京' , '天津' , '上海');
上句等于 select name from student where address='北京' or address='天津' or address='上海';
select * from price where wholesale between 10 and 20;
上句等于select * from price where wholesale >= 10 and wholesale <=20;
between ... and ... 包括边界值
------------------------------------------------------------------------------------------《全文完》