SQL的简介
- 通过学习本文档后能够掌握到的知识点
- 1.sql是什么
- 2.sql的作用
- 3.sql基本语法
- 4 .sql单行函数
子曰:“学而不思则罔,思而不学则殆。”
1. SQL的·基本概念
SQL(Structured Query Language)是结构化查询语言的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,同时也是数据库脚本文件的扩展名。
2.使用SQL的原因
SQL是用于存取数据以及查询、更新和管理关系数据库系统的编程语言。作为一个JAVA“程序猿”与数据库打交道是不可避免的,或者说任何IT开发人员。可以不了解其他的语言但是数据库是必须知道的!同时,我也给正在大学,或者其他IT类学习的童鞋们一句俄国作家沃·滋基索德名言。(经验之谈)
数据库都不会的还学什么学 ——————–沃·滋基索德
3. SQL基本语法
SQL语言分为DDL( Data Definition Language)数据定义语言,DML(Data Manipulation Language)数据操作语言,DCL(Data Control Language)数据控制语言。
对于我本身来说最主要的学习中心在DML语言上,相对来说DDL,以及DCL就没太注意了。我是属于在工作的时候需要什么技术就去研究一部分 。工作中用的相对较少的就并没有太过与关注 。废话不多说了!
(xxx) 代表可选项目
列选择
SELECT Column1, Column2 from table1
行选择
SELECT * from table1 ps:值得注意的是*代表的是所有的列.
多表连接查询:
SELECT table1.Column1,
table2.Column2… from table1,table2…
SELECT语句语法
SELECT 表示要取哪些列
FROM 表示要从哪些表中取
同时要注意 SELECT中也可以用数学表达式::用于数值和日期型字段,可以进行 “加减乘除”
SELECT last_name, salary, salary + 300 FROM employees;
提到了SELECT语句不得不提的是NULL概念,毕竟NULL非常的影响查询
关于NULL的概念 :
NULL表示 不可用、未赋值、不知道、不适用 , 它既不是0 也不是空格
在进行多表查询的时候会有相同的列需要查出,这时候需要加上表名才能够标明是那张表的列.
(表名).列名 但是大多数情况下表名是非常长的所以我们需要“别名” 来标识 .
在Select的时候给列起个别名(注意双引号的作用):
SELECT last_name AS name,commission_pct comm
FROM employees AS "别名"
不难看出AS便是关键词,同时AS也可以省去只需要与表名,列名之间留出一个空格。(注意:取中文别名时注意用双引号包裹!)
字符串连接操作符: “||” 在工作中很多需求是要求改变表头改成实际所需的字符,这时候这个拼凑符非常有用像JAVA中的+的运用。
SELECT last_name||job_id AS "Employees"
FROM employees;
SELECT last_name ||' is a '||job_id AS "Employee Details"
FROM employees;
在你查询时难免会有很多重复的数据,这个时候你可以选择DISTINCT 函数 。
SELECT DISTINCT department_id FROM employees; 使用DISTINCT消除重复结果行
条件限制和排序
简单的查询是一个基础,接下来弄点复杂一点的。
条件限制的关键词:WHERE
SELECT *|{[DISTINCT] column|expression [alias],…}
FROM table
[WHERE condition(s)];
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
谈到条件限制就需要来一波条件限制的图啦!
来两个例子给你们看看。
BETWEEN AND的用法两个值
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500;
IN :列在某些值中
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201);
哦~~
差点忘记啦!还有LIKE对就是模糊查询,这是挺重要的一个关键词。LIKE
可使用% 或者_ 作为通配符:
% 代表 0个或者多个 字符.
_ 代表一个单个字符.
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%';
假如你要搜素刚好也有通配符,这个时候你可以用ESCAPE来标识转义字符 .
举个栗子:
select * from t_char where a like „%\%%' escape '\';
NULL条件 这个东西还是很重要的哈哈!
SELECT last_name,manager_id
FROM employees
WHERE manager_id IS NULL;
IS NULL用来判断列中是否是NULL值 。
逻辑判断 。OR AND NOT ,或 非。
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%';
其他类似不赘述啦。
ORDER BY 排序
ASC : 升序 (默认)
DESC:倒序 (需要声明)
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
FROM employees
ORDER BY hire_date ;
可以按多个字段排序 ,只需要在后面加上所需的字段就行 。
单行函数
大小写转换函数:
函数 结果
LOWER(‘SQL Course’) sql course
UPPER(‘SQL Course’) SQL COURSE
INITCAP(‘SQL course’) Sql Course
需要注意的一点是Oracle数据库中的数据是大小写敏感的。
字符串操作函数:
函数 结果
CONCAT(‘Hello’, ‘World’) HelloWorld
SUBSTR(‘HelloWorld’,1,5) Hello
LENGTH(‘HelloWorld’) 10
INSTR(‘HelloWorld’, ‘W’) 6
LPAD(salary,10,’*’) *****24000
RPAD(salary, 10, ‘‘) 24000****
TRIM(‘H’ FROM ‘HelloWorld’) elloWorld
TRIM(’ HelloWorld’) HelloWorld
TRIM(‘Hello World’) Hello World