文档视界 最新最全的文档下载
当前位置:文档视界 › SQL中select用法分解

SQL中select用法分解

SQL中select用法分解
SQL中select用法分解

select语句是是最常用的数据查询语句,我们通过例子来逐步了解它的使用。

SELECT * FROM departments;

这条语句中有2个关键字(keywords) SELECT 和 FROM

其中 * 代表通配符号,表示 departments 表中的所有信息。

假设departments表中有如下四个字段:

department_id, department_name, department_age, department_job

那么我们可以认为 SELECT * FROM departments; 这个语句也就等同于SELECT department_id, department_name, department_age, department_job FROM departments;

所以,据此我们可以以此推断,如果我们只想检索 department_name, department_age这两个字段,我们只需要将上述语句修改为:

SELECT department_name,depatment_age FROM departments;

注意:我们在书写SQL语句时需要知道如下基本常识。

1 我们可以通过多行的书写来完成一条SQL语句,而不必要写成一行。

2 SQL语句是不区分大小写的。

3 关键字是不能分离或者简写的

4 子句往往是另起一行书写的,这样做是为了增加可读性。

例如: SELECT

department_name,department_age

FROM departments;

5 关键字通常是大写的,其他的如表名,字段通常小写

附加:table(表)的显示规则

通常情况下查询结束后,在iSQL-PLUS环境下,显示出来的查询结果具有如下特点。

1 字段名通常是大写并且居中的。

2 字符型和日期型数据通常是“左对齐”显示的

3 数字型数据通常是“右对齐”显示的

4 默认显示通常全部是大写

Arithmetic Expressions--计算扩展

在使用SELECT语句进行查询的过程中我们可以充分的利用一些简单的计算来丰富我们的查询方式与结果。

例如:

SELECT last_name, salary, salary+300 FROM employees;

在这里我们看到了 salary+300 这个emlpoyees表中本来不存在的字段。

那么会出现什么样的查询结果呢?

我们很容易想到查询结果中会出现3列,他们分别是

last_name salary salary+300

king 100 400

neil 10000 10300

. . .

. . .

在这里我们我们只需要注意一个问题,那就是字段名。很显然last_name,salary 是我们在之前就已纪存在的字段,而salary+300则是系统默认生成的。所以我们可以推断,如果我们不额外指定字段名,那么系统将用查询公式来充当默认的字段名。

如何指定一个新的字段名,或将原有的字段定义一个别名呢?我们在下面就会讲到。

关于运算查询我们只需注意运算法则,相信这对中国学生来说并不是一个难事。

现在我们来讨论一下关于null的概念。我们对如下数据进行比较,null,0,space null 代表什么都没有,它没有具体的值与之对应

0 代表了一个实实在在的数字

space 代表了一个空格,我们完全可以说它是一个字符型数据,使存在的。

任何一个数值和null进行and 运算他的结果都是null,当然也包括*,/

下面我们来看另外一条重要的语句:给字段(列)定义别名。

这个语句非常有用,可以有效地帮助我们检索并显示我们需要的信息。

例子:

SELECT department_name AS name, department_id ID FROM departments;

SELECT department_name "name", salary*12 "New salary" FROM departments;

这两句话,甚至一句话中都有不同的写法,但表述的却是同一个意思。定义别名,关键字AS

,给列定义别名我们可以用as, 当然也可以不用例如第一句中后半句,department_id ID。。。这里我们就没有用as,但同样是给department_id定义一个别名“ID”。

同样,我们也可以用双引号来定义别名,就像第二句一样。通过这样的语句,我们在看到的查询结果,列名就由原来的department_name变成了name.....

这里还有一种SELECT的选择方式,连接选择。顾名思义,这个选择的意思就是将查询结果连接起来,而所用的符号是我们非常常见的“ ||”,“或”运算。我们可以这么理解,全假则假,“或”是一个二元运算符,在这里只有当两个字段都为null时才会出现null的查询结果,否则进行连接显示。

例子: SELECT department_name||department_id AS "Information" FROM departments;

显示结果则会出现: king2003333

neil9998888

等等。。。。。

如果出现department_name为空,而id不为空,则只显示id,反之只显示name.都为空则显示null.

所以,利用这个查询原理我们可以把查询变得更人性化。

例如:

SELECT department_name||' ID is a '||department_id AS "Information" FROM departments;

显示结果: king ID is a 2003333

这里我们只需要注意' '中,空格是要按照一个字符来计算的。也就是说一个空格显示出来就是一个空格。

到这里。SELECT语句的用法基本差不多了。实践才是硬道理

我们先来讨论一下where语句。例如:

SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id= 90;

很明显,这是一条结构非常清晰的含有where子句的查询语句。我们在这里只需要注意一点,where子句中“=”号后面如果是数字,我们可以直接写在=号后面,如果是字符串那么我们必须加上单引号 ''。另外在oracle中,默认的日期输出格式是 DD-MON-RR

例如: where hire_date= '01-JAN-95'

where salary >=5000

where name= 'neil'

我们再来看一下BETWEEN....AND语句

这同样是一个条件控制语句,用于输出一定数值(也可以是字符串)范围内的查询结果

