当前位置:首页 » 编程语言 » sql查
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查

发布时间: 2022-02-14 03:27:47

‘壹’ 如何用sql查询记录

1. 首先需要登录
2. 打开Sql Server
3. 先展开需要查询的表,了解其中的字段名后点击新建查询
4. 查询中输入如下命令:
5. select top 20 UserID,UserName
from ReportServer$SQLSERVER.dbo.Users
7. 即可查看所有符合条件的记录。
8. 注:其中?top 20 为最先的20条。可以去掉后显示所有。
9. UserID,UserName 为指定字段名,如替换为 * 则显示所有字段。
10. ReportServer$SQLSERVER.dbo.Users,分别为库名,表名。

‘贰’ sql查询(

具体要看是什么数据库了,以sqlserver为例,其他的话,另外说明吧

创建表,插入数据:

createtabletable_id
(id1int,
id2int,
id3int,
id4int,
id5int)

insertintotable_idvalues(1,3,2,5,null)
insertintotable_idvalues(2,5,null,null,null)
insertintotable_idvalues(3,2,5,null,null)
insertintotable_idvalues(4,2,5,null,null)
insertintotable_idvalues(5,null,null,null,null)


createtabletable_rel
(idint,
namevarchar(10))

insertintotable_relvalues(1,'张三')
insertintotable_relvalues(2,'李四')
insertintotable_relvalues(3,'王五')
insertintotable_relvalues(4,'赵六')
insertintotable_relvalues(5,'田七')

执行:

withtas
(selectreplace(replace(replace(casewhena.id1=b.idthenb.nameelse''end+'/'+
casewhena.id2=c.idthenc.nameelse''end+'/'+
casewhena.id3=d.idthend.nameelse''end+'/'+
casewhena.id4=e.idthene.nameelse''end+'/'+
casewhena.id5=f.idthenf.nameelse''end,'//','/'),'//','/'),'//','/')str
fromtable_idaleftjointable_relbona.id1=b.id
leftjointable_relcona.id2=c.id
leftjointable_reldona.id3=d.id
leftjointable_releona.id4=e.id
leftjointable_relfona.id5=f.id)
selectcasewhenstrlike'%/'thenLEFT(STR,LEN(str)-1)elseSTRendstrfromt

执行结果:

‘叁’ sql查询 用sql语言

select 信息表.姓名,信息表.年龄,课程表.课程名,成绩表.成绩 from
(信息表 inner join 成绩表 on 信息表.学号=成绩表.学号)
inner join 课程表 on 成绩表.课程号=课程表.课程号
where 成绩表.学号 in
(select 成绩表.学号 from 成绩表 inner join 课程表 on 成绩表.课程号=课程表.课程号 where 课程表.课程名='体操课' and 成绩表.成绩<>'')
and
成绩表.学号 in
(select 成绩表.学号 from 成绩表 inner join 课程表 on 成绩表.课程号=课程表.课程号 where 课程表.课程名='英语' or 课程表.课程名='数学' and sum(成绩表.成绩)>170 group by 成绩表.学号)

累死了!~

‘肆’ SQL查询命令

1、select学号,姓名fromswhere班级='高会1'
2、select*fromswhere入学成绩in(selecttop3入学成绩from(selectdistinct入学成绩froms)aorderby入学成绩desc)
3、select*froms姓名like'%王%'

以上考虑成绩并排情况


以下是不考虑成绩并排的情况:

2、SELECTTOP3*FROMSORDERBY入学成绩DESC

‘伍’ 一个sql查询

update table_name set c = a.a
from table_name b,table_name a
where b.b = a.a and a.a = b.a and table_name.a = b.a

/*
select a.a from table_name a
join table_name b on b.b = a.a and a.a = b.a
*/

‘陆’ sql查询,

比如查询id为1的评论数:
select count(id,评论内容,创建时间 from comment) as count where status=1 and id=1//id为1的总的评论数;

再将该条数据的评论数与内容一起查询显示出来
select id,评论内容,创建时间 from comment,(select count(id,评论内容,创建时间 from comment) where status=1 and id=1) as count where id=1

‘柒’ SQL查询

好像有的问题问得有点问题。。你自己读一下。。没错的话确认一下。

‘捌’ sql查询语句

请 使用 行列转换语句即可:
假设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)

也可以参考:
sql 语句行列转换
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(12) | YES | | NULL | |
| course | varchar(10) | YES | | NULL | |
| score | int(11) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+

select name,
sum(case course when 'yuwen' then score else 0 end) as 'yuwen',
sum(case course when 'shuxue' then score else 0 end) as 'shuxue',
sum(case course when 'english' then score else 0 end) as 'english'
from course
group by name;

‘玖’ SQL查询语句

CREATETABLE#test(
[用户名]nvarchar(6),
[时间]datetime
);
GO
INSERTINTO#test
SELECT'张三','2013-07-0901:01:00'UNIONALL
SELECT'李四','2013-07-0901:02:00'UNIONALL
SELECT'张三','2013-07-0902:01:00'UNIONALL
SELECT'李四','2013-07-0903:01:00'UNIONALL
SELECT'张三','2013-07-0903:01:00'UNIONALL
SELECT'李四','2013-07-0905:01:00'UNIONALL
SELECT'张三','2013-07-0904:01:00'

CreateTABLE#time(
[编号]int,
[起始时间]varchar(20),
[结束时间]varchar(20)
);
GO
--这里可以插入需要统计的时间段
INSERTINTO#time
SELECT1,'00:00:00','02:59:59'UNIONALL
SELECT2,'01:00:00','03:59:59'

select
a.[用户名],count(a.[用户名])[出现次数],b.[起始时间]+'-'+b.[结束时间][时间段]
from#testainnerjoin#timeb
on(RIGHT(convert(varchar,a.[时间],120),8)betweenb.[起始时间]andb.[结束时间])
groupbyb.[起始时间],b.[结束时间],a.[用户名]

结果:

‘拾’ 什么是SQL查询

SQL全称是“结构化查询语言(Structured Query Language)”

SQL(STructured Query Language)是一种资料库查询和程式设计语言,用于存取资料以及查询、更新和管理关联式资料库系统。

SQL同时也是数据库文件格式的扩展名。

SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。

结构化查询语言(Structured Query Language)最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了 SQL 标准。ANSI 是一个美国工业和商业集团组织,发展美国的商务和通讯标准。ANSI 同时也是 ISO 和 International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO 和 IEC 发布了 SQL 的国际标准,称为 SQL-92。ANSI 随之发布的相应标准是 ANSI SQL-92。ANSI SQL-92 有时被称为 ANSI SQL。尽管不同的关联式资料库使用的 SQL 版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server 使用 ANSI SQL-92 的扩展集,称为 T-SQL,其遵循 ANSI 制定的 SQL-92 标准。

SQL语言包含4个部分:

数据定义(DDL)语言(如CREATE, DROP,ALTER等语句)

数据操纵(DML)语言(INSERT, UPDATE, DELETE语句)

数据查询语言(SELECT语句)

数据控制语言(如GRANT,REVOKE,COMMIT, ROLLBACK等语句)

SQL 语言包括两种主要程式设计语言类别的陈述式: 资料定义语言 (DDL)与资料操作语言 (DML)。