一、SQL 简介

1. 什么是 SQL?

SQL 指结构化查询语言

SQL 使我们有能力访问数据库

SQL 是一种 ANSI 的标准计算机语言

2. SQL 能做什么?

SQL 面向数据库执行查询

SQL 可从数据库取回数据

SQL 可在数据库中插入新的记录

SQL 可更新数据库中的数据

SQL 可从数据库删除记录

SQL 可创建新数据库

SQL 可在数据库中创建新表

SQL 可在数据库中创建存储过程

SQL 可在数据库中创建视图

SQL 可以设置表、存储过程和视图的权限

3. 注意事项

SQL 对大小写不敏感!

每条 SQL 命令的末端使用分号[;]结束

4. 查询、更新和定义指令

SQL 查询和更新指令-----------------

SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据 SQL 的数据定义指令----------------- CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引

二、SQL Select 语句

SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

1. SELECT 简单语法

SELECT 列名称 FROM 表名称

以及:

SELECT * FROM 表名称

注:SQL 语句对大小写不敏感。SELECT 等效于 select。

SQL SELECT 实例

SELECT id,name,title FROM posts

SELECT * FROM posts

注:星号(*)是选取所有列的快捷方式。

2. SELECT DISTINCT 语句

DISTINCT 用于返回唯一不同的值(按某一列去重)。

语法:

SELECT DISTINCT 列名称 FROM 表名称

如:

SELECT DISTINCT title FROM posts

3. WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

下面的运算符可在 WHERE 子句中使用:

操作符

描述

=

等于

<>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

BETWEEN

在某个范围内

LIKE

搜索某种模式

如下:

SELECT 语句添加 WHERE 子句:

SELECT * FROM posts WHERE title='test title'

注意,单引号的使用。

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

文本值:

这是正确的:

SELECT * FROM posts WHERE title='test title'

这是错误的:

SELECT * FROM posts WHERE title=test title

数值:

这是正确的:

SELECT * FROM posts WHERE Year>1965

这是错误的:

SELECT * FROM posts WHERE Year>'1965'

4. AND & OR 运算符

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

AND 运算符实例 如下:

SELECT * FROM posts WHERE title='test title' AND name='admin'

OR 运算符实例

SELECT * FROM posts WHERE title='test title' OR name='admin'

结合 AND 和 OR 运算符

SELECT * FROM posts WHERE (title='test title' OR FirstName='admin') AND status='publish'

5. ORDER BY 子句

ORDER BY 语句用于对结果集进行排序

ORDER BY 语句默认按照升序对记录进行排序(ASC)

如果希望按降序排序,可以使用 DESC 关键字

实例如下:

SELECT * FROM posts ORDER BY title

SELECT * FROM posts ORDER BY title DESC

多个排序条件如下:

SELECT title,name FROM posts ORDER BY title DESC, name ASC

注意:在以上的结果中第一列 title 有相等时。第二个排序条件才会起作用,并对相同的 title 再按 name 排序。

6. Limit 子句

Limit 子句是用于规定要返回的记录的数目

SELECT * FROM posts LIMIT 10

SELECT * FROM posts LIMIT 1,10

7. LIKE 通配符

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]或者[!charlist]

不在字符列中的任何单一字符

1. LIKE 操作符(替代一个或多个字符)

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

实例如下:

SELECT * FROM posts WHERE title LIKE 'test%'

提示:”%” 可用于定义通配符(模式中缺少的字母)。

或:

SELECT * FROM posts WHERE title LIKE '%test%'

NOT 关键字 (不包含 某些关键字)

如下:

SELECT * FROM posts WHERE title NOT LIKE '%test%'

2. _ 通配符(仅替代一个字符)

SELECT * FROM posts WHERE title LIKE '___t'

3. [charlist] 通配符(字符列中的任何单一字符)

SELECT * FROM posts WHERE title LIKE '[ALN]%'

不以 “A” 或 “L” 或 “N” 开头的 title

SELECT * FROM posts WHERE title LIKE '[!ALN]%'

8. IN 操作符

IN 操作符允许我们在 WHERE 子句中规定多个值。

实例:

SELECT * FROM posts WHERE name IN ('admin','john')

9. BETWEEN … AND … 操作符

操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

SELECT * FROM posts WHERE name BETWEEN 'Adams' AND 'Carter'

范围之外的人,请使用 NOT 操作符

SELECT * FROM posts WHERE name NOT BETWEEN 'Adams' AND 'Carter'

10. AS (Alias 别名)

可以为列名称和表名称指定别名(Alias)。

SELECT name AS n, title AS t FROM posts

11. JOIN

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

JOIN: 如果表中有至少一个匹配,则返回行

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

FULL JOIN: 只要其中一个表中存在匹配,就返回行

1. LEFT JOIN 关键字

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

SELECT id, brand, sa.state_name AS state FROM shopping AS shop LEFT JOIN state_alias AS sa ON (sa.state_abbr = shop.state)

12. SQL 函数

函数语法:

SELECT function(列) FROM 表

SQL 拥有很多可用于计数和计算的内建函数。

函数

描述

AVG(column)

返回某列的平均值

COUNT(column)

返回某列的行数(不包括NULL值)

FIRST(column)

返回在指定的列中第一个记录的值

LAST(column)

返回在指定的域中最后一个记录的值

MAX(column)

返回某列的最高值

MIN(column)

返回某列的最低值

SUM(column)

返回某列的总和

ROUND(column,decimals)

把数值字段舍入为指定的小数位数

NOW()