例如:

SELECT last_name, salary

FROM

employees

WHERE salary BETWEEN 2000 AND 3000;

我们在这里需要注意的是,between..and仍然是where条件控制语句的一员,大家用得时候千万不要把where给忘了。哈哈

那么我们能用这样的语句来查询字符串类型数据呢?答案是肯定的

看这个例子:

SELECT last_name

FROM

employees

WHERE last_name BETWEEN 'king' AND 'neil';

这个例子就查询了首字母k和n之间的所有last_name的值。

现在我们遇到这样一种情况,现在我们需要查询 manage_id=201,205,222的所有员工信息。现在我们知道的是,id为201,205,222的员工远不止三个人,因为一个manage 可以管理多个员工,所以就意味着多个员工可以拥有相同的manage_id......

在这里我们就可以使用条件语句where....in...来完成类似的查询了。

例如:

SELECT employee_id, last_name, salary

FROM

employees

WHERE manage_id IN (201,205,222);

有人可以这样问,现在我们可以根据manage_id来限制这个查询,但如果我们只知道老板的名字呢?我们还能不能用这个语句呢?

当然可以了

例如:

SELECT employee_id, last_name, salary

FROM

employees

WHERE manage_id IN ('neil','king','merry');

说到这里我们可以用一句话来概括这些类似的查询,其实就是他们的共同点:精确查询。无论是where between and ,where in这些都是给定了明确的查询条件的。那么下面我就来讲讲模糊查询。

例如:

SELECT last_name

FROM

employees

WHERE last_name LIKE ' S% ' ;

看到这里大家一定恍然大悟。。。

这里我们用到了2个新知识点,模糊查询的关键词LIKE 和一个通配符 %

like就不用多解释了,跟它的字面意思其实是一样的。

我们来看看通配符 %

%代表了所有字符串的集合,但要分场合的,比如s%这里就代表s字母后面所有的字母,

而%s就代表s字母前面所有的字母了。

那么有没有什么符号能只代表任意一个字母呢?

肯定有的,那就是下划线_

例如: where last_name like '_s%'

这就表示第二个字母是s的所有数据。

我们通过_,%,以及字母的组合会得到很多有趣的检索方式,大家就自己慢慢尝试吧!

下面我们再来看看null值查询。在数据表里通常存在很多null值,利用他们来进行检索通常是一个不错的办法

例如:

SELECT last_name, manage_id

FROM

employees

WHERE manage_id IS NULL;

当我们将查询进行下去的时候,我们会慢慢发现有时候单条件查询已经不能满足我们的需要,通常我们进行多个条件的叠加查询,这时候我们就要引入oracle 中的逻辑条件查询规则了。这里一共有三个逻辑限定条件,他们分别是:AND, OR, NOT

我们还是通过实例来分析这些查询条件,例如:

SELECT employee_id, last_name, job_id, salary

FROM

employees

WHERE salary>= 1000 AND job_id like '%man%';

这里定义了一个需要同时满足 salary>=1000和 job id中含有man 2个条件的查询语句。相信大家不难理解。

AND就代表两个同时为真才为真,否则都为假!

再看这个例子:

SELECT employee_id, last_name, job_id, salary

FROM

employees

WHERE salary>= 1000 OR job_id like '%man%';

这个例子查询了满足salary>=1000或者job id 中有man两个条件中任意一个时的数据集合。

OR表示两个全为假时则为假,否则都为真!

再看not,这是一个比较特殊的逻辑表达,你可把他与between..and, in,like 这些条件控制语句连用。

例如:

SELECT last_name, job_id

FROM

employees

WHERE job_id NOT IN ('IT_PROG','ST_CLERK','SA_REP');

下面我们来讨论一下or,and的运算优先级,我们来看下面的例子。

SELECT last_name, job_id, salary

FROM

employees

WHERE job_id='neil'

OR job_id='lily'

AND salary>=15000 ;

在这里,我们需要进行 and 运算,然后再进行or 运算。换句话说我们查询的结果是包含有neil的数据,或者包含有lily,并且工资〉15000的数据。

现在我们变换一下

SELECT last_name, job_id, salary

FROM

employees

WHERE ( job_id='neil'

OR job_id='lily' )

AND salary>=15000 ;

在这里我们加入了括号,这里就需要先进性or运算,然后进行and运算。

可见,and的优先级是高于or的。

现在我们来看另一个用于格式化数据输出的条件控制语句。ORDER BY

首先我们要注意的一点是,ORDER BY 必须用在句子的最后。

例子:

SELECT last_name, job_id, department_id, hire_date

FROM

employees

ORDER BY hire_date;

这个句子的意思我们按照hire_date的次序来排列我们的查询结果(默认为升序)

再看,如果我们想按降序排列呢?

SELECT last_name, job_id, department_id, hire_date

FROM

employees

ORDER BY hire_date DESC;

SELECT last_name, job_id, department_id, hire_date "DATE"

FROM

employees

ORDER BY DATE; 这个是按照别名排序(首字母从A--Z)

好了,至此,基本的知识点已经说完了。下面我主要来看oracle环境中,

