select语句_函数

1.1 查询语句

1.1.1 select

select 用于从数据看查询数据。语法:

select field1,filed2,.. .

from tablename

[where condition]

1 select ename "姓名",job "岗位" from emp;

表的别名:

1 select emp.ename,emp.job from emp;
2 select e.ename,e.job from emp e;

* 通配符表示查询所有字段。如果要查特定字段时,不要使用*,影响查询效率

1 select e.* from emp e;

1.1.2 distinct 去重

把重复性的记录去掉,只保留一条。

修饰多字段时,多个字段的值都不一样才保留。

查询工种:

1 select distinct e.job from emp e;

1.1.3 where 子句

where 表示查询的条件。

【1】 =,!= ,<>,<,>,<=,>= 关系运算符

<> 表示不等于

查询底薪大于等于1000的员工:

1 select e.* from emp e where e.sal >= 1000;

any/some/all (list)

any/some(list) 满足list列表中的任意一个条件

all(list) 满足list列表的中所有条件

1 select e.* from emp e where e.sal>any(some)(800,1000);
1 select e.* from emp e where e.sal>all(800,1000);

null

【2】null 在sql中表示的是不确定 => 可以认为没有值

1 select e.* from emp e where e.comm is (not) null;

【3】between x and y

表示一个值位于[x,y]区间,x/y 一般都是数字。

1 select e.* from emp e where e.sal between 1000 and 5000;

【4】 in/not in list

表示字段值是否在list列表中

1 select e.* from emp.e where e.deptno (not) in (10,20);

【5】模糊查询

like 关键字用于模糊查询,其中

%:表示任意字符出现多次(含0次),

_:表示任意字符出现1次

1 (已c开头)
2 select e.* from emp e where e.ename like ‘c%‘;
3 (第二位为c)
4 select e.* from emp e where e.ename like ‘_c%‘;
5 (含有c)
6 select e.* from emp e where e.ename like ‘%c%‘;
7 (含有%的)
8 select e.* from emp e where e.ename like ‘%\%%‘ escape(‘\‘);

1.2 复杂查询(and/or)

where 后面的条件可以跟多个通过and 或者 or 连接

and:且、并且

or: 或、或者

查询部门10且薪资大于等2000的雇员:

1 select e.* from emp e where e.deptno = 10 and e.sal >= 2000;

查询部门在10或20的雇员:

1 select e.* from emp e where e.deptno = 10 or e.deptno = 20

where 中and、or的执行效率问题:

and 表示且,条件越多,检索的数据量越来越少

or 表示或,条件越多,检索的数据量越来越多

where 条件的执行顺序从后向前

AND:  把检索结果较少的条件放到后面。

如果and 和 or同时存在时,and先执行。

案例:

使用in查询部门名称为 SALES 和 RESEARCH 的雇员姓名、工资、部门编号

思考:部门名称位于dept,雇员信息位于emp表

1 select e.ename,e.sal,e.deptno
2 from emp e
3 where e.deptno in
4 (
5 select d.deptno
6 from dept d
7 where d.dname = ‘SALES‘ or d.dname = ‘RESEARCH‘
8 );

1.3 计算字段

我们经常需要把数据库中检索出来的信息进行再加工,允许的操作+、-、*、/。通过四个运算得到新的字段(计算字段)。

计算字段在数据表中不存在。

1 select e.ename,e.sal+e.comm as "收入",e.deptno from emp e;

注意:很多记录中的comm是null,表示不确定的值,经常四则运算后的值也不确定。

当遇到字段时null时,可以通过nvl函数把null转化便于运算的类型。

(当comm值为null时,使用nvl函数:如果e.comm为null,则取后一个值,不为null,则取e.comm)

1 select e.ename,e.sal+nvl(e.comm,0) "收入",e.deptno from emp e;

1.4 函数

函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。

函数根据处理的数据分为单行函数和聚合函数(组函数)。

组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句

单行函数对单个数值进行操作,并返回一个值。

dual是一个系统表。用于测试。

 1 --字符串连接
 2 select concat(‘aa‘,‘12‘) from dual;
 3 select ‘aa‘||‘12‘ from dual;
 4
 5 --首字母大写
 6 select initcap(‘abcd‘) from dual;
 7
 8 --把大写转化小写
 9 select lower(‘ABC‘) from dual;
