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

一.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
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

禅工作室 13.0.1

禅工作室 13.0.1

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

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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