SQL基础——查询基础(上)

简介: SQL基础——查询基础(上)

查询基础

前言

系统学习SQL的笔记,用于记录学习过程。

整体思维导图



列的查询

从表中选取数据是需要使用SELECT语句,通过SELECT语句查询并选取出必要数据的过程称为匹配查询或查询(query)

语法2.1 基本的SELECT语句

 SELECT <列名>,
 …… FROM <表名>;

该SELECT语句包含SELECT和FROM两个子句(clause)。子句是SQL语句的组成要素,是以SELECT或者FROM等作为起始的短语。

SELECT子句中列举了希望从表中查询出的列的名称,而FROM子句则指出选择出数据的表的名称。


代码示例:从Product表中输出3列

 SELECT product_id, product_name, purchase_price  FROM Product;

执行结果


SELECT语句第一行的SELECT product_id, product_name, purchase_price就是SELECT子句。查询出的列的顺序可以任意指定。查询多列时,需要使用逗号进行分隔。查询结果中列的顺序和SELECT子句中的顺序相同。

查询出所有的列

想要查询出全部列是,可以使用代表所有列的星号(*)

语法2.2 查询全部的列

 SELECT *  FROM <表名>;

代码示例2.2 输出Product表中全部的列

 SELECT *  FROM Product;

执行结果


注意:星号(*)代表全部列的意思。但是,如果使用星号的话,就无法设定列的显示顺序了。这时就会按照CREATE TABLE语句的定义对列进行排序。

为列设置别名

SQL语句可以使用AS关键字为列设定别名。

代码示例2.3 为列设置别名

SELECT
    product_id AS id,
    product_name AS `name`,
    purchase_price AS price 
FROM
    Product;

执行结果

代码示例2.4 设置中文别名

SELECT
    product_id AS "商品编号",
    product_name AS "商品名称",
    purchase_price AS "进货单价" 
FROM
    Product;

通过执行结果就可以知道相对于英文别名来说,会更好理解与操作。

执行结果


注意:设定汉语别名时需要使用双引号(")括起来。

常数的查询

SELECT子句不仅可以书写列名,还可以书写常数。

代码示例2.5 查询常数

SELECT
    '商品' AS string,
    38 AS number,
    '2009-02-24' AS date,
    product_id,
    product_name 
FROM
    Product;

执行结果



从结果中删除重复行

想要删除重复行时,可以通过在SELECT子句中使用DISTINCT来实现

代码示例2.6 使用DISTINCT删除product_type列中重复的数据

 SELECT DISTINCT product_type  FROM Product;

执行结果


注意:在SELECT语句中使用DISTINCT可以删除重复行。

在使用DISTINCT时,NULL也被视为一类数据。NULL存在于多行中时,也会被合并为一条NULL数据。

代码示例2.7 在多列之前使用DISTINCT

SELECT DISTINCT
    product_type,
    regist_date 
FROM
    Product;

执行结果


注意:DISTINCT关键字只能用在第一个列名之前,因此,请大家注意不能写成regist_date, DISTINCT product_type。

根据WHERE语句来选择记录

SELECT语句通过WHERE子句来指定查询数据的条件。

语法示例2.3 SELECT语句中的WHERE子句

SELECT
    <列名>,
    …… 
FROM
    <表名> 
WHERE
    <条件表达式>;

代码示例2.8 用来选取product_type列为’衣服’的记录的SELECT语句

SELECT
    product_name,
    product_type 
FROM
    Product 
WHERE
    product_type = '衣服';

执行结果


通过WHERE子句查询出符合指定条件的记录,然后再选取出SELECT语句指定的列。注意:SQL中子句的书写顺序是固定的,不能随意更改。WHERE子句必须紧跟在FROM子句之后,书写顺序发生改变的话会造成执行错误。

目录
相关文章
|
12天前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
74 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
19天前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
33 8
|
25天前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
44 4
|
28天前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
1月前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
103 10
|
1月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 数据库 开发者
功能发布-自定义SQL查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
|
2月前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
2月前
|
SQL Java 数据库连接
如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
【10月更文挑战第6天】在代码与逻辑交织的世界中,我从一名数据库新手出发,通过不断探索与实践,最终成为熟练掌握JDBC的开发者。这段旅程充满挑战与惊喜,从建立数据库连接到执行SQL语句,再到理解事务管理和批处理等高级功能,每一步都让我对JDBC有了更深的认识。示例代码展示了如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
112 5
|
2月前
|
SQL 数据挖掘 数据库
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言