读书笔记--SQL必知必会02--检索数据
2023-09-14 09:00:40 时间
2.1 SELECT语句
SELECT语句的用途是从一个或多个表中检索信息。
关键字(keyword)
作为SQL组成部分的保留字。关键字不能作为表或列的名字。
2.2 检索单个列
多条SQL语句必须以分号(;)分隔。建议单条的SQL语句后加分号,虽然在某些DBMS不一定需要。
SQL语句不区分大小写。对SQL关键字使用大写,而对表名和列名区分大小写,是为了是语句更易于阅读和调试。
在处理SQL语句时,其中所用空格都被忽略。也就是说,一个SQL语句可以通过空格分开写在多行。
MariaDB [sqlbzbh]> SELECT prod_name
-> FROM Products;
+---------------------+
| prod_name |
+---------------------+
| Fish bean bag toy |
| Bird bean bag toy |
| Rabbit bean bag toy |
| 8 inch teddy bear |
| 12 inch teddy bear |
| 18 inch teddy bear |
| Raggedy Ann |
| King doll |
| Queen doll |
+---------------------+
9 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
2.3 检索多个列
在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。
MariaDB [sqlbzbh]> SELECT prod_id, prod_name, prod_price FROM Products;
+---------+---------------------+------------+
| prod_id | prod_name | prod_price |
+---------+---------------------+------------+
| BNBG01 | Fish bean bag toy | 3.49 |
| BNBG02 | Bird bean bag toy | 3.49 |
| BNBG03 | Rabbit bean bag toy | 3.49 |
| BR01 | 8 inch teddy bear | 5.99 |
| BR02 | 12 inch teddy bear | 8.99 |
| BR03 | 18 inch teddy bear | 11.99 |
| RGAN01 | Raggedy Ann | 4.99 |
| RYL01 | King doll | 9.49 |
| RYL02 | Queen doll | 9.49 |
+---------+---------------------+------------+
9 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
2.4 检索所有列
在实际列名位置使用星号*(通配符)可以检索所有的列。
除非确实需要表中的每一列,否则最好别使用通配符,因为检索不需要的列通常会降低检索和应用程序的性能。
MariaDB [sqlbzbh]> SELECT * FROM Products;
+---------+---------+---------------------+------------+-----------------------------------------------------------------------+
| prod_id | vend_id | prod_name | prod_price | prod_desc |
+---------+---------+---------------------+------------+-----------------------------------------------------------------------+
| BNBG01 | DLL01 | Fish bean bag toy | 3.49 | Fish bean bag toy, complete with bean bag worms with which to feed it |
| BNBG02 | DLL01 | Bird bean bag toy | 3.49 | Bird bean bag toy, eggs are not included |
| BNBG03 | DLL01 | Rabbit bean bag toy | 3.49 | Rabbit bean bag toy, comes with bean bag carrots |
| BR01 | BRS01 | 8 inch teddy bear | 5.99 | 8 inch teddy bear, comes with cap and jacket |
| BR02 | BRS01 | 12 inch teddy bear | 8.99 | 12 inch teddy bear, comes with cap and jacket |
| BR03 | BRS01 | 18 inch teddy bear | 11.99 | 18 inch teddy bear, comes with cap and jacket |
| RGAN01 | DLL01 | Raggedy Ann | 4.99 | 18 inch Raggedy Ann doll |
| RYL01 | FNG01 | King doll | 9.49 | 12 inch king doll with royal garments and crown |
| RYL02 | FNG01 | Queen doll | 9.49 | 12 inch queen doll with royal garments and crown |
+---------+---------+---------------------+------------+-----------------------------------------------------------------------+
9 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
2.5 检索不同的值
使用DISTINCT关键字可以指示数据库只返回不同的值。
如果使用DISTNCT关键字,必须直接放在列名的前面。
DISTINCT关键字作用于所有的列,所有列构成的唯一的行都会被检索出来。
MariaDB [sqlbzbh]> SELECT vend_id FROM Products;
+---------+
| vend_id |
+---------+
| BRS01 |
| BRS01 |
| BRS01 |
| DLL01 |
| DLL01 |
| DLL01 |
| DLL01 |
| FNG01 |
| FNG01 |
+---------+
9 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT DISTINCT vend_id FROM Products;
+---------+
| vend_id |
+---------+
| BRS01 |
| DLL01 |
| FNG01 |
+---------+
3 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT DISTINCT vend_id, prod_price FROM Products;
+---------+------------+
| vend_id | prod_price |
+---------+------------+
| DLL01 | 3.49 |
| BRS01 | 5.99 |
| BRS01 | 8.99 |
| BRS01 | 11.99 |
| DLL01 | 4.99 |
| FNG01 | 9.49 |
+---------+------------+
6 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
2.6 限制结果
在MySQL和MariaDB,使用LIMIT子句来限制最多返回多少行。
LIMIT指定返回的行数。LIMIT带的OFFSET指定从哪儿开始。
注意,第一个被检索的行是第0行,而不是第1行。
MySQL支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3, 4。
MariaDB [sqlbzbh]> SELECT prod_name FROM Products LIMIT 5;
+---------------------+
| prod_name |
+---------------------+
| Fish bean bag toy |
| Bird bean bag toy |
| Rabbit bean bag toy |
| 8 inch teddy bear |
| 12 inch teddy bear |
+---------------------+
5 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT prod_name FROM Products LIMIT 5 OFFSET 5;
+--------------------+
| prod_name |
+--------------------+
| 18 inch teddy bear |
| Raggedy Ann |
| King doll |
| Queen doll |
+--------------------+
4 rows in set (0.00 sec)
2.7 使用注释
注释使用--(两个连字符)嵌在行内。--之后的文本就是注释。
另外形式的注释(很少得到支持)
- # 单行注释
- 从/*开始,到*/结束,之间的任何内容都是注释
相关文章
- MSSQL(Sql Server)数据特殊类型知识汇总
- 【Mysql sql inject】【入门篇】SQLi-Labs使用 part 1【01-11】
- SQL语法集锦一:显示每个类别最新更新的数据
- oracle 常用SQL
- excel数据生成sql insert语句
- 读书笔记--SQL必知必会09--汇总数据
- 读书笔记--SQL必知必会04--过滤数据
- sql基础--怎样让查询出来的数据只返回多少行
- 大叔经验分享(1)在yarn上查看hive完整执行sql
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
- 读书笔记--SQL必知必会16--更新和删除数据
- 读书笔记--SQL必知必会03--排序检索数据
- Sybase Anywhere 11 元数据[SQL Schema]
- Sql语句把一个表的某几列的数据存到另一个表里的方法
- 使用 OPEN SQL 语句读取数据库表数据的一个补充练习
- 使用OPEN SQL读取SAP CRM campaign的数据
- 获取sql server与年、季度、月、周首尾有关的时间函数
- Sql Server数据库数据导入到SQLite数据库中
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- Atitit if else 选择决策流程ast对比 sql java 表达式类型 binaryExpression hase left and rit expr 目录 1.1. Sql1
- 已解决SQL错误(15048):数据兼容级别有效值为100、110或120。
- SQL优化老出错,那是你没弄明白MySQL解释计划
- Node.js:insert-sql帮助开发者生成SQL插入语句
- 关于 Head First SQL 中文版
- 017-Hadoop Hive sql语法详解7-去重排序、数据倾斜
- UNNEST 就是将sql 里面的数据展开
- C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]
- 【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表
- sql中时间的比较方法
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
- SQL每日一练——第12天:高级数据过滤