데이터 베이스 MySQL 튜토리얼 第四章 数据查询(一)

第四章 数据查询(一)

Jun 07, 2016 pm 05:44 PM
데이터 쿼리 제4장

4.1 T-SQL 查询基础 4.1.1 查询和记录集 在讲解查询之前,有必要说明一下查询的机制和查询的结果。 查询是针对表中已经存在的数据行而言的,可以简单地理解为筛选,其过程如图。 学员编号学员姓名地址所在班级 001张三1湖南长沙S201 002李四1湖北宜昌S203 00

4.1 T-SQL 查询基础

4.1.1 查询和记录集

  在讲解查询之前,有必要说明一下查询的机制和查询的结果。

  查询是针对表中已经存在的数据行而言的,可以简单地理解为“筛选”,其过程如图。

学员编号 学员姓名 地址 所在班级 ···

001 张三1 湖南长沙 S201  

002 李四1 湖北宜昌 S203  

003 赵五1 甘肃天水 S202  

004 王六1 山东菏泽 S204  

005 张三2 台湾新竹 S205  

006 李四2 香港九龙 S206  

007 赵五2 北京顺义 S207  

008 王六2 北京朝阳 S208  

009 张三3 四川绵阳 S209  

010 李四3 陕西临潼 S210  

011 赵武3 新疆噶什 S211  

  查询结果如图

004 王六1 山东菏泽 S204  

005 张三2 台湾新竹 S205  

006 李四2 香港九龙 S206  

007 赵五2 北京顺义 S207  

  数据表在接受查询请求的时候,可以简单地理解为它将逐行选取,判断是否符合查询的条件。如果符合就提取出来,然后把所有的被选择的行组织在一起,形成另外一个类似于表的结构,这便是查询的结果,通常叫做记录集(RecordSet)。

  由于记录集的结构实际上和表的结构是相同的,都是由多行组成的,因此,在记录集上依然可以进行再次查询。

4.1.2 使用 Select 语句进行查询

  查询使用Select语句,最简单的查询语句的格式可以表示为:

  Select From [Where ] [Order by [ASC 或 DESC]]

  其中,Where及条件是可选的,如果不限制,则查询返回所有行的数据项。

  Order By 是用来排序的,数据表中的记录是无序的,并不按照一定的次序存储,例如要按照学员的考试成绩排序以看到高分的情况,则需要按照分数列的值进行排序。

  查询语句一般都在SQL Server Management Studio 的查询窗口中进行调试和运行,以下分别举例说明最基本的查询的不同情况。

  1. 查询所有的数据行和列

    把表中的所有行和列都列举出来比较简单,这时候需要使用“*”通配符来表示所有的列:

    Select * from Students

  2. 查询部分行列---条件查询

    查询部分列需要例举不同的列名,而查询部分行需要使用Where子句进行条件限制,例如:

    Select Scode, Sname, Saddress From Students where Saddress = '河北'

    以上的查询语句,香港虚拟主机,将只查询地址为“河北”的学员,并且只显示编号、姓名和地址列。

    同理,以下的查询语句,则只要不是河北的学员都显示出来。

    Select Scode, Sname, Saddress From Students where Saddress '河北'

  3. 在查询中使用列名

    AS 子句可以用来改变结果集列的名称,也可以为组合或者计算出的列指定名称,还有一种情况是让标题列的信息更为易懂,例如把Scode列名查询后显示为“学员编号”。

    在T-SQL中重新命名列名可以使用AS子句,例如:

    Select Scode as 学员编号, Sname as 学员姓名,服务器空间, Saddress as 学员地址 From Students Where Saddress '河北'

    还有一种情况是使用计算、合并得到新列的命名,例如,在查询NorthWind数据库的Employees表中的数据时,需要把FirstName和LastName字段合并成一个叫做“姓名”的字段,可以执行以下查询语句:

    Select FirstName + '.' + LastName AS '姓名' From Employees

    重新命名列名还有一种方法,就是采用“=”来命名,例如:

    Select '姓名' = FirstName + '.' + LastName From Employees

  4. 查询空行

    在SQL语句中采用“Is Null”或者“Is Not Null”来判断是否为空行,因此,如果要查询学员信息表中没有填写E-mail 信息的学员,可以使用以下查询语句:

    Select Sname From Students Where SEmail Is Null

  5. 在查询中使用常量列

    有时候,需要将一些常量的默认信息添加到查询输出中,以方便统计或计算,例如查询学员信息的时候,学校名称统一都是“河北”,查询输出的语句为:

    Select 姓名=SName, 地址=SAddress, '河北' AS 学校名称 From Students

    查询输出多了一行"学校名称",该列的所有的数据都是“河北”

  6. 查询返回限制的行数

    一些查询需要返回限制的行数,例如在测试的时候,如果数据库中有上万条记录,而只要检查前面10行数据是否有效就可以了,没有必要查询输出全部的数据,以提高查询速度,这时候就要用到限制返回行数的查询。

    在T-SQL中,限制行数使用Top关键字来约束,例如要查询返回5位女生的姓名和地址信息。

    Select top 5 Sname, Saddress From Students Where Sex = 0

    还有一种情况是需要从表中按一定的百分比提取记录,这时候还需要用到Percent关键字来限制,例如要提取20%的女生数据。

    Select top 20 Percent Sname, Saddress from Students Where Sex = 0