返回当前的日期和时间

FORMAT(Now(),’YYYY-MM-DD’)

用于对字段的显示进行格式化

13. GROUP BY 语句

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

我们拥有下面这个 “Orders” 表:

O_Id

OrderDate

OrderPrice

Customer

1

2008/12/29

1000

Bush

2

2008/11/23

1600

Carter

3

2008/10/05

700

Bush

4

2008/09/28

300

Bush

5

2008/08/06

2000

Adams

6

2008/07/21

100

Carter

现在,我们希望查找每个客户的总金额(总订单)。

SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer

结果集类似这样:

Customer

SUM(OrderPrice)

Bush

2000

Carter

1700

Adams

2000

让我们看一下如果省略 GROUP BY 会出现什么情况:

Customer

SUM(OrderPrice)

Bush

5700

Carter

5700

Bush

5700

Bush

5700

Adams

5700

Carter

5700

其它实例:

select state,count(state) from shopping GROUP BY state

END!

mysql sql select_mysql SQL Select 语句 简单应用相关推荐

  1. mysql 查询 select_mysql 查询select语句汇总

    数据准备: 创建表: create table students( id int unsigned primary key auto_increment not null, name varchar( ...

  2. MySQL中SELECT语句简单使用

    MySQL中SELECT语句简单使用 最近开始复习mysql,查漏补缺吧. 关于mysql 1.MySQL不区分大小写,但是在MySQL 4.1及之前的版本中,数据库名.表名.列名这些标识符默认是区分 ...

  3. MySQL中SELECT语句简单使用 1

    最近开始复习mysql,查漏补缺吧. 关于mysql 1.MySQL不区分大小写,但是在MySQL 4.1及之前的版本中,数据库名.表名.列名这些标识符默认是区分大小写的:在之后的版本中默认不区分大小 ...

  4. 了解SQL INSERT INTO SELECT语句

    In this article, we will be focusing on Working of SQL INSERT INTO SELECT statement altogether. 在本文中 ...

  5. SQL INSERT INTO SELECT 语句

    SQL INSERT INTO SELECT 语句 通过SQL,可以从一个表复制信息到另一个表. INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中.目标表中 ...

  6. MySQL进阶查询(SELECT 语句高级用法)

    文章目录 MySQL进阶查询 1.1按关键字排序 1.2对结果进行分组 1.3限制结果条目 1.4设置别名 1.5通配符 1.6子查询 1.7NULL值 1.8正则表达式 1.9运算符 1.10连接查 ...

  7. 零基础学习数据库SQL教程(一)(简单的SELECT语句 简单的INSERT语句 简单的UPDATE语句 简单的DELETE语句)

    写在前面的话:本文章内容是自己在LintCode网站SQL教程学习过程中做的学习总结,以便自己复习和大家学习,如果去刷此网站的题,也可以把此文作为参考答案来使用.例题的答案是本人所写,并且已经运行成功 ...

  8. SQL笔记(一)SQL语法、SELECT语句、DISTINCT语句、LIMIT、LIMIT和OFFSET组合使用、WHERE 子句

    文章目录 1SQL语法 1.1 SELECT 语句 1.1.1SQL SELECT 语句 1.1.2SQL SELECT 语法 1.2DISTINCT 语句 1.2.1 DISTINCT 的作用 1. ...

  9. mysql 取左_MySQL select语句从字符串左侧获取5个字符

    要从字符串的左侧获取字符数,请在MySQL中使用LEFT方法.让我们首先创建一个表-mysql> create table DemoTable ( Name varchar(100) ); 使用 ...

最新文章

  1. python多线程执行类中的静态方法
  2. 23种设计模式C++源码与UML实现--单例模式中的饿汉模式和懒汉模式
  3. Java中最早期的集合Vector
  4. 计算机基础知识-操作系统
  5. python get post请求_使用python封装get+post请求
  6. 技术人如何提升自己的核心竞争力
  7. 判断form表单里面的元素属性是否有数据_html form标签的action属性是什么意思?又有哪些用法?(附实例)...
  8. unity3d在Android端读取修改Json数据
  9. 143.根据文件头判断类型
  10. 根据主题不同,引用不同的资源文件
  11. js 获取窗口高度 兼容 各种浏览器
  12. NLP学习03_停用词过滤、stemming、文本表示tf-idf、文本相似度
  13. 360众测靶场云文件服务器,360 政企安全官网_帮助应对高级威胁攻击
  14. 然之协同 PHP,然之协同办公系统5.2开源版官方下载
  15. 字节跳动,野心十足,十年有可能打败腾讯成为第二个互联网巨头吗?
  16. win11右击文件夹假死
  17. flutter 九宫格菜单_Flutter 仿微信/微博九宫格
  18. 上海58同城区域小区请清单(数据)
  19. Scard API 智能卡操作
  20. typescript77-在CRA创建支持ts的项目

热门文章

  1. 01_基于应用拆分的技术架构
  2. 4进程原语:fork()函数,getpid()函数和getppid()函数,getuid()函数,getgid()函数,vfork()
  3. Oracle创建用户,创建表空间,将空间分配给用户,给用户授权
  4. 检索数据_8_查询语句里执行条件判断
  5. linux自动挂起什么意思,Linux中进行挂起(待机)的命令说明
  6. S3C2440的LCD编程
  7. Vsftpd文件传输服务(本地用户访问)
  8. Mac搭建Lua运行环境
  9. 大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》
  10. 从Exchange 通往Office 365系列(十六)添加域名到Office 365