iSQL*Plus下关于“替换变量”的问题。

想象一下,自己的老板不希望使用SQL来查询他所需要的数据,他只想用最简单的方法来快速的得到查询结果,而不是掌握繁琐的SQL语句。

例如,他想只在界面中输入1200,就能得到所有工资>1200的员工信息。而这正是我们下面要讨论的问题。

例子:

SELECT employee_id, last_name, salary, department_id

FROM employees

WHERE employee_id= &employee_num;

大家注意,这里&emplyee_num就代表一个变量,这个变量用于限制employee_id

说的简单点。

如果你执行这个语句,iSQLPLUS会自动生成一个对话框,里面要求你输入employee_num

如果你输入100,那么这条语句就变成了:

SELECT employee_id, last_name, salary, department_id

FROM employees

WHERE employee_id=100;

哈哈,明白了吧。其实非常简单!这也是oracle比较独特的地方吧!

刚才的例子只允许我们输入数字,如果我们输入字符就会出现错误,因为id是被定义为数值类型的。那么我们能不能输入字符来进行查询呢?当然可以啦!

例如:

SELECT last_name, department_id, salary*12

FROM

employees

WHERE last_name= '&name';

这个时候我们就能输入字符进行查询了。因为last_name被定义为字符类型。

再看看这个例子:

SELECT employee_id, last_name, job_id, &column_name

FROM

employees

WHERE $condition

ORDER BY &order_column ;

这个例子如需我们自己输入查询的列名,查询的条件,以及数据排列的格式!哈哈不错吧

下面我们看看如何让orcale强制显示变量被复值前后的变化

SET VERIFY ON

SELECT last_name, department_id, salary*12

FROM

employees

WHERE last_name= '&name';

这里在执行后会出现如下语句

old 3: where last_name= '&name' new 3: where last_name= neil

Excel中建立数据透视表的操作方法

Excel中建立数据透视表的操作方法 打开需要进行数据透视表设置的EXCLE表格,并点击数据清单中的单元格。 点击“数据菜单”下的“数据透视表和图表报告”命令,弹出“数据透视表和数据透视图向导-3步骤之1”对话框,如图所示, 进行选择后,按“下一步”按钮。 在弹出的“数据透视表和数据透视图向导-3步骤之2”对话框,如图所示,需要输入数据源区域。在“选定区域”框中指定数据清 单的区域。由于前面单击了数据清单中的单元格,所以,在选定区 域中已经自动指定了具体的数据区域。单击“下一步”按钮。 弹出“数据透视表和数据透视图向导-3步骤之3”对话框,根据要求可选择数据透视表位置(新建工作表或现有工作表),如图所示。 单击“版式”按钮,出现如图所示对话框,拖动右侧字段,构成所需结构。在“数据”域中,系统提供的汇总方式是“求和”,若 要改变汇总方式,可在数据域中要改变的字段上双击,在出现的对 话框中选择所需要的方式即可。 单击“选项”按钮,出现“数据透视表选项”对话框,该对话框可根据需要对格式选项和数据选项进行设定。 单击“完成”按钮,数据透视表就建成了,如图所示,该图下方的数据透视表工具窗口,是Excel全新的工作界面,上方是生成的 数据透视表,下方是数据透视表公假窗口。可以通过这个工具,方 便地对数据透视表的布局进行调整,只要直接拖放工具窗口中任一 字段到表中的适当位置即可。同时,也将表中要去掉的字段拖出扔 到空白处;还可以直接在数据透视表中,用拖放来调整字段的行和列 的位置。Excel的新增功能,使数据透视表的制作和修改更加方便、灵活、随心所欲。

注意:本方法是针对建立数据透视表,其建立数据透视图的方法相似;其报告格式是默认设置(默认设置就是报表1);数据透视表在修改过程中,只有点击空白处,在按撤销按钮,就可以撤销 (ctrl+z);可以根据需要设置起数据透视表的字段,名称和汇总的方式(比如:求和,计数,平均值,最大值,最小值等等);还可以设置数据显示的方式(普通,差异,百分比等等);数据透视表的区域有:行区域,列区域,页面区域,数据区域。

SQL语句大全实例

SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例 2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例 3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL

AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例 4 删除教师表TEACHER 。 DROP TABLE TEACHER 例 5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例 6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS 例10 从学生表、课程表和选课表中产生一个视图GRADE_TABLE ,它包括学生姓名、课程名和成绩。 CREATE VIEW GRADE_TABLE AS SELECT SNAME,CNAME,GRADE FROM STUDENTS,COURSES,ENROLLS WHERE STUDENTS.SNO =ENROLLS.SNO AND https://www.docsj.com/doc/a213790937.html,O=https://www.docsj.com/doc/a213790937.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

SQL常用语句+举例

SQL 常用语句+举例 相关表: 1. distinct: 剔除重复记录 例:select distinct stroe_name from Store_information 结果: 2. And / or: 并且/或 例:在表中选出所有sales 高于$1000或是sales 在$275及$500之间的记录 Select store_name ,sales from Store_information Where sales>1000 Or (sales>275 and sales <500) 3. 例:在表中查找store_name 包含 Los Angeles 或San Diego 的记录 Select * from Store_information where store_name in (‘Los Angeles ’,’San Diego ’) 结果: 4. Between : 可以运用一个范围抓出表中的值

