数据库讲义 __ 【SQL基础】

Select语句的作用:查询指定的行,查询指定的列,多张表联合查询。

Select语句可以查询指定的行,指定的列,也可以多张表联合查询来获得数据。上面的三

句话,开宗明义的定义了SQL的基本功能。SQL 语句的功能十分强大,学好了在工作中真

是事半功倍!

Select 语法 SELECT  * FROM  table;

大写的为关键字,小写的为我们自己指定的名称

SELECT 子句指定你所关心的列 。FROM 子句指定你所要查询的表

之所以称为简易语法,因为完全的 SELECT 语法很长,涉及到很多的逻辑关系,我们由浅

入深。虽然不能大成,但小成总会有的。

一般我们将 select 叫做 select 子句,from 叫做 from 子句。

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

实验1:书写一个最简单的sql语句,查询一张表的所有行和所有列

SELECT  *|{[DISTINCT] column|expression [alias],…..} FROM  table;

【简化】:Select  *  from  emp

【点评】:查询所有的行和列

实验2:查询一张表的所有行,但列的顺序我们自己决定

SQL >  Select  ename ,  sal  from  emp;

【点评】:这里我们指定表中的两个列。其它的列我们不看

实验3:查询表的某些列,在列上使用表达式

SQL >  Select  ename , sal , sal+300  from  emp;

【点评】:其中 sal+300 是表达式,它并不存在于数据库中,是计算出来的结果。也可以使用函数。表达式的运算是有优先级的,和程序中的一样,先乘除后加减,括号强制优先级。

+、-、*、/ 。先乘除,后加减,括号强制优先级。

实验4:关于null值的问题

【点评】:Null 值不等于 0,也不等于空格。Null 和已知的数值进行运算得到是 null.

 Null 值是未赋值的值,不入一般的索引。(位图索引中包含 null)

 Null 值是双刃剑,使用好了提高性能,你对它不了解,往往是错误的根源,切记!

实验5:在列上起一个别名

SQL >  Select  sal as salary, hiredate “上班日期”, sal*12 as total_salary  from  emp;

【【  别名的使用原则  】】

1、区分同名列的名称                                   

2、非法的表达式合法化

3、按照你的意愿显示列的名称                     

4、特殊的别名要双引

5、直接写列的后面,空格间隔                     

6、使用 as 增加可读性

 

【点评】:书写 SQL 语句的原则如下

大小写不敏感,但单引和双引内的大小写是敏感的。切记!

关键字不能缩写。可以分行书写,但关键字不能被跨行书写,单引内也不要跨行书写。

一般每个子句独立占一行。可以排版来增加可读性

字符串用单引。列的别名用双引

我们在开发团队中要进行规范,大家统一大小写的书写规则,因为有个sql语句复用的问题

实验6:在显示的时候去掉重复的行

SQL >  Select  distinct  deptno  from  emp;

【点评】:如果我们想去掉重复的行,我们需要 distinct 关键字。

Oracle 10g以前的版本需要排序才可以,10g以后的版本则不需要排序

实验7:显示表的部分行和部分列,用where子句过滤出想要的数据

SELECT  *|{[DISTINCT] column|expression [alias],…}

FROM  table

[WHERE  condition(s)]

[order by column|expression| alias ];

【简化】Select  deptno, ename  from  emp  where  deptno = 10;

【点评】:Where 一定要放在 from 子句的后面。 符合条件的行会被筛选出来。 Order by 放在最后,用来排序显示结果

【关系运算符】:关系运算 = 、< >、=、^= 、>= 、<= 、> 、< 、Between…and…、in

实验8:使用like查询近似的值

SQL >  select  ename,  deptno  from  emp  where  ename  like  'J%' ;

【点评】:_ 下划线通配一个,仅匹配一个字符。% 百分号通配没有或多个字符。

【补充】:当你想查询【_ , %】特殊字符时,请用 escape.

SQL >  Select ename from emp where ename like ‘%s _%’ escape ‘s ’;

并不想查找 s 后必须有一个字符以上的员工,而是要剔除 s,s 出现的目的就是转义,

将_转义了,这里的_不是通配符,而是实际意义的_。

SQL >  Select  ename  from  emp  where  ename  like ‘%/_%’escape ‘/’;

一般我们使用/来转义,以免产生歧异。

实验9And的运算

SQL >  Select  ename, deptno, sal  From  emp  Where  deptno = 30  and  sal>1200;

【点评】:两个(或多个)条件的交集,必须同时满足。可以多个and条件同时存在

实验10or 的运算

SQL >  Select  ename, deptno, sal  From  emp  Where  deptno = 30  or  sal>1200;

【点评】:两个(或多个)条件的交集,满足一个就可以。可以多个or条件同时存在

实验11Not 的运算

SQL >  Select  ename,  deptno, sal  From  emp Where ename  not  like  'T%';

【点评】:查询不是 T 打头的员工。

 

【【 运算的优先级 】】

1、算术运算                            

2、连接运算

3、关系运算                            

4、IS [NOT] NULL, LIKE, [NOT] IN

5、Between                              

6、not

7、and                              

8、Or

实验12:使用order by子句来进行排序操作

【升序】:默认是升序asc

SQL >  Select  ename, sal  from  emp  order  by  sal;

【降序】:降序是desc

SQL >  Select  ename, sal  from  emp  order  by  sal  desc; 

【隐士排序】:显示的结果里没有sal,但是按照sal的顺序显示的

SQL >  Select  ename  from  emp  order  by  sal;

【别名排序】

SQL >  Select  sal*12  salary  from  emp  order  by  salary;

【表达式排序】

SQL >  Select  sal*12  salary  from  emp  order  by  sal*12;

【位置排序】:对集合操作时比较方便。

SQL >  Select  ename, sal  from  emp  order  by  2;

【多列排序】

SQL >  Select  deptno, job, ename, sal  from  emp  order  by deptno, job;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值