SQL的基本语法(06)

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值