与in 的区别:in 依照一个或数个不连续的值的限制抓出表中的值 例:查找表中介于Jan-06-1999 及Jan-10-1999 中的记录 Select * from Store_information where date between ‘Jan-06-1999’ and ‘Jan-10-1999’ 结果: 5. Like : 让我们依据一个套式来找出我们要的记录 套式通常包含: ’A_Z ’: 所有以A 开头,中间包含一个字符,以Z 结尾的字串 ’ABC%’: 所有以ABC 起头的字串 ’%XYZ ’: 所有以XYZ 结尾的字串 ’%AN%’: 所有包含AN 的字串 例:Select * from Store_information where store_name like ‘%An%’ 结果: 6. Order by: 排序,通常与ASC (从小到大,升序)、DESC (从大到小,降序)结合使用 当排序字段不止一个时,先依据字段1排序,当字段1有几个值相同时,再依据字段2排序 例:表中sales 由大到小列出Store_information 的所有记录 Select Store_name, sales,date from Store_information order by sales desc 结果: 7. 函数:AVG (平均值)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM(求和) 语句:select 函数名(字段名) from 表名 例:求出sales 的总和 Select sum(sales) from Store_information 结果 8. COUNT (计数) 例:找出Store_information 表中 有几个store_name 值不是空的记录

50个常用sql语句实例(学生表 课程表 成绩表 教师表)

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2)) 前面加一列序号: if exists(select table_name from information_schema.tables where table_name='Temp_Table') drop table Temp_Table go select 排名=identity(int,1,1),* INTO Temp_Table from Student go select * from Temp_Table go drop database [ ] --删除空的没有名字的数据库 问题: 1、查询“”课程比“”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student

常用SELECT语句汇总

常用SELECT语句汇总 一、单表查询 (一)按照条件查询相关记录 Select 字段1,字段2……字段N from 表 where 条件含义:从表中根据where 条件查询记录,每条记录显示的字段按照字段1、字段2….字段N的设置显示 注:select语句中的标点符号及运算符必须使用英文半角字符。 例1:从凭证库中查询2004年1月31日的凭证,每条凭证只显示凭证日期、凭证号、科目名称、借方金额、贷方金额、会计月份 6个字段 Select 凭证日期,凭证号,科目名称,借方金额,贷方金额,会计月份 From 凭证库 where 凭证日期=’2004-1-31’ 例2:根据业务_个人基本情况表,找出缴存状态为”正常”的记录,查出的记录只显示姓名、身份证号、单位账号及个人账号 4个字段 Select 个人姓名,身份证号,单位账号,个人账号 from 业务_个人基本情况表 where 账户状态=’1’ 例3:从科目余额表中查询出2010年借方金额大于50万或2010年借方金额小于10万的记录,每条记录只显示摘要、科目编码、借方金额、贷方金额、年度5个字段 Select摘要,科目编码,借方金额,贷方金额,年度 From 科目余额 where(借方金额>500000 and 年度=2010) or (借方金额<100000 and 年度=2010) Select top 100 字段1,字段2……字段N from 表 where 条件含义:从表中根据where 条件查询记录,显示前100条记录,每条记录按照字段1、字段2….字段N的设置显示 例1:从凭证库中查询2004年1月31日的前100条凭证,每条 2 凭证只显示凭证日期、凭证号、科目名称、借方金额、贷方金额、会计月份 6个字段Select top 100凭证日期,凭证号,科目名称,借方金额,贷方金额,会计月份 From 凭证库where 凭证日期=’2004-1-31’ 例2:根据业务_个人基本情况表,找出缴存状态为”正常”的前100条记录 Select top 100个人姓名,身份证号,单位账号,个人账号 from 业务_个人基本情况表where 账户状态=’1’ (二)通配符的使用 *表示将全部的字段内容都显示出来 例1:从业务_电子警察表中筛选出无车号或者车牌号小于3位的记录 Select * from 业务_电子警察 where 车号=’’ or Len(车号)<3 例2:从科目余额表中查询出2002年收入大于50万的记录 Select * from 科目余额 where 借方金额>500000 and 年度=2002 %表示零或多个字符 例1:从凭证库中查询2003年各月的房租收入情况 Select month(凭证日期) as 月份, sum(贷方金额) as 房租金额 from 凭证 where 摘要 like ‘%房租%’ and 年度=2003 例2:从凭证库中查询 2008年包含税的记录 Select * from 凭证库 where摘要 like ‘%税%’ and 年度=2008 _表示任何一个字符 例1:根据科目余额表查询出目编码为10开头的一级科目记录 Select * from 科目余额

“数据透视表”的使用方法

