搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
基于Python的OpenCV+TensorFlow+Keras人脸识别实现_使用keras和opencv实现对olivetti faces人脸数据库的人脸识别
2
【Unity3D 灵巧小知识点】☀️ | Unity 中 怎样切换 天空盒 背景_unity的天空背景怎么改颜色
3
使用pytorch搭建神经网络
4
认真学习MySQL的事务日志-Undo日志_mysql 10分钟的事务,undolog会变化吗?
5
唯品会app请求头参数authorization的逆向分析与算法还原_唯品会api_sign
6
C#多线程和异步编程——Task和async/await详解_c# task不阻塞ui
7
别再问我阿里面试流程了!!!P8 面试官 花了一个月整理了这份 4000 字的 面试流程_p8面试官是啥
8
万字知识长文:ChatGPT 从零完全上手实操指南_chatgpt从零完全上手实操指南
9
kali渗透内网和外网_kali入侵电脑教程
10
无人驾驶Carla烧脑bug合集(随时更新)_4.22.1-0+++ue4+release-4.22 517 0 disabling core d
当前位置:
article
> 正文
基本select使用 全解
作者:很楠不爱3 | 2024-03-05 00:50:27
赞
踩
select
SELECT
语句
1. SQL
概述
1.1 SQL
背景知识
1946
年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十
年里,无数的技术、产业在这片江湖里沉浮,有的方兴未艾,有的已经几幕兴衰。但在这片浩荡的
波动里,有一门技术从未消失,甚至
“
老当益壮
”
,那就是
SQL
。
45
年前,也就是
1974
年,
IBM
研究员发布了一篇揭开数据库技术的论文《
SEQUEL
:一门结构
化的英语查询语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语
言,
SQL
的半衰期可以说是非常长
了。
不论是前端工程师,还是后端算法工程师,都一定会和数据打交道,都需要了解如何又快又准确地
提取自己想要的数据。更别提数据分析师了,他们的工作就是和数据打交道,整理不同的报告,以
便指导业务决策。
SQL
(
Structured Query Language
,结构化查询语言)是使用关系模型的数据库应用语言,
与数据直
接打交道
,由
IBM
上世纪
70
年代开发出来。后由美国国家标准局(
ANSI
)开始着手制定
SQL
标准,
先后有
SQL
-
86
,
SQL
-
89
,
SQL
-
92
,
SQL
-
99
等标准。
SQL
有两个重要的标准,分别是
SQL92
和
SQL99
,它们分别代表了
92
年和
99
年颁布的
SQL
标
准,我们今天使用的
SQL
语言依然遵循这些标准。
不同的数据库生产厂商都支持
SQL
语句,但都有特有内容。
1.2 SQL
语言排行榜
自从
SQL
加入了
TIOBE
编程语言排行榜,就一直保持在
Top 10
。
1.3 SQL
分类
SQL
语言在功能上主要分为如下
3
大类:
DDL
(
Data Definition Languages
、数据定义语言)
,这些语句定义了不同的数据库、表、视图、索
引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。
主要的语句关键字包括
CREATE
、
DROP
、
ALTER
等。
DML
(
Data Manipulation Language
、数据操作语言)
,用于添加、删除、更新和查询数据库记
录,并检查数据完整性。
主要的语句关键字包括
INSERT
、
DELETE
、
UPDATE
、
SELECT
等。
SELECT
是
SQL
语言的基础,最为重要。
DCL
(
Data Control Language
、数据控制语言)
,用于定义数据库、表、字段、用户的访问权限和
安全级别。
主要的语句关键字包括
GRANT
、
REVOKE
、
COMMIT
、
ROLLBACK
、
SAVEPOINT
等。
因为查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:
DQL
(数据查询语言)。
还有单独将
COMMIT
、
ROLLBACK
取出来称为
TCL
(
Transaction Control Language
,事务控制语
言)。
2. SQL
语言的规则与规范
2.1
基本规则
SQL
可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
每条命令以
;
或
\g
或
\G
结束
关键字不能被缩写也不能分行
关于标点符号
必须保证所有的
()
、单引号、双引号是成对结束的
必须使用英文状态下的半角输入方式
字符串型和日期时间类型的数据可以使用单引号(
' '
)表示
列的别名,尽量使用双引号(
" "
),而且不建议省略
as
2.2 SQL
大小写规范 (建议遵守)
MySQL
在
Windows
环境下是大小写不敏感的
MySQL
在
Linux
环境下是大小写敏感的
数据库名、表名、表的别名、变量名是严格区分大小写的
关键字、函数名、列名
(
或字段名
)
、列的别名
(
字段的别名
)
是忽略大小写的。
推荐采用统一的书写规范:
数据库名、表名、表别名、字段名、字段别名等都小写
SQL
关键字、函数名、绑定变量等都大写
2.3
注 释
可以使用如下格式的注释结构
2.4
命名规则(暂时了解)
数据库、表名不得超过
30
个字符,变量名限制为
29
个
必须只能包含
A–Z, a–z, 0–9, _
共
63
个字符
数据库名、表名、字段名等对象名中间不要包含空格
同一个
MySQL
软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在
SQL
语句中使
用
`
(着重号)引起来
保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据
类型在一个表里是整数,那在另一个表里可就别变成字符型了
举例:
单行注释:
#
注释文字
(MySQL
特有的方式
)
单行注释:
--
注释文字
(--
后面必须包含一个空格。
)
多行注释:
/*
注释文字
*/
#
以下两句是一样的,不区分大小写
show databases
;
SHOW DATABASES
;
#
创建表格
#create table student info(...); #
表名错误,因为表名有空格
create table
student_info(...);
#
其中
order
使用
``
飘号,因为
order
和系统关键字或系统函数名等预定义标识符重名了
CREATE TABLE
`order`
(
2.5
数据导入指令
在命令行客户端登录
mysql
,使用
source
指令导入
3.
基本的
SELECT
语句
3.0 SELECT...
3.1 SELECT ... FROM
语法:
选择全部列:
id
INT
,
lname
VARCHAR
(
20
)
);
select
id
as
"
编号
"
,
`name`
as
"
姓名
"
from
t_stu;
#
起别名时,
as
都可以省略
select
id
as
编号
,
`name`
as
姓名
from
t_stu;
#
如果字段别名中没有空格,那么可以省略
""
select
id
as
编 号
,
`name`
as
姓 名
from
t_stu;
#
错误,如果字段别名中有空格,那么不能省略
""
mysql>
source
d:
\m
ysqldb
.sql
mysql>
desc
employees;
+----------------+-------------+------+-----+---------+-------+
|
Field
| Type |
Null
|
Key
|
Default
| Extra |
+----------------+-------------+------+-----+---------+-------+
| employee_id |
int
(
6
) |
NO
| PRI |
0
| |
| first_name |
varchar
(
20
) | YES | |
NULL
| |
| last_name |
varchar
(
25
) |
NO
| |
NULL
| |
| email |
varchar
(
25
) |
NO
| UNI |
NULL
| |
| phone_number |
varchar
(
20
) | YES | |
NULL
| |
| hire_date |
date
|
NO
| |
NULL
| |
| job_id |
varchar
(
10
) |
NO
| MUL |
NULL
| |
| salary |
double
(
8
,
2
) | YES | |
NULL
| |
| commission_pct |
double
(
2
,
2
) | YES | |
NULL
| |
| manager_id |
int
(
6
) | YES | MUL |
NULL
| |
| department_id |
int
(
4
) | YES | MUL |
NULL
| |
+----------------+-------------+------+-----+---------+-------+
11
rows
in set
(
0.00
sec)
SELECT
1
;
#
没有任何子句
SELECT
9
/2;
#
没有任何子句
SELECT
标识选择哪些列
FROM
标识从哪个表中选择
SELECT
*
FROM
departments;
一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符
‘*’
。使用通配符虽然可以节
省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。通
配符的优势是,当不知道所需要的列的名称时,可以通过它获取它们。
在生产环境下,不推荐你直接使用
SELECT *
进行查询。
选择特定的列:
MySQL
中的
SQL
语句是不区分大小写的,因此
SELECT
和
select
的作用是相同的,但是,许多开发人
员习惯将关键字大写、数据列和表名小写,读者也应该养成一个良好的编程习惯,这样写出来的代
码更容易阅读和维护。
3.2
列的别名
重命名一个列
便于计算
紧跟列名,也可以
在列名和别名之间加入关键字
AS
,别名使用双引号
,以便在别名中包含空格或特
殊的字符并区分大小写。
AS
可以省略
建议别名简短,见名知意
举例
SELECT
department_id, location_id
FROM
departments;
SELECT
last_name
AS
name, commission_pct comm
FROM
employees;
3.3
去除重复行
默认情况下,查询会返回全部行,包括重复行。
在
SELECT
语句中使用关键字
DISTINCT
去除重复行
针对于:
这里有两点需要注意:
SELECT
last_name
"Name"
, salary*
12
"Annual Salary"
FROM
employees;
SELECT
department_id
FROM
employees;
SELECT DISTINCT
department_id
FROM
employees;
SELECT DISTINCT
department_id,salary
FROM
employees;
1. DISTINCT
需要放到所有列名的前面,如果写成
SELECT salary, DISTINCT department_id
FROM employees
会报错。
2. DISTINCT
其实是对后面所有列名的组合进行去重,你能看到最后的结果是
74
条,因为这
74
个部
门
id
不同,都有
salary
这个属性值。如果你想要看都有哪些不同的部门(
department_id
),只需
要写
DISTINCT department_id
即可,后面不需要再加其他的列名了。
3.4
空值参与运算
所有运算符或列值遇到
null
值,运算的结果都为
null
这里你一定要注意,在
MySQL
里面, 空值不等于空字符串。一个空字符串的长度是
0
,而一个空值的长
度是空。而且,在
MySQL
里面,空值是占用空间的。
3.5
着重号
错误的
正确的
结论
我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在
SQL
语句中使用一对
``
(着重号)引起来。
SELECT
employee_id,salary,commission_pct,
12
* salary * (
1
+ commission_pct)
"annual_sal"
FROM
employees;
mysql>
SELECT
*
FROM ORDER
;
ERROR
1064
(
42000
): You have an error
in
your
SQL
syntax;
check
the manual that
corresponds
to
your MySQL
server
version
for
the
right
syntax
to use
near
'ORDER'
at
line
1
mysql>
SELECT
*
FROM
`ORDER`
;
+----------+------------+
| order_id | order_name |
+----------+------------+
|
1
| shkstart |
|
2
| tomcat |
|
3
| dubbo |
+----------+------------+
3
rows
in set
(
0.00
sec)
mysql>
SELECT
*
FROM
`order`
;
+----------+------------+
| order_id | order_name |
+----------+------------+
|
1
| shkstart |
|
2
| tomcat |
|
3
| dubbo |
+----------+------------+
3
rows
in set
(
0.00
sec)
3.6 5
、查询常数
SELECT
查询还可以对常数进行查询。对的,就是在
SELECT
查询结果中增加一列固定的常数列。这列的
取值是我们指定的,而不是从数据表中动态取出的。
你可能会问为什么我们还要对常数进行查询呢?
SQL
中的
SELECT
语法的确提供了这个功能,一般来说我们只从一个表中查询数据,通常不需要增加一个
固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。
比如说,我们想对
employees
数据表中的员工姓名进行查询,同时增加一列字段
corporation
,这个
字段固定值为
“
尚硅谷
”
,可以这样写:
4.
显示表结构
使用
DESCRIBE
或
DESC
命令,表示表结构。
其中,各个字段的含义分别解释如下:
Field
:表示字段名称。
Type
:表示字段类型,这里
barcode
、
goodsname
是文本型的,
price
是整数类型的。
Null
:表示该列是否可以存储
NULL
值。
Key
:表示该列是否已编制索引。
PRI
表示该列是表主键的一部分;
UNI
表示该列是
UNIQUE
索引的一
部分;
MUL
表示在列中某个给定值允许出现多次。
Default
:表示该列是否有默认值,如果有,那么值是多少。
Extra
:表示可以获取的与给定列有关的附加信息,例如
AUTO_INCREMENT
等。
SELECT
'
尚硅谷
'
as
corporation, last_name
FROM
employees;
DESCRIBE
employees;
或
DESC
employees;
mysql>
desc
employees;
+----------------+-------------+------+-----+---------+-------+
|
Field
| Type |
Null
|
Key
|
Default
| Extra |
+----------------+-------------+------+-----+---------+-------+
| employee_id |
int
(
6
) |
NO
| PRI |
0
| |
| first_name |
varchar
(
20
) | YES | |
NULL
| |
| last_name |
varchar
(
25
) |
NO
| |
NULL
| |
| email |
varchar
(
25
) |
NO
| UNI |
NULL
| |
| phone_number |
varchar
(
20
) | YES | |
NULL
| |
| hire_date |
date
|
NO
| |
NULL
| |
| job_id |
varchar
(
10
) |
NO
| MUL |
NULL
| |
| salary |
double
(
8
,
2
) | YES | |
NULL
| |
| commission_pct |
double
(
2
,
2
) | YES | |
NULL
| |
| manager_id |
int
(
6
) | YES | MUL |
NULL
| |
| department_id |
int
(
4
) | YES | MUL |
NULL
| |
+----------------+-------------+------+-----+---------+-------+
11
rows
in set
(
0.00
sec)
5.
过滤数据
背景:
语法:
使用
WHERE
子句,将不满足条件的行过滤掉
WHERE
子句紧随
FROM
子句
举例
SELECT
字段
1,
字段
2
FROM
表名
WHERE
过滤条件
SELECT
employee_id, last_name, job_id, department_id
FROM
employees
WHERE
department_id =
90
;
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/189150
推荐阅读
article
oracle
多表连接时消除重复
_
oracle
select
主表
distance
去重leftjo...
with A as (
select
aa.eqid,aa.usedate, aa.field,aa.track,m.na...
赞
踩
article
【
Python
百日进阶-
Web
开发-
Peewee
】
Day267
-
Peewee
API文档 - 查...
文章目录11.2.19 class NodeList11.2.20 class DQ11.2.21 class Tupl...
赞
踩
article
数据库
学习——
SQL
之
SELECT
查询
语句_
sql
select
...
SELECT
查询
语句相关内容_
sql
select
sql
select
...
赞
踩
article
SQL
<
e
m>s
e
l
e
ct
e
m> 语法_<
e
m>s
e
l
e
ct
e
m> <
e
m>sql
e
m> 返回
e
+...
SQL
里面最常用的命令是 SELECT 语句,用于检索数据。语法是: SELECT [ ALL | DISTINCT...
赞
踩
article
SELECT
语句详解_
select
语句...
建立三张表:department 、employee 、 project 1、基本的
SELECT
语句(1)
SELECT
...
赞
踩
article
Mysql
数据库
:
select
from
语句详解_
select
from
...
Mysql
数据库
:
select
from
语句详解_
select
from
select
from
...
赞
踩
article
SQL
Select(选择)
语法
_
sql
select
语法
...
SQL
SELECT
语法
SELECT
语法
用于从数据库中选择数据。 返回的数据存储在结果表中,称为结果集。基本
语法
:...
赞
踩
article
SQL
SELECT
语句
_sqlselect
语句
...
SQL
SELECT
语句
_sqlselect
语句
sqlselect
语句
...
赞
踩
article
(
SQL
学习随笔
3
)
SQL
语法——
SELECT
语句
_
sql
select
等于
...
SQL
常用查询语句,包含条件查询,运算符和函数,分组,表连接,窗口函数等
_
sql
select
等于
sql
select
...
赞
踩
article
My
SQL
基础篇2——
SQL
之
SELECT
使用
篇_
sql
select
...
此笔记来自b站尚硅谷课程,仅做复习
使用
。 一、
SQL
语言的规则与规范1、
SQL
大小写规范2、注释3、命名规则4、
SQL
分...
赞
踩
article
SQL
:
SELECT
命令_
sql
select
...
主要的
SQL
数据结构是表。表被用于存储和数据管理。表由表头和表体组成。表头定义每列的名字和类型。列名在表中必须唯一。...
赞
踩
article
SQL
查询
语句
select
详解_
select
语句
查找...
查询
select
: 1。单表
查询
2。多表
查询
3。嵌套
查询
分类 1)单表
查询
2)多表
查询
A.连接
查询
...
赞
踩
article
SQL
数据库
的
查询
操作
大全(
select
)_
sql
数据库
查询
...
目录:1、
数据库
的
连接、创建2、对字段
的
操作
:(alter table)3、对数据
的
操作
(插入、修改、删除)(inser...
赞
踩
article
SQL
之
SELECT
使用篇_
sql
select
...
这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。_
sql
sel...
赞
踩
article
SQL
select
语句
_
select
查表分行...
二、查看表相关的列查看所有列2.查看特定列三、注意
SQL
语言大小写不敏感,他不象JAVA、c等
SQL
可以写在一行或者多行...
赞
踩
article
数据库
03(
SQL
语句详解之
SELECT
)
_
sql
select
...
本文主要介绍了基本的
SELECT
查询,DESC命令的用途,以及系统环境变量的设置
_
sql
select
sql
selec...
赞
踩
article
sql
select
语句...
1. 查询单列查询是数据库中最常用的功能。在 SQL 数据库中使用 SELECT 来实现选取数据的查询数据。结果存储在一...
赞
踩
article
MySQL
的
select
详细介绍
_
mysql
select
...
MySQL
查询数据
MySQL
数据库使用SQL SELECT语句来查询数据。你可以通过
mysql
> 命令提示窗口中在...
赞
踩
article
SQL
入门之第三讲——
SELECT
查询
语句
_
sql
:
select
...
SQL
的 基本语法就是增(insert)、删(delete)、改(update)、查(
select
)。1、
SELECT
语...
赞
踩
article
MYSQL
-
SELECT
语句超详解_
mysql
select
...
耶!_
mysql
select
mysql
select
目录 前言:
SELECT
语法 示例 单...
赞
踩
相关标签
oracle
消除重复
left join
python
数据库
sql
学习
join
cam
null
search
select
mysql
select from
sqlite