4.2 查询排序

  如果需要按照一定的顺序排列查询语句选中的行,则需要使用Order by子句,并且排序可以是升序(Asc)或者降序(Desc)。如果不指定Asc或者Desc,记录集按Asc升序排列。

  上面讲述过的SQL语句,都可以在其后面再加上Order By来进行排序。

  例如,查询学员成绩的时候,如果把所有成绩都降低10%后加5分,美国空间,再按照及格成绩的高低来进行排序,SQL语句如下:

  Select StudentID as 学员编号, (Score * 0.9 + 5) as 综合成绩 From Score Where (Score * 0.9 + 5) Order by Score

  以下是查询Pubs数据库中的作者表和雇员表,然后合并查到的所有姓名信息,并按照姓名降序排列。

  Select Au_Lname + '.' + Au_fName AS Emp From Authors Union

  Select fName + '.' + LName as Emp From Employee  Order by Emp Desc

  还可以按照多个字段进行排序。例如要在学员成绩的基础上,再按照课程ID进行排序的语句如下:

  Select StudentID As 学员编号, Score As 成绩 From Score Where Score > 60 Order by Score, CourseID

4.3 在查询中使用函数

  于Java语言的包类似,SQL Server 也提供了一些内部函数,不同类型的函数可以和SQL Server的Select 语句联合使用,也可以于 Update 和 Insert 一起使用。

  以下把函数分为4累,分别是字符串函数、日期函数、数字函数、系统函数。

4.3.1 字符串函数

  字符串函数用于控制返回给用户的字符串,这些功能仅用于字符型数据。

函数名 描述 举例

CharIndex 用来寻找一个指定的字符串在另一个字符串中的起始位置 Select Charindex('Accp', 'My  Accp Course', 1)
返回:4

Len 返回传递给它的字符串长度

Select Len('SQL Server 课程')
返回:12

Upper 把传递给它的字符串转换为大写

Select Upper('sql server 课程')
返回:SQL SERVER 课程

Ltrim 清除字符左边的空格

Select Ltrim(' 周杰伦 ')返回:周杰伦 (后面的空格保留)

Rtrim 清除字符右边的空格

Select Rtrim(' 周杰伦 ')
返回:周杰伦 (前面的空格保留)

Right 从字符串右边返回指定数目的字符 Select Right('买买提·图尔松', 3)
返回:图尔松

Replace 替换一个字符串中的字符 Select Replace ('莫勒克切。杨克',‘克’,'兰')
返回:'莫勒克切。杨兰

Stuff 在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串 Select Stuff(‘ABCDEFG’,2,3,'我的音乐 我的世界')
返回:A我的新月我的世界EFG

4.3.2 日期函数

  日期函数用于操作日期值,我们不能直接对日期运用数学函数。例如,如果执行一个诸如“当前日期+1”的语句,SQL Server无法理解要增加的是一日、一月还是一年。

  日期函数帮助提取日期值中的日、月以及年,以便分别操作它们。

函数名 描述 举例

GetDate 取得当前的系统日期 Select GetDate()
返回:今天的日期

DateAdd 将指定的数值添加到指定的日期部分后的日期 Select DateAdd(mm,4'01/01/99')
返回:以当前的日期格式返回05/01/99

DateDiff 两个日期之间的指定日期部分的区别 Select DateDiff(mm, '01/01/99','05/01/99')
返回:4

DateName 日期中指定日期部分的字符串形式 Select DateName(dw, '01/01/2000')
返回:Saturday

DatePart 日期中指定日期部分的整数形式 Select DatePart(day, '01/05/2000')
返回:15