高效率办公手把手(五) 财务Excel上篇(一) 张卓https://www.docsj.com/doc/a213790937.html, | 2007-03-30 13:11:51 | 《微电脑世界》2007年2月1日出版 引:对于财务人员,熟练掌握Microsoft Office的一些操作技巧也是非常有用的。特别是对Excel这样强大的电子表格软件,驾驭好了,可以帮你节省大量的数据演算时间。继前两期我们向行政助理人员介绍了Excel中一些据快速导入技巧后,这期咱们就来帮财务人员了解一些数据演算/分析处理方面的方法。 你遇到过这样的困扰吗? 作为一名财务工作者,在每天使用Excel跟各种数据打交道的时候,你是不是经常遇到这样的问题: 1. 面对庞大的数据,怎么快速得到你最需要的分析结果呢? 2. 在进行数据排序或者筛选的时候,总是得不到自己想要的结果,那该怎么办? 3. 在处理复杂的数据时,经常需要使用求和、计数等函数,而已令你“谈函数色变”。即使是通过函数计算出来了结果,但还需要复制到别的表格中去,不但操作麻烦,还容易出错! 接下来的内容将帮助你了解: Excel中最强大的数据分析工具——“数据透视表”的使用方法。 数据透视表——Excel中最强大的分析工具 什么是数据透视表? 数据透视表是一种在Excel中对大量数据快速汇总和建立交叉列表的交互式表格。数据透视表能帮助用户分析、组织数据。利用它可以很快地从不同角度对数据进行分类、汇总,记录数量众多、以流水账形式记录、结构复杂的工作表。为了将其中的一些内在规律显现出来,可将工作表重新组合并添加算法,即建立数据透视表。 数据透视表的使用方法和技巧 以图1中的这样一个大的数据表格为例,这张表格是某一家公司的在1996年到1998年的产品销售的详细表格,在表格中间有包括“销售人”、“货主地区”、“货主城市”、“订购日期”、“产品名称”、“单价”、“总价”等信息,非常的详细。那么面对这样一张表格,我们如何使用数据透视表来进行数据的分析呢?

Sql练习答案,sql常用实例一写就会

------1.列出至少有一个员工的所有部门。 select count(*),deptno from emp group by deptno having count(*)>1; ------2.列出薪金比“SMITH”多的所有员工。 select * from emp where sal>(select sal from emp where ename='SMITH'); ------3.列出所有员工的姓名及其直接上级的姓名。 select ename,(select ename from emp where empno=a.mgr) from emp a; select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+); ------4.列出受雇日期晚于其直接上级的所有员工。 select ename from emp a where hiredate>(select hiredate from emp where empno=a.mgr); 列出受雇日期早于其直接上级的所有员工。 select ename from emp a where hiredate<(select hiredate from emp where empno=a.mgr); ------5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。 select dname,ename from dept left join emp on dept.deptno=emp.deptno; select dname,ename from dept a,emp b where a.deptno = b.deptno(+); ------6.列出所有“CLERK”(办事员)的姓名及其部门名称。 select dname,ename from dept a,emp b where a.deptno=b.deptno and job='CLERK'; select (select dname from dept where deptno=a.deptno) as dname ,ename from emp a where job='CLERK'; ------7.列出最低薪金大于1500的各种工作。 select job,min(sal) msal from emp group by job having min(sal)>1500; ------8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。select ename from emp where deptno=(select deptno from dept where dname='SALES');

SQL查询语句例子

数据表的查询(select) select 字段列表[as 别名], * from 数据表名 [where 条件语句] [group by 分组字段] [order by 排序字段列表desc] [LIMIT startrow,rownumber] 1、Select 字段列表From 数据表 例:①、select id,gsmc,add,tel from haf (* 表示数据表中所有字段) ②、select 单价,数量,单价*数量as 合计金额from haf (As 设置字段的别名) 2、Select …from …Where 筛选条件式 筛选条件式:①、字符串数据:select * from 成绩单Where 姓名='李明' ②、万用字符:select * from 成绩单Where 姓名like '李%' select * from 成绩单Where 姓名like '%李%' select * from 成绩单Where 姓名like '%李_' ③、特殊的条件式: ⑴= / > / < / <> / >= / <= ⑵AND(逻辑与) OR(逻辑或) NOT(逻辑非) ⑶Where 字段名称in(值一,值二) ⑷Where 字段名称Is Null / Where 字段名称Is Not Null 3、Select …from …group by 字段 SQL函数: SELECT sex,count(id) as women from `user` group by 'sex'; 函数名描述函数名描述 AVG平均值Count计数 MAX最大值MIN最小值 Sum求和

数据透视表的格式设置

