0

0

MySQL心得4--1--数据库查询1_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:42:08

|

1504人浏览过

|

来源于php中文网

原创

bitsCN.com  1.  选择(Selection)作用于行! 选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。 选择运算的记号为sF(R)。其中s是选择运算符,下标F是一个条件表达式,R是被操作的表。 若要在学生情况表中找出学生表中性别为女的行形成一个新表,则运算式为:sF(学生)F:性别=“女”,该选择运算的结果如下:   学 号 姓 名 专 业 名 性 别 出 生 日 期 总 学 分 备 注 081103 王燕 计算机 女 1989-10-06 50 2.投影(projection)作用于列! 投影也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为:?A(R)。其中A是属性名(即列名)表,R是表名。 若在学生情况表中对学号、姓名和总学分投影,运算式为:?学号,姓名,总学分(学生)该运算得到如下: 学    号 姓    名 总  学  分 081101 王林 50 081102 程明 50 081103 王燕 50 3.连接(join) 连接是把两个表中的行按照给定的条件进行拼接而形成新表,记为:RS。其中,R、S是被操作的表,F是条件。 两个表连接最常用的条件是两个表的某些列值相等,这样的连接称为等值连接。 数据库应用中最常用的是“自然连接”。进行自然连接运算要求两个表有共同属性(列),自然连接运算的结果表是在参与操作两个表的共同属性上进行等值连接后再去除重复的属性后所得的新表。自然连接运算记为:RS,其中R和S是参与运算的两个表。 4.选择列 基本查询(单表查询):select  列1,列2,。。。from 表名 1)看所有字段  :select * fromproduct; 2)部分字段(选择指定的列): select 字段名1,字段名2 from product; 使用SELECT语句选择一个表中的某些列,各列名之间要以逗号分隔 3)给列加列标题 当希望查询结果中的某些列或所有列显示时且使用自己选择的列标题时,可以在列名之后使用AS子句来更改查询结果的列别名。 字段名 [as] 列标题  如果列标题中有空格,要使用单引号,中括号内的内容都可以省略。 select pnumber as 产品编号,pname as 产品名称 from product;   说明:不允许在where子句中使用列别名。这是因为,执行where代码时,可能尚未确定列值。例如,下述查询是非法的: SELECT 性别 ASSEX FROM XS WHERE SEX=0; 4)替换查询结果中的数据 在对表进行查询时,有时对所查询的某些列希望得到的是一种概念而不是具体的数据。例如查询XS表的总学分,所希望知道的是学习的总体情况,这时,就可以用等级来替换总学分的具体数字。 格式为: case     when 条件1 then 表达式1     when 条件2 then 表达式2     ……       else 表达式 end case: 替换查询中的结果(case是一行,所以中间打回车不用分号或逗号)  例1: select 学号,姓名,case when 性别=1then '男' when 性别=0then '女' end as 性别 from xs;   例2:    select学号, 姓名,            case            when 总学分 isnull then '尚未选课'            when 总学分 =50 and 总学分52 then '优秀'             when总学分 >=50  then '合格'             else '不及格' 即:先写大的后写小的)            end    as等级            from XS   5)计算列   使用select对列进行查询时,在结果中可以输出对列值计算后的值,即select字句可使用表达式作为结果。   计算列值使用算术运算符:+、-、*、/和%(取余)后面细讲。 例1:select 学号,姓名,总学分+5 from xs;(字段总学分+5会显示在列标题处) 例2:select 学号,课程号, 成绩*1.20 as 成绩 120 from XS_KC 5.   使用数据库和表的主要目的是存储数据以便在需要时进行检索、统计或组织输出,通过SQL语句的查询可以从表或视图中迅速方便地检索数据。SQL的SELECT语句可以实现对表的选择、投影及连接操作。 select语句(是SQL的核心)可以从一个或多个表中选取特定的行和列,结果通常是生成一个临时表(即不会改变原来的表结构)。在执行过程中系统根据用户的标准从数据库中选出匹配的行和列,并将结果放到临时的表中,这就是实现选择和投影运算的一个形式。 6. 选择行   where 条件 where子句会根据条件对from子句的中间结果中的行一行一行地进行判断,当条件为true的时候,一行就被包含到where子句的中间结果中。 判定运算包括比较运算、模式匹配、范围比较、空值比较和子查询。 1). 比较运算 比较运算符用于比较两个表达式值,MySQL支持的比较运算符有:=(等于)、(大于)、>=(大于等于)、(相等或都等于空)、(不等于)、!=(不等于)。 比较运算的语法格式为:     expression { = | | >= | | | != } expression 其中expression是除TEXT和BLOB外类型的表达式。 当两个表达式值均不为空值(NULL)时,除了“”运算符,其他比较运算返回逻辑值TRUE(真)或FALSE(假);而当两个表达式值中有一个为空值或都为空值时,将返回unknown。 MySQL有一个特殊的等于运算符“”,当两个表达式彼此相等或都等于空值时,它的值为TRUE,其中有一个空值或都是非空值但不相等,这个条件就是FALSE。没有UNKNOWN的情况。 例:查询XS表中备注为空的同学的情况。 SELECT 姓名,学号,出生日期,总学分     FROM XS     WHERE 备注NULL; 2).逻辑运算符:  and  or  not   例1:  计算机系女生记录   表中女用0表示 select 姓名,专业名,性别 from xs where 专业名='计算机' and 性别=0 例2:  查看不是1990年出生的学生的姓名; select 姓名 fromxs where 出生日期'1990-12-31'; 或: select 姓名 fromxs where not(出生日期>='1990-01-01'and 出生日期:]] 匹配一个单词的开始和结束 {n} 匹配括号前的内容出现n次的序列 [[: :] 匹配方括号里出现的字符中的任意一个字符 () 匹配括号里的内容 10. where子句必须紧跟from子句之后,在where子句中,使用一个条件从from子句的中间结果中选取行。其基本格式为: where where_definition 其中,where_definition为查询条件。语法格式为: where_definition:    

    | <pre class="brush:php;toolbar:false;" cdicate>{ and | or } <pre class="brush:php;toolbar:false;" cdicate>    | (where_definition)    | not where_definition 其中,predicate为判定运算,结果为true、false或unknown。 <pre class="brush:php;toolbar:false;" dicate>:   expression { = |  | >= |  |  | !=} expression       /*比较运算*/  | match_expression [ NOT ] like match_expression [ ESCAPE'escape_character ' ]                                                                                    /*like运算符*/  | match_expression [ NOT ][ regexp |rlike] match_expression                                                                /*regexp运算符*/  | expression [ not ] between expression and expression            /*指定范围*/  | expression is [ not ] null                                                 /*是否空值判断*/  | expression [ not] in ( subquery | expression [,…n] )                 /*in子句*/  | expression { = |  | >= |  |  | !=} {all | some | any} (subquery )                                                                                      /*比较子查询*/  | exist ( subquery )                                                        /*exist子查询*/ 说明: In关键字既可以指定范围,也可以表示子查询。 在SQL中,返回逻辑值(TRUE或FALSE)的运算符或关键字都可称为谓词。   作者 tianyazaiheruan						bitsCN.com
    

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

169

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

246

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

34

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 7.1万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号