数据库查询【最重要且在数据库中难度最大】
声明一下我这里用的数据库样例是郝斌老师的(scott库)
我尽最大努力把复杂的问题简单化,方便理解,希望我写的东西能够帮助到你们
有些复杂的东西我我用自己的方式理解的,可能和标准的教材上面说的有些不一样(个人观点,大佬勿喷)
计算列
- 注意一下这个,后面有用:表的概念:就是相关数据组成的二维表格
表名:就是这个二维表格的标识。
字段:就是二维表中的每一列。
字段名:就是这个列的标识。 - 列就是字段哈,别被绕晕了
select * from emp // --* 表示所有emp表中所有字段的值 // --from emp 表示从emp表中查询数据
- 这里的基础一定要理解,不然后面的东西会让你崩溃的 ``` select ename,sal from emp // -- 它的执行的顺序是先找到emp表,也就是先执行的是from emp 然后开始查询emp表中的第一条记录 // -- 然后把第一条记录中的ename,和sal字段的值输出 // -- 然后查询第二条记录,然后第三条 。。。。。。 // -- 直到查询到最后一条记录。整个sql命令就执行结束了 // -- from emp 是从emp表中查询 // -- ename,sal是要查询的字段 // -- 注意:字段之间一定要用逗号隔开 ```
- 注意:这里的计算列是指的表里不存在的数据(列),但是可以通过表里存在的字段进行数学运算。比如下面年薪和555等
select ename,sal*12 as "年薪" from emp // --这里就把你要计算的那个字段,也就是在表中不存在的数据通过数学运算得到新的字段取了一个别名
// -- as可以省略 记住"年薪"不要写成'年薪'也不要写成年薪
// -- 别名“年薪”只能用双引号括起来,而不能用单引号,
// -- 因为为了考虑命令的可移植性,方便程序能移植到oracle,所以写双引号,
// -- 但是写单引号在sqlserver2005中也是允许的。而在oracle中只能用双引号。
// -- 所以为了显示我们的专业性我们最好把它写成双引号
-
```
select 999 from emp //一定要仔细的去理解一下这条语句
// -- 输出的行数是emp表的行数,每行只有一个字段,且这个字段没有名字 值是999
// -- 注意一下,这个代码是ok的,不是错误的。
select 9 //这个代码也是可以执行的
//只会输出一行,且这一行只有一个字段,同样这个字段也没有名字 值是9
#### 综上所述
- 来分析一个关于计算列的代码
select ename,sal*12 as "年薪",sal "月薪",job from emp
//首先这上面用三个逗号把4个字段分隔开了
//那么这上面的总体执行是怎么执行的?
//如果还不知道怎么执行的可以给我留言
```