数据透视表的格式设置 数据透视表最大的功能在于分析。但我们在用的时候往往不是分析给我们自己看的,而是分析给我们的同事、老板、客户供应商或给一些相关的人员看的,这时候就要注意一下透视表的仪表形象了。“爱美之心,人皆有之”,如何美化数据透视表,让透视表成为内在美与外在美兼备的“美人”,这也就是本节课的学习内容——打造精美的数据透视表。 ☆ 快速为数据透视表添加应用格式(套用格式有两种方法): 方法一:数据透视表工具栏,第二个按钮“设置报告格式”,选择想要套用的格式,确定。 方法二:菜单栏格式,自动套用格式,确定。 ☆ 四类自动格式的区别与特点 第一类:报表共十种格式。它的显著特征是一维表格,相当于一个列表,而且不同优先级的字段呈缩进形态。通过演示文件可以看到,套用报表格式后,列字段就插入到了行字段的最前面,也就是说列字段优先于行字段。——建议大家谨慎使用,因为它会把你的布局都给改了。 选择自动格式时,双击报表格式就可以,不用选中后再确定。 第二类:表共十种格式。特征是二维表格,有行字段、列字段和数据区。数据区域不带缩进。格式套用后仍保留透视表的布局。 第三类:传统数据透视表只有一种格式。这是数据透视表的默认格式,使用这种格式可以把套有格式的透视表“打回原形”。 第四类:无只有一种格式。可以把数据透视表变得不像透视表。演示文件中发现,它能去掉透视表数据区域上方的“数据”,将数据透视表伪装成普通表格,这就是无格式的用处。 可以看到,在“自动套用格式”对话框中,有很多的选择,从预览图中大概的可以看出, 具体的为“报表1—10”、“表1—10”、“传统数据透视表”、“无”,即在“自动套 用格式”对话框中提供了22件“衣服”。 2、四类自动格式的区别与特点 (1)报表

sql语句—实例及答案

sql 语句大致可以分类两大类SQL(结构化查询语言) 针对数据库database和表table的操作 创建create 查看show 修改alter 删除drop // 创建一个数据库 create database mydb; // 查看所有的数据库库 show databases; // 删除 mydb drop database mydb; // 删除 user 表 drop table user; 针对表中的记录的操作 增 insert 删 delete 改 update 查 select 一、操作数据库 创建一个名称为mydb1的数据库 create database mydb1; 查看当前数据库服务器中的所有数据库 show databases; 删除前面创建的mydb3数据库 drop database mydb3;

二、操作表 1. 创建表 创建员工表 Id 整形 name 字符型 sex 字符型或bit型 brithday 日期型 Entry_date 日期型 job 字符型 Salary 小数型 resume 大文本型 use database mydatabase create table employee ( id int, name varchar(20), sex varchar(6), brithday date, entry_date date, job varchar(20), salary double, resume text ); 2. 修改表 在上面员工表的基础上增加一个image列 alter table employee add colm1 int; 修改job列,使其长度为60 alter table employee modify job varchar(60); 删除sex列。 alter table employee drop sex; 表名改为users。 rename table employee to user;

常用_select_语句汇总教学总结

常用_s e l e c t_语句汇 总

常用SELECT语句汇总 一、单表查询 (一)按照条件查询相关记录 Select 字段1,字段2……字段N from 表 where 条件 含义:从表中根据where 条件查询记录,每条记录显示的字段按照字段1、字段2….字段N的设置显示 注:select语句中的标点符号及运算符必须使用英文半角字符。 例1:从凭证库中查询2004年1月31日的凭证,每条凭证只显示凭证日期、凭证号、科目名称、借方金额、贷方金额、会计月份 6个字段 Select 凭证日期,凭证号,科目名称,借方金额,贷方金额,会计月份From 凭证库 where 凭证日期=’2004-1-31’ 例2:根据业务_个人基本情况表,找出缴存状态为”正常”的记录,查出的记录只显示姓名、身份证号、单位账号及个人账号 4个字段 Select 个人姓名,身份证号,单位账号,个人账号 from 业务_个人基本情况表 where 账户状态=’1’ 例3:从科目余额表中查询出2010年借方金额大于50万或2010年借方金额小于10万的记录,每条记录只显示摘要、科目编码、借方金额、贷方金额、年度5个字段 Select摘要,科目编码,借方金额,贷方金额,年度 From 科目余额where(借方金额>500000 and 年度=2010) or (借方金额<100000 and 年度=2010) Select top 100 字段1,字段2……字段N from 表 where 条件

含义:从表中根据where 条件查询记录,显示前100条记录,每条记录按照字段1、字段2….字段N的设置显示 例1:从凭证库中查询2004年1月31日的前100条凭证,每条凭证只显示凭证日期、凭证号、科目名称、借方金额、贷方金额、会计月份 6个字段 Select top 100凭证日期,凭证号,科目名称,借方金额,贷方金额,会计月份 From 凭证库 where 凭证日期=’2004-1-31’ 例2:根据业务_个人基本情况表,找出缴存状态为”正常”的前100条记录 Select top 100个人姓名,身份证号,单位账号,个人账号 from 业务_个人基本情况表 where 账户状态=’1’ (二)通配符的使用 *表示将全部的字段内容都显示出来 例1:从业务_电子警察表中筛选出无车号或者车牌号小于3位的记录 Select * from 业务_电子警察 where 车号=’’ or Len(车号)<3 例2:从科目余额表中查询出2002年收入大于50万的记录 Select * from 科目余额 where 借方金额>500000 and 年度=2002 %表示零或多个字符 例1:从凭证库中查询2003年各月的房租收入情况 Select month(凭证日期) as 月份, sum(贷方金额) as 房租金额 from 凭证 where 摘要 like ‘%房租%’ and 年度=2003 例2:从凭证库中查询 2008年包含税的记录 Select * from 凭证库 where摘要 like ‘%税%’ and 年度 =2008 _表示任何一个字符 例1:根据科目余额表查询出目编码为10开头的一级科目记录Select * from 科目余额 where 科目编码 like ‘10_’