4.3.3 数学函数

  数学函数用于对数值进行代数运算。

函数名 描述 举例

Abs 取数值表达式的绝对值 Select ABS(-43)
返回:43

Ceiling 取大于或等于指定数值,表达式的最小整数 Select Ceiling(43.5)
返回:44

Floor 取小于或等于指定表达式的最大整数 Select Floor(43.5)
返回:43

Power 取数值表达式的幂值 Select Power(5,2)
返回:25

Round 将数值表达式四舍五入为指定精度 Select Round(43.543,1)
返回43.5

Sign 对于正数返回+1,对于负数返回-1,对于0则返回0 Select Sign(-43)
返回:-1

Sqrt 取浮点表达式的平方根 Select Sqrt(9)
返回:3

4.3.4 系统函数

  系统函数用来获取有关SQL Server中对象和设置的系统信息。

函数名 描述 举例

Convert 用来转变数据类型 Select Convert(Varchar(5),12345)
返回:字符串12345

Current_User 返回当前用户的名字 Select Current_User
返回:你登录的用户名

DataLength 返回用于指定表达式的字节数 Select Datalength('中国A联盟')
返回:5

Host_Name 返回当前用户所登录的计算机名字 Select Host_Name()
返回:你所登录的计算机的名字

System_User 返回当前所登录的用户名称 Select System_User
返回:你当前所登录的用户名

User_Name 从给定的用户ID返回用户名 Select User_Name(1)
返回:从任意数据库中返回“dbo”

  上面所有这些函数,可以在T-SQL中混合使用,得到符合特殊要求的查询输出。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Yii 프레임워크의 데이터 쿼리: 데이터에 효율적으로 액세스 Yii 프레임워크의 데이터 쿼리: 데이터에 효율적으로 액세스 Jun 21, 2023 am 11:22 AM

Yii 프레임워크는 웹 애플리케이션 개발 프로세스를 단순화하기 위한 다양한 도구와 구성 요소를 제공하는 오픈 소스 PHP 웹 애플리케이션 프레임워크입니다. 데이터 쿼리는 중요한 구성 요소 중 하나입니다. Yii 프레임워크에서는 SQL과 유사한 구문을 사용하여 데이터베이스에 액세스하여 데이터를 효율적으로 쿼리하고 조작할 수 있습니다. Yii 프레임워크의 쿼리 빌더에는 주로 ActiveRecord 쿼리, QueryBuilder 쿼리, 명령 쿼리 및 원본 SQL 쿼리 유형이 포함됩니다.

CakePHP에서 데이터를 쿼리하고 업데이트하는 방법은 무엇입니까? CakePHP에서 데이터를 쿼리하고 업데이트하는 방법은 무엇입니까? Jun 03, 2023 pm 02:11 PM

CakePHP는 데이터베이스 쿼리 및 업데이트를 매우 쉽게 만들어주는 편리한 ORM(객체 관계형 매핑) 기능을 제공하는 인기 있는 PHP 프레임워크입니다. 이번 글에서는 CakePHP에서 데이터를 쿼리하고 업데이트하는 방법을 소개합니다. 간단한 쿼리 및 업데이트부터 시작하여 조건 및 관련 모델을 사용하여 데이터를 더 복잡하게 쿼리하고 업데이트하는 방법을 살펴보겠습니다. 기본 쿼리 먼저 가장 간단한 쿼리를 만드는 방법을 살펴보겠습니다. "Users"라는 데이터 테이블이 있고 다음을 원한다고 가정해 보겠습니다.

MySQL 및 Python: 데이터 쿼리 기능 구현 방법 MySQL 및 Python: 데이터 쿼리 기능 구현 방법 Jul 31, 2023 pm 01:34 PM

MySQL 및 Python: 데이터 쿼리 기능 구현 방법 최근 데이터의 급격한 증가로 인해 데이터 쿼리 및 분석이 다양한 분야에서 중요한 작업으로 자리잡았습니다. 널리 사용되는 관계형 데이터베이스 관리 시스템인 MySQL은 강력한 프로그래밍 언어인 Python과 결합되어 빠르고 유연한 데이터 쿼리 기능을 제공할 수 있습니다. 이 기사에서는 MySQL과 Python을 사용하여 데이터 쿼리 기능을 구현하는 방법을 소개하고 코드 예제를 제공합니다. 먼저 MySQL과 Python을 설치하고 구성해야 합니다.

