文档章节

sql语句-sql学习笔记3

猪刚烈
 猪刚烈
发布于 2014/09/12 16:58
字数 692
阅读 14
收藏 0

1、有两张表(主键和外键)

员工表emp:empno, ename, job, mgr(上级), hiredate, sal, comm(奖金), deptno

部门表dept:deptno, dname, loc

理论上先建dept表:

--创建dept表

create table dept(deptno int primary key,dname nvarchar(30),loc nvarchar(30))

insert into dept values(10,'accounting','new york')

--创建emp表

create table emp(empno int primary,ename nvarchar(30),job nvarchar(30),mgr int,hiredate datetime,sal numeric(10,2),comm numeric(10,2),deptno int foreign key references dept(deptno))

insert into emp values(1000,'lili','clerk','8878','1990-1-1'.1374.21,80)

*****对于外键,请注意:

(a)外键只能指向主键

(b)外键和主键的数据类型要一致

2、表的基本查询-简单的查询语句

(a)查询所有列

select * from emp where 条件(*能不用就不用,浪费资源

(b)查询指定列

select 字段1,字段2 form emp where 条件

(c)如何取消重复行(distinct只能消除搜索结果完全相同的行保留一行)

select distinct 字段1,字段2  from 表名 where 条件

**例1:查询smith的薪水,工作,所在部门

select sal,job,deptno form emp where ename='smith'

**例2:统计共有多少个部门编号

select distinct deptno form emp 

(d)使用算数表达式

**例3:显示每个雇员的年工资

select ename 姓名,sal*13 "年工资" from emp

**select ename,sal*13+comm*13 "年工资" from emp

后面这句可能有问题,因为comm有的值为空(NULL),空与任何值运算的结果都是空(NULL),可以通过一个函数转换

**select ename,sal*13+isnull(comm,0)*13 "年工资" from emp

**例4:如何查找1982.1.1以后入职的员工

select * form emp where hiredate>'1982-1-1'

(e)使用like操作符(模糊查询)

%:表示0到多个字符 _:表示单个字符

**例5:如何显示首字母为S的员工的姓名和工资

select ename,sal from emp where ename like"S%"

(f)在where中使用in

**例6:如何显示empno为123,111,212雇员的情况

select * from emp where empno=123 or empno=111 or empno=212

而一般我们使用in来完成

select * form emp where empno in(123,111,212)

**例7:如何显示没有上级的员工

select ename from emp where mgr is null

(g)使用逻辑操作符号

就是or and 的使用

(h)使用order by(默认是升序排列asc,降序排列用desc)

**例8:如何按照工资的从低到高的顺序显示雇员信息

select * form emp order by sal asc

**例9:按照部门号升序而工资降序

select * form emp order by deptno ,sal desc(执行结果:先排deptno,然后sal,比如把部门号10的sal降序,再把部门号20的sal降序)

**例10:统计每个人的年薪并按照从低到高的顺序排列

select ename,(sal*13+isnull(comm,0)*13) "nianxin" from emp order by nianxin asc

(i)分页查询(很常用)






本文转载自:http://blog.csdn.net/xiao1ni1zi/article/details/14035835

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
Sql Server2005 Transact-SQL 新兵器学习总结之-DDL触发器

1.简介: Sql Server2005新增加了DDL触发器。 与DML触发器不同的是,它们不会为响应针对表或视图的UPDATE、INSERT或DELETE语句而激发。 相反,它们将为了响应各种数据定义语言(DDL)事件而激发...

范大脚脚
2017/12/14
0
0
Mybatis应用学习(3)——Mapper映射文件编写

Mybatis的映射配置文件Mapper.xml 1.1 输入参数映射 1. 在Mapper映射文件中,可以通过parameterType指定SQL语句所要输入参数的类型,类型可以是java简单类型(String和七个基本类型以及基本类...

江左煤郎
2018/11/25
0
0
Golang 学习笔记(10)—— mysql操作

本文为转载,原文:Golang 学习笔记(10)—— mysql操作 Golang go-sql-driver/mysql go操作mysql的驱动包很多,这里讲解当下比较流行的go-sql-driver/mysql 安装 执行下面两个命令: 安装完...

ChainZhang
2018/01/04
0
0
Oracle之PL/SQL学习笔记之序言(一)

PL/SQL是什么? PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数...

残风vs逝梦
2014/09/02
0
0
linq学习笔记(3):Where

前面学习了Linq 的 DataContext 的基础知识,你可能会觉得手工定义和数据库中表对应的实体类很麻烦,不用担心, VS2008 提供了自动生成实体类以及关系的工具。下面我们利用 VS2008 来创建 Da...

长平狐
2013/06/17
65
0

没有更多内容

加载失败,请刷新页面

加载更多

glide 下载golang.org包问题

今天编译Uber的Aresgo。依赖管理用 glide,下载golang.org 包的时候遇到问题。 方法一: 设置 glide mirror glide mirror set https://golang.org/x/mobile https://github.com/golang/mobi...

shengjuntu
20分钟前
0
0
4.线程

线程是操作系统中最小的执行单元。 它本身不是一个程序,而是在程序中运行。 换句话说,线程并不相互独立,并与其他线程共享代码段,数据段等。 这些线程也被称为轻量级进程。 线程状态 新线...

Eappo_Geng
26分钟前
0
0
在Linux上编译LLVM/Clang 8.0.0等全部源代码

本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,要编译的LLVM源代码是8.0.0。 1、安装必要的软件。它们是:build-essential/cmake/swig/python-swigpk/libxml2/libxml2-dev/libncurs...

ryanliue
34分钟前
3
0
毕业季,我的Linux求职之路

秋招终于告一段落了,本硕的七年求学之路也快画上了句号。回首求职的这一段日子,痛苦并快乐着。感谢所有陪伴着我走过这一段路程的同学,所有的辛酸都值得铭记。求职的过程中在网上看了很多的...

linux-tao
今天
4
0
Mybatis动态语句,if test字符串不用进行null判断

描述:根据creator列进行过滤获取image表的数据。 代码如下: @Select("<script>" + " select * from image " + " <where>" + " <if test='isAllCreator != 1'> ......

Coder顾
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部