SQL中经典函数使用实例大全

select substring(CODE_KIND,2,3)kind from code //2处为起始位置,3为获取字符的长度。 select left(CODE_KIND,3)from CODE //返回从左边数起的3个字符,right()函数反之。 select left('1233',2) select upper(code_name)name from code //将字符串中每个小写字母转换为大写字母,lower 转化成小写。 select REVERSE(code_name)code_name from code //将查询结果反过来。 SELECT row_number()over (order by code_kind)as kind,*from code

with codeT as ( SELECT row_number()over (order by code_kind desc)as kind,*from code ) select*from codeT where kind>1 and kind<4 SELECT RANK()over (order by code_kind)as kind,*from code //rand() 查询出来的数字不是连续的。DENSE_RANK()查出来的反之。 SELECT DENSE_RANK()over (order by code_kind)as kind,*from code

學習SQL中事務,以及upper(),right(),RANK(),DENSE_RANK(),replace()等等一些操作sql中字符串的常用函數。可快速查找出sql中符合自己所想要的數據。 可以。比如说现在有两个排序字段,如果根据第1个字段排不出来(有几条记录的这个字段相同)的话,再根据第2个字段排的。 请看下面的例子: 可多字段排序,当多字段排序时,首先排序第一个字段,当第一个字段值相同时,才按第二个字段排序,如果第二个字段值相同,才按第三个排序... 比如说现在有两个排序字段,如果根据第1个字段排不出来(有几条记录的这个字段相同)的话,再根据第2个字段排的 排序前(注意红色标记部分的数据): SQL语句: select * from Test where uname like 'Test%' order by score desc, uname asc; 排序后(注意红色标记部分的数据):

EXCEL2003数据透视表使用方法

Excel2003数据透视表 教学时 间 2012-5-16 教学课 时 2 教案序 号 40 教学目标1、巩固筛选和分类汇总的使用 2、学会数据透视表的使用方法 教学过程: 复习提问 1、在进行分类汇总之前,必须先对数据清单进行排序,使属于同一类的记录集中在一起。 2、两种筛选操作的比较: “自动筛选”一般用于条件简单的筛选操作,符合条件的记录显示在原来的数据表格中。 “高级筛选”一般用于要筛选的多个条件间是“或”的关系,或需要将筛选的结果显示在新位置。 一般情况下,“自动筛选”能完成的操作用“高级筛选”完全可以实现,但有的操作则不宜用“高级筛选”,如筛选最大或最小的前几项记录。 3、冻结拆分窗口与撤消窗口冻结: 如何设置窗口的分割点? 当不再需要已建立的冻结窗口时,可以将其撤消。撤消的方法是:单击窗口菜单,选择下拉菜单中的撤消冻结窗口命令即可。 新课 一、创建数据透视表 “数据透视表”功能能够将筛选、排序和分类汇总等操作依次完成,并生成汇总表格,是Excel强大数据处理能力的具体体现。 例:利用Excel数据透视表分类求学生成绩平均值。 期末统考结束后,教育局要求全市学生的成绩都汇总在如下图的同一个Excel工作表中,并要求求出各学校、各专业、各学科的平均分。

全市三个学校、每个学校都有六个专业、每个专业都有五门课、各专业人数不等,总计有1000余人,工作量巨大。但如果采用Excel数据透视表来完成的话就简单多了。 步骤: 1、创建数据透视表 点击菜单命令“数据→数据透视表和数据透视图”,打开“数据透视表和数据透视图向导”对话框。 第一步,如下图所示,选择“Microsoft Excel数据列表或数据库”及下面的“数据透视表”单选项。 第二步,如下图所示,在“选定区域”输入全部数据所在的单元格区域,或者点击输入框右侧的“压缩对话”按钮,在工作表中用鼠标选定数据区域。

sql常用语句100例

--update phoneinfo set cityname = '克孜勒苏柯尔克孜' where cityname = '克孜勒苏柯尔克孜州' --update phoneinfo set cityname = '湘西' where pad1 = '湖南 吉首' select * from dbo.PhoneInfo --update dbo.PhoneInfo set provincename=b.provincename,cityname=b.cityname from dbo.PhoneInfo a,PhoneInfo_hl b --where a.phonebound=b.phonebound --select * from dbo.UnknowPhoneBound --select * from dbo.Area --select * from phoneinfo a, phoneinfo_old b, phoneinfo_hl c where a.phonebound = b.phonebound and a.phonebound = c.phonebound and (a.cityname <> b.cityname or a.cityname <> c.cityname) --select * from phoneinfo a, phoneinfo_hl b where a.phonebound = b.phonebound and a.cityname <> b.citynameselect * from phoneinfo a, phoneinfo_old b where a.phonebound = b.phonebound and a.cityname <> b.cityname --select * into phoneinfo_bak from phoneinfo --select * from phoneinfo_bak select * from phoneinfo a, phoneinfo_old b where a.phonebound = b.phonebound and a.cityname <> b.cityname --select * from dbo.PhoneInfo_Telecom --update PhoneInfo_Telecom set provincename = '内蒙古' where pad1 = '内蒙兴安盟' update PhoneInfo set cityname = '酒泉' where pad1 = '甘肃 酒泉嘉峪关' --update dbo.PhoneInfo_old set provincename=b.provincename,cityname=b.cityname from dbo.PhoneInfo_old a,PhoneInfo_Telecom b --where a.phonebound=b.phonebound create table client_all as

