首页 数据库 mysql教程 我们一起畅谈过的数据库基础_MySQL

我们一起畅谈过的数据库基础_MySQL

May 30, 2016 pm 05:09 PM
基础 数据库

一.T-SQL查询基础

 

查询机制简介:

 

数据表在接受查询请求的时候,可以简单理解为”它将逐行判断”,判断条件是否符合查询条件,如果符合查询条件就提取出来,然后把所有被选中的行组织在一起,形成另外一个类似于标的结构,构成查询的结果,通常叫做记录集.由于记录集的结构实际上和表的结构类似,都是由行组成的,因此在记录集上依然可以进行再次查询.

 

二.使用select语句进行查询

 

语法:

 

Select  列名 from 表名

 

在使用select 查询是还可分为多种情况

 

注意:在以下的分析中都将采用 Eg:查询student表中的所有列Myschool数据库为例,Myschool数据库中包含了student(学生表),result(成绩表),subject(科目表),grade(年级表)

 

1.查询所有数据行和列

 

Select * from student

 

2.查询部分行和列

 

Eg:只查询student表中studentno(学生编号)为8888的Phone(学生电话)和Address(学生地址)两列.

 

分析:此时应使用where条件进行限制,它限制的条件为学生编号只能为8888的.

 

Select Phone,Address 

 

from student

 

Where studentno=8888

 

3在查询中使用列的别名

 

AS子句可以用来改变结果集中列的名称,也可以为组合或者计算出的列指定名称,还有一种情况是让标题列的信息更易懂

 

使用别名的方式有三种:

 

(方案一)

 

Select Phone as 学生电话, Address as 学生地址

 

From student

 

Where sthdentno=8888

 

(方案二):将Phone和Address合并成一列,

 

假如这列叫做”学生信息”

 

Select  Phone+Address as 学生信息

 

From student

 

(方案三):可以利用”=”的方式进行重新命名列名

 

Select 学生信息=Phone+Address

 

From student

 

4.查询空值

 

 在SQL语句中null代表不知道的意思.

 

在SQL语句中采用”is null”或者”is not null”来判断是否为空.

 

Eg如果要查询student表中没有填写email信息的学生.

 

Select studentname from student

 

Where email is null

 

5.在查询中使用常量列

 

有时候需要将一些常量的默认信息添加到查询输出中,以方便统计或计算.

 

Eg:查询学生信息的时候,学校名称统一都是”北京XX”,

 

Select 姓名=studentname,地址=address, ‘北京’as 学校名称

 

From student

 

查询的时候输出多了一列”学校名称”,该名称的所有数据都是”北京XX”

 

6.查询返回限制的行数

 

场景:

 

例如,在测试的时候,如果数据库中有上千万条记录,而现在只需要查询前面的前10行数据是否有效就可以了,没有必要查询输出全部的数据,以提高查询速度,

 

在T-SQL中,限制行数使用TOP关键字来约束,

 

Eg要查询返回众多学生记录中前五位女生的姓名和地址信息

 

Select top 5 studentname, address

 

From student

 

Where ssex=0   (ssex=0代表性别为女)

 

还有一种情况是需要从表中按一定的百分比提取记录,这时候需要用到percent关键字来限制

 

Eg:提取20%的女生数据

 

Select  top 20 percent studentname,address

 

Ftom student

 

Where ssex=0

 

三 查询排序

 

如果需要按照一定的顺序排列查询语句选中的行,则需要使用order by子句,并且排序可以是升序(asc)或降序(desc),如果不指定asc或desc,结果默认按asc升序排序.

 

Eg成绩表中的学生成绩按降序排列

 

Select studentno as 学生编号,studentresult as学生成绩 from result

 

Order by studentresult desc

 

四在查询中使用函数

 

1字符串函数

 

字符串函数用于对字符串数据进行处理,并返回一个字符串或数字

 

部分常用的字符串函数

 

charindex(Str1,str2,(检索起始位置)):用来寻找一个指定的字符串在另一个字符串中的起始位置

--Str1要查询的字符串

--Str2被检索的源字符串

--从Str2的第几个位置开始检索

--如果在Str2中没有找到Str1,则返回0

 

eg:

 

select charindex(‘hyj’,‘Myname is hyj’,10)

 

返回:11

len('字符串'):返回传递给它的字符串长度

 

select LEN(‘hello‘)

 

--返回:5

 

 

upper('字符串')将字符串内出现的英文全部转换成大写

 

select upper('hello')

--返回:HELLOW

 

 

LTrim('字符串'):清除字符左边的空格

 

select rtrim('     hello')

--返回:hello

rtrim('字符串'):清除右边的空格

 

select ('hello        ')

 

--返回:hello

 

Left(‘字符串‘,返回的字符串长度):从字符串左边返回指定数目的字符

 

select  left ('hello',3)

--返回hel

 

Right(‘字符串‘,返回的字符串长度):从字符串右边返回指定数目的字符

 

select  right ('hello',3)

返回:llo

 

Replace(源字符串Str1,被替换的字符串str2,要替换的字符串Str3):替换一个字符串中的字符

 

select replace('hello','h','H')