10 --把小写转化大写
11 select upper(‘abcd‘) from dual;
12
13 --填充字符lpad/rpad
14 select lpad(‘abc‘,5,‘/‘) from dual;
15
16 --去掉空白字符
17 select ltrim(‘  hellow‘,‘ ‘) from daul;
18 select rtrim(‘hellow  ‘,‘ ‘) from daul;
19 --删除左右两边
20 select trim(‘p‘ from ‘pop‘) from daul;
21
22 --求子串 substr(str,loc,len)-->loc从1开始,len表示截取长度
23 select substr(‘saber‘,1,2) from daul;
24
25 --查找字符串  找到返回>=1的索引;如果没找到返回0
26 select instr(‘abcd‘,‘b‘) from dual;
27
28 --求长度
29 select length(‘abcd‘) from dual;
30
31 小需求
32 select substr(‘18112345678‘,1,3)||‘-‘||substr(‘18112345678‘,4,4)||‘-‘||substr(‘18112345678‘,8) from  daul;
33 输出结果为:181-1234-5678

 

原文地址:https://www.cnblogs.com/LSZJZ/p/10859342.html

时间: 2024-11-13 02:18:07

select语句_函数的相关文章

select语句,函数

1.  查询语句 1) select select用于从数据看查询数据.语法 1 select field1,filed2,.. . 2 3 from tablename 4 5 [where condition] 1 -- 查询所有员工的名字和雇员号 2 3 select empno,ename from emp; 4 5 6 7 -- 查询所有员工的雇员号.姓名.岗位 8 9 select empno,ename,job from emp; 10 11 12 13 -- 字段的别名 as 1

mysql 查询select语句汇总

数据准备: 创建表: create table students( id int unsigned primary key auto_increment not null, name varchar(20) default '', age tinyint unsigned default 0, height decimal(5,2), gender enum('男','女','人妖','保密'), cls_id int unsigned default 0, isdelete bit defau

mysql基础篇 - SELECT 语句详解

基础篇 - SELECT 语句详解 SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELECT 语句的用法. 二.实验准备 在正式开始本实验内容之前,需要先下载相关数据库表,搭建好一个名为mysql_shiyan 的数据库(有三张表:department,employee,project),并向其中插入数据. 具体操作如下,首先输入命令进入 /home/shiyanlou/Desktop 目录: cd /

MySQL之SELECT 语句详解

本文参考实验楼的SELECT 语句详解结合自己操作部分而写成. 注意:大多数系统中,SQL语句都是不区分大小写的,但是出于严谨和便于区分保留字和变量名,在书写的时,保留字应大写,而变量名应小写.所谓的保留字,即为:在高级语言中已定义过的字,使用者不能将这些字作为变量名和过程名使用. 1)SELECT语句的基本格式是:SELECT 查询的列名 FROM 表名 WHERE 限制条件:在上一篇博客创建一个简单的成绩管理系统 中,使用SELECT * FROM employee代表查询所有的列.例如,要

oracle sql 基础(二):select 语句

为了从数据库中查询数据,你需要用SQL语言中使用最多的SELECT语句.我们分别介绍SELECT语句的基础语法.子查询.从多表中查询数据,然后再进行实例解析. 一.SELECT语句的基础语法 SELECT语句就像叠加在数据库表上的过滤器,即选择查询用于定位数据库特定的列和行.下面是SELECT语句的基础语法.  SELECT [ALL|DISTINCT SELECT_LIST FROM {table_name|view_name} [WHERE search_condition] [GROUP

SQL 基础:Select语句,各种join,union用法

一.基本的SELECT语句 1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯. 虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多.相应的,也会降低应用程序的性能及网络性能. 良好的规则是只选所需. 2. join子句 join是用来定义如何从多个表中选取数据并组合成一个结果集. join必需是因为(1)我们所要获取的所有信息并不都在一个表中,或者(2)所要返回的信息都在一个表中,但是其上设置的条件信息却在另一个表中. join的共同点

Mysql常用语句与函数(待续)

-- 查询语句select class from stu_info where sid=1000000102;select * from stu_info t where t.age=88; -- t是表的别名,多表查询时比较方便select * from atable a, btable b where a.aID = b.bID;select * from stu_info t where t.age=99 or (t.age>20 and t.age <90);select * from

SELECT语句详解

来源: 整理自实验楼 链接: https://www.shiyanlou.com/courses/9 CREATE DATABASE school; use school; CREATE TABLE department ( dpt_name CHAR(20) NOT NULL, people_num INT(10) DEFAULT '10', CONSTRAINT dpt_pk PRIMARY KEY (dpt_name) ); CREATE TABLE user_info ( id INT(

4.InfluxDB-InfluxQL基础语法教程--基本select语句

本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) 基本语法如下: SELECT <field_key>[,<field_key>,<tag_key>] FROM <measurement_name>[,<measurement_name>] 可见,select语句是由SELECT子句和FROM子句组成的. 一.SELE