PHP를 사용하여 데이터 기반 및 동적 콘텐츠 생성을 구현하는 방법 PHP를 사용하여 데이터 기반 및 동적 콘텐츠 생성을 구현하는 방법 Sep 05, 2023 am 10:46 AM

PHP를 사용하여 데이터 기반 및 동적 콘텐츠 생성 기능을 구현하는 방법 웹사이트 개발 시 데이터를 기반으로 콘텐츠를 동적으로 생성해야 하는 경우가 많습니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 데이터 기반의 동적 콘텐츠 생성을 달성하기 위한 풍부한 기능과 도구를 제공합니다. 이 기사에서는 PHP를 사용하여 이러한 기능을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 데이터 기반 데이터 기반이란 동적 표시 및 상호 작용을 달성하기 위해 데이터베이스 또는 기타 데이터 소스의 데이터를 기반으로 콘텐츠를 생성하는 것을 의미합니다. PHP가 제공하는

MySQL과 Ruby를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법 MySQL과 Ruby를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법 Sep 21, 2023 pm 04:36 PM

MySQL과 Ruby를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법 오늘날의 빅데이터 시대에 데이터 분석은 많은 분야에서 없어서는 안 될 부분이 되었습니다. 데이터 분석을 수행할 때 가장 일반적으로 수행되는 작업은 데이터 쿼리입니다. 이 기사에서는 MySQL 및 Ruby 프로그래밍 언어를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 MySQL 및 Ruby 개발 환경을 설치해야 합니다. MySQL은 오픈 소스 관계형 데이터베이스입니다.

MySQL과 TiDB의 데이터 쿼리 및 분석 성능 비교 MySQL과 TiDB의 데이터 쿼리 및 분석 성능 비교 Jul 13, 2023 pm 11:07 PM

MySQL과 TiDB의 데이터 쿼리 및 분석 기능 비교 데이터 양이 계속 증가하고 응용 시나리오가 복잡해짐에 따라 데이터 쿼리 및 분석 기능은 다양한 데이터 스토리지 시스템의 핵심 경쟁력 중 하나가 되었습니다. 관계형 데이터베이스의 대표주자 중 하나인 MySQL은 독립형 환경에서 널리 사용되어 왔습니다. 그러나 비즈니스 규모가 지속적으로 확장됨에 따라 MySQL은 대규모 데이터 및 동시성이 높은 쿼리를 처리하는 데 일정한 제한이 있습니다. TiDB는 이러한 문제를 해결하는 새로운 분산 데이터베이스 시스템입니다.

육천년의 악몽: 종이 웨딩드레스 4장 전략 가이드 육천년의 악몽: 종이 웨딩드레스 4장 전략 가이드 Jan 23, 2024 pm 02:39 PM

종이웨딩드레스 6편이 온라인에 공개되었습니다. 종이웨딩드레스 시리즈의 여섯 번째 이야기입니다. 오늘 편집자는 Taptap: 종이 웨딩드레스의 육천 가을 악몽 4장에 대한 Gu Li의 가이드를 소개합니다. 가이드 사진은 깔끔하고 간결하지만 일부 가이드 사진의 순서가 다소 어수선할 수 있으니 주의하시기 바랍니다. 페이퍼 웨딩드레스 6 가이드 4장 전문과 일러스트를 찾고 계시다면 한 번 살펴보시는 것도 좋을 것 같아요! 종이 웨딩드레스를 입은 육천개의 가을 악몽 4장 공략 책장에 있는 두 권의 책을 읽은 후 게임을 하고 향을 피워보세요. 처음 향에 불을 붙일 때는 그냥 꺼두세요. 두 번째로 먼저 주문하세요. 파괴된 후 두 번째와 세 번째를 동시에 클릭하여 모두 태워보세요.

Workerman에서 데이터 저장 및 쿼리를 위해 Oracle을 사용하는 방법 Workerman에서 데이터 저장 및 쿼리를 위해 Oracle을 사용하는 방법 Nov 07, 2023 am 09:23 AM

Workerman에서 데이터 저장 및 쿼리를 위해 Oracle을 사용하는 방법 요약: Workerman은 실시간 통신, 인스턴트 채팅 및 기타 인터넷 애플리케이션에 널리 사용되는 고성능 PHP 개발 프레임워크입니다. Oracle은 엔터프라이즈급 애플리케이션에서 널리 사용되는 강력한 관계형 데이터베이스입니다. 이 기사에서는 Workerman에서 데이터 저장 및 쿼리를 위해 Oracle을 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. Oracle 확장 설치 및 Oracle 데이터베이스 사용

See all articles