--返回:Hello

Stuff(‘字符串‘,起始位置,被删除的字符串的长度,‘要插入的字符串‘):在一个字符串中,从指定位置开始删除指定长度的字符串,并在该位置插入一个新的字符串.

 

select stuff('hello',2,4,'yj')

--返回:hyj

SubString(‘字符串‘,开始截取的位置,截取长度):在一个字符串中截取指定长度的字符串

 

select substring('helloworld',5,3)

--返回:owo

 

日期函数

 

GetDate():得到当前的系统日期

 

select GETDATE()

 

DateADD(按年或月或日添加,增量,时间):将指定的数值添加到指定的日期部分后的日期

 

select dateadd(mm,4,'01/01/2015')

--返回:05/01/2015

DateDIFF(按年或月或日求差,小时间,大事件):两个日期之间指定日期部分的间隔

 

select DATEDIFF(mm,‘01/01/2015‘,'05/01/2015')

返回:1

DateName(日期部分参数,日期):日期中指定日期部分的字符串形式(可以返回年,月,日,季度,月份,年的第几天,年的第几周,周几,小时,分钟,秒,毫秒)

 

select datename(dw,'01/01/2015')

--返回:星期四

 

DatePart(日期参数,日期):日期中指定日期部分的整数形式

 

select datepart(day,'04/15/2015')

--返回:15

 

其中想要返回某一个时间的年或月或日的整数形式可以直接用 year/month/day(日期的方式),如:year(getdate())

 

year/month/day(日期)只能返回年或月或日,而datepart(日期参数,日期)能返回更多的值

 

部分常用的数学函数

 

Rand():返回从0到1之间的随机float值

 

select RAND()

随机返回1000-9999的整数值

 

select CONVERT(int,rand()*8999+1000)

Ceiling():天花板,向上:向上取整

 

select ceiling(1.000001)

--返回:2

floor():地板,向下:向下取整

 

select FLOOR(1.999999)

--返回:1

power():取数值表达式的幂值

 

select POWER(5,2)

--返回:25

round():将数值表达式四舍五入为指定精度

 

select ROUND(43.543,1)

 

--返回:43.500

SIGN():括号里是正数返回+1,是负数返回-1,是0返回0

 

select SIGN(-43)

 

--返回:-1

 

Sqrt():取平方根

 

select sqrt(9)

 

--返回:3

 

部分常用的系统函数

 

convert(数值类型(长度),浮点数值)

 

select CONVERT(nvarchar(5),12345)

 

--返回:12345

current_user:返回你登陆的用户名

 

select current_user

--返回:你登陆的用户名

datalength(‘字符串‘):返回用于指定表达式所占内存的的字节数

 

select DATALENGTH('英雄联盟')

 

--返回:4

host_name():返回当前用户所登陆的计算机名字

 

select HOST_NAME()

 

--返回:你所登陆的计算机名

system_user:返回当前datebase所登陆的用户名称

 

select SYSTEM_USER

 

--返回:你当前所登陆的用户名

user_name:从给定的用户ID返回用户名

 

select USER_NAME()

 

--返回:从任意数据库中返回"dbo"

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1254
29
C# 教程
1228
24
iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

Hibernate 如何实现多态映射? Hibernate 如何实现多态映射? Apr 17, 2024 pm 12:09 PM

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

如何在 Golang 中使用数据库回调函数? 如何在 Golang 中使用数据库回调函数? Jun 03, 2024 pm 02:20 PM

在Golang中使用数据库回调函数可以实现:在指定数据库操作完成后执行自定义代码。通过单独的函数添加自定义行为,无需编写额外代码。回调函数可用于插入、更新、删除和查询操作。必须使用sql.Exec、sql.QueryRow或sql.Query函数才能使用回调函数。

如何用 Golang 连接远程数据库? 如何用 Golang 连接远程数据库? Jun 01, 2024 pm 08:31 PM

通过Go标准库database/sql包,可以连接到MySQL、PostgreSQL或SQLite等远程数据库:创建包含数据库连接信息的连接字符串。使用sql.Open()函数打开数据库连接。执行SQL查询和插入操作等数据库操作。使用defer关闭数据库连接以释放资源。

如何在 Golang 中将 JSON 数据保存到数据库中? 如何在 Golang 中将 JSON 数据保存到数据库中? Jun 06, 2024 am 11:24 AM

可以通过使用gjson库或json.Unmarshal函数将JSON数据保存到MySQL数据库中。gjson库提供了方便的方法来解析JSON字段,而json.Unmarshal函数需要一个目标类型指针来解组JSON数据。这两种方法都需要准备SQL语句和执行插入操作来将数据持久化到数据库中。

如何使用C++处理数据库连接和操作? 如何使用C++处理数据库连接和操作? Jun 01, 2024 pm 07:24 PM

在C++中使用DataAccessObjects(DAO)库连接和操作数据库,包括建立数据库连接、执行SQL查询、插入新记录和更新现有记录。具体步骤为:1.包含必要的库语句;2.打开数据库文件;3.创建Recordset对象执行SQL查询或操作数据;4.遍历结果或按照具体需求更新记录。

See all articles