SQL查询语句讲解实例

通用SQL数据库查询语句精华集2007年12月18日星期二08:18简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,email FROM testable WHERE name='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 昵称=nickname,电子邮件=email

FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: SELECT username,citytable.cityid FROM usertable,citytable WHERE usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名as 别名 表名别名 例如上面语句可用表的别名格式表示为: SELECT username,b.cityid FROM usertable a,citytable b WHERE a.cityid=b.cityid SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询

vfp中select语句用法

Visual FoxPro中的SQL Select查询 基本的SQL Select (2) From 子句 (2) Select 子句 (2) SQL 与用户自定义函数 (2) Select 子句中的关键字与其它子句 (3) Select 子句中的通配符 (3) 字段别名(AS) (3) 用DISTINCT 消去重复的记录 (4) 用WHERE 子句说明选择记录的条件 (4) 选择条件 (4) 连接条件 (4) SQL 与宏 (4) SQL 与字母大小写 (5) SQL 与索引 (5) 用Order By 子句对结果排序 (5) 列函数 (6) SQL 的列函数 (6) 列函数中的DISTINCT (6) 列函数的嵌套 (7) 用GROUP BY 求分组小计 (9) GROUP BY 与DISTINCT 之间的选择 (9) HAVING 子句的使用 (10) 用TOP 子句选择一定数量或一定百分比的记录 (13) 查询结果的输出定向 (14) 复杂查询 (15) 子查询 (15) 带子查询的IN 谓词与量词 (15) ANY|SOME (16) ALL (16) EXISTS (17) 自身连接 (17) 合并 (18) 示例一、快速排名次 (19) 示例二、选择重复的记录 (20) 外连接 (21) 什么就是外连接? (21) 用右外连接(Right Outer Join)选择记录 (21) 用左外连接(Left Outer Join)选择记录 (22) 用完全外连接(Full Outer Join)选择记录 (23) 用内连接加外连接选择记录 (24) 用内连接(Inner Join)选择记录 (25) 用嵌套的连接(Nested Join)选择记录 (25)

Excel数据透视表使用方法10点精要

Excel数据透视表使用方法10点精要 1、Excel数据透视表能根据时间列和用户自定时间间隔对数据进行分组统计,如按年、季度、月、日、一周等,即你的数据源表中只需有一个日期字段就足够按照(任意)时间周期进行分组了; 2、通常,透视表项目的排列顺序是按升序排列或取决于数据在源数据表中的存放顺序;. 3、对数据透视表项目进行排序后,即使你对其进行了布局调整或是刷新,排序顺序依然有效; 4、可以对一个字段先进行过滤而后再排序; 5、内部行字段中的项目是可以重复出现的,而外部行字段项目则相反; 6、通过双击透视表中汇总数据单元格,可以在一个新表中得到该汇总数据的明细数据,对其可以进行格式化、排序或过滤等等常规编辑处理; 决不会影响透视表和源数据表本身; 7、以上第6点对源数据是外部数据库的情况尤其有用,因为这时不存在单独的直观的源数据表供你浏览查阅; 8、透视表提供了多种自定义(计算)显示方式可以使用; 9、如果源数据表中的数据字段存在空白或是其他非数值数据,透视表初始便以“计数”函数对其进行汇总(计算“计数项”); 10、透视表在进行TOP 10排序时会忽略被过滤掉的项目,因此在使用此功能时要特别注意; 下面说明如何快速创建数据透视表。 ·创建数据 首先,在 Excel 工作表中创建数据。您可以将现有的电子表格或数据库中的数据导入到新 Excel 工作表中。确保数据可用于数据透视表:删除所有空行或空列。删除所有自动小计。确保第一行包含各列的描述性标题。确保各列只包含一种类型的数据—例如,一列中是文本,另一列中是数值。 ·启动“数据透视表和数据透视图向导”在 Excel 工作表中,从要根据其创建数据透视表的表格选择一个单元格。在“数据”菜单上,单击“数据透视表和数据透视图”启动“数据透视表和数据透视图向导”。

SQL语句大全实例

选课系统SQL语句实例 1. 表操作 (1) 2. 视图操作(虚表)—— (2) 3. 索引操作 (3) 4. 数据库模式操作 (3) 5. 单表操作 (3) 6. 多表操作 (4) 7. 表达式与函数的使用 (6) 8. 相关子查询 (7) 9. 关系代数运算 (8) 10. SQL 的数据操纵 (9) 11. SQL 的数据控制 (10) 1.表操作 例1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下: CREATE TABLE STUDENTS

(SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例4 删除教师表TEACHER 。 DROP TABLE TEACHER 例5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 2.视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS

相关文档
相关文档 最新文档