为您找到与数据库DISTINCT相关的共46个结果:
数据库查询distinct的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库查询distinct的用法的用法,希望对你们有用。
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。
表A:
表B:
1.作用于单列
select distinct name from A
执行后结果如下:
2.作用于多列
示例2.1
select distinct name, id from A
执行后结果如下:
实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。
示例2.2
select distinct xing, ming from B
返回如下结果:
返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了xing和ming列。
3.COUNT统计
select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持
count是不能统计多个字段的,下面的SQL在SQL Server和Access中都无法运行。
select count(distinct name, id) from A;
若想使用,请使用嵌套查询,如下:
select count(*) from (select distinct xing, name from B) AS M;
4.distinct必须放在开头
select id, distinct name from A; --会提示错误,因为distinct必须放在开头
5.其他
distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。但可以通过其他方法实现关于SQL Server将一列的多行内容拼接成一行的问题讨论
浏览量:2
下载量:0
时间:
distinct有明显的;清晰的;不同的;独特的等意思,那么你知道distinct的同义词有哪些吗?下面读文网小编为大家带来distinct的同义词及辨析,供同学们参考学习。
1. The lighthouse beam was quite distinct in the gathering dusk.
灯塔的光束在渐浓的暮色中清晰可见。
2. Editorially, they never really became a unique distinct product.
就立场和观点来说,它们从未真正做到树立起自己独具一格的视角。
3. Modern linguistics emerged as a distinct field in the nineteenth century.
现代语言学在19世纪作为一个独立的领域出现。
4. Engineering and technology are disciplines distinct from one another and from science.
工程学和工艺学互不相同,也有别于自然学科。
5. Another Cup marathon between the two sides is now a distinct possibility.
双方很可能再进行一场马拉松式的优胜杯比赛。
6. The detention raised two distinct but closely linked questions.
这一拘留行为引发了两个互为独立但又密切相关的问题。
7. Being 6ft 3in tall has some distinct disadvantages!
身高6英尺3英寸有些明显的不便之处!
8. Each party represents a distinct current of thought.
每个党派代表一种不同的思潮。
9. There was a distinct smell of gas.
有一股明显的煤气味。
10. I had the distinct impression that I was being followed.
我清楚地感觉到有人跟踪我.
11. There is a distinct improvement in your spoken English.
你的英语口语有明显的进步.
12. The earth's shadow on the moon was quite distinct.
月球上的地球阴影很清晰.
13. His pronunciation is quite distinct.
他的发音非常清楚.
14. The planners decided to preserve their distinct identities.
设计者们决定保留他们各自的特色.
15. Gold is distinct from iron.
金在性质上不同于铁.
浏览量:3
下载量:0
时间:
数据库中exists语句的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中exists语句的用法的用法,希望对你们有用。
SQL中EXISTS的用法
问题:查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息
--方法1
Sql代码
select Student.* from Student , SC where Student.S# = SC.S# and SC.C# = '01' and exists (Select 1 from SC SC_2 where SC_2.S# = SC.S# and SC_2.C# = '02') order by Student.S#
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
例表A:TableIn
例表B:TableEx
(二). 比较使用 EXISTS 和 IN 的查询。注意两个查询返回相同的结果。
select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)
select * from TableIn where ANAME in(select BNAME from TableEx)
(三). 比较使用 EXISTS 和 = ANY 的查询。注意两个查询返回相同的结果。
select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)
select * from TableIn where ANAME=ANY(select BNAME from TableEx)
NOT EXISTS 的作用与 EXISTS 正好相反。如果子查询没有返回行,则满足了 NOT EXISTS 中的 WHERE 子句。
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。
EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用:
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。
浏览量:3
下载量:0
时间:
数据库in的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库in的用法的用法,希望对你们有用。
MySQL IN 语法
IN 运算符用于 WHERE 表达式中,以列表项的形式支持多个选择,语法如下:
WHERE column IN (value1,value2,...)
WHERE column NOT IN (value1,value2,...)
当 IN 前面加上 NOT 运算符时,表示与 IN 相反的意思,即不在这些列表项内选择。
IN 使用实例
选取 uid 为 2、3、5 的用户数据:
SELECT * FROM user WHERE uid IN (2,3,5)
返回查询结果如下:
uid
username
password
regdate
2 小明 a193686a53e4de85ee3f2ff0576adf01 xiao@163.com 1278063917
3 Jack 0193686a35e4de85ee3f2ff0567adf490 jack@gmail.com 1278061380
5 5idev a193686a53e4de85ee3f2ff0576adf01 5idev@5idev.com 1291107029
IN 子查询
更多情况下,IN 列表项的值是不明确的,而可能是通过一个子查询得到的:
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
在这个 SQL 例子里,我们实现了查出所有状态为 0 的用户(可能是被禁止)的所有文章。首先通过一个查询得到所有所有 status=0 的用户:
SELECT uid FROM user WHERE status=0
然后将查询结果作为 IN 的列表项以实现最终的查询结果,注意在子查询中返回的结果必须是一个字段列表项。
IN 运算符补充说明
IN 列表项不仅支持数字,也支持字符甚至时间日期类型等,并且可以将这些不同类型的数据项混合排列而无须跟 column 的类型保持一致:
SELECT * FROM user WHERE uid IN(1,2,'3','c')
一个 IN 只能对一个字段进行范围比对,如果要指定更多字段,可以使用 AND 或 OR 逻辑运算符:
SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','5idev')
使用 AND 或 OR 逻辑运算符后,IN 还可以和其他如 LIKE、>=、= 等运算符一起使用。
关于 IN 运算符的效率问题
如果 IN 的列表项是确定的,那么可以用多个 OR 来代替:
SELECT * FROM user WHERE uid IN (2,3,5)
https:// 等效为:
SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5)
一般认为,如果是对索引字段进行操作,使用 OR 效率高于 IN,但对于列表项不确定的时候(如需要子查询得到结果),就必须使用 IN 运算符。另外,对于子查询表数据小于主查询的时候,也是适用 IN 运算符的。
浏览量:3
下载量:0
时间:
数据库中drop的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中drop的用法的用法,希望对你们有用。
由于数据库表在计算机中占有物理空间,出于效率方面的考滤,在不需要某些数据库表时,可以删除它们.使用drop table语句可以删除数据库表及表中的任何约束,并释放它们所占的物理空间.利用drop table语句删除数据库表的语法结构如下;
drop table [database_name.[schema_name].|schema_name.]table_name][,...n]
各参数的含义如下:
◎database_name:要在其中删除表的数据库的名称.
◎schema_name:表所属架构的名称.
◎table_name:要删除表的名称.
1.删除数据库表 TestTable,实现代码如下所示:
use mydatebase
go
drop table webuser
2.还可以同时删除多个数据库表,表与表之间用逗号隔开,实现代码如下所示:
use mydatebase
go
drop table webuser,UserComment
3.删除临时表,实现代码如下所示:
use mydatebase
go
drop table #webuser,##UserComment
4.在此南昌网络公司技术人员提醒:如果要删除有依赖关联的数据库表,即主键,外键关联表,则要删除两个表之间的关联约束,然后才可以删除表.注意,也可以先删除引用该表的数据库表,实现代码如下所示: 例如:有表产品表关联着产品分类表.我们就要先删除产品表.再来删除产品分类表.
use mydatebase
go
drop table 产品表
删除成功后
use mydatebase
go
drop table 产品分类表
在此南昌网站建设公司工程师提醒:在Oracle中,利用drop table 删除有关联关系的数据库表时,会同时删除与之关联的所有数据库表.
在此顺便介绍在网页编程中Sql语句删除表的表达方式如下所示:
conn.execute("drop TABLE 表名")
浏览量:3
下载量:0
时间:
数据库中count的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中count的用法的用法,希望对你们有用。
count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在MySQL中count函数用法与性能比较吧。count(*) 它返回检索行的数目, 不论其是否包含 NULL值。
SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度。
例如:SELECT COUNT(*) FROM student;
COUNT(DISTINCT 字段),返回不同的非NULL值数目;若找不到匹配的项,则COUNT(DISTINCT)返回 0 。
这个优化仅适用于 MyISAM表, 原因是这些表类型会储存一个函数返回记录的精确数量,而且非常容易访问。
对于事务型的存储引擎(InnoDB, BDB), 存储一个精确行数的问题比较多,原因是可能会发生多重事物处理,而每个都可能会对行数产生影响。
例, 创建用于测试的数据表,以进行count数据统计:
CREATE TABLE `user` (
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`password` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
测试数据为:
1 name1 123456
2 name2 123456
3 name3 123456
4 name4 NULL
请注意以下查询的返回结果:
1,select count(*) from `user`
2,select count(name) from `user`
3,select count(password) from `user`
输出结果:4,4,3
原因分析:
1,count(*)是对行数目进行计数,所以结果为4。
2,count(column_name)是对列中不为空的行进行计数,所以count(name)=4,而count(password)=3。
以上二点,在使用count函数时,要注意下。
使用GROUP BY对每个owner的所有记录分组,没有它,你会得到错误消息:
mysql> SELECT owner, COUNT(*) FROM pet;
ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...)
with no GROUP columns is illegal if there is no GROUP BY clause
COUNT( )和GROUP BY以各种方式分类你的数据。下列例子显示出进行动物普查操作的不同方式。
每种动物的数量:
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
+---------+----------+
| species | COUNT(*) |
+---------+----------+
| bird | 2 |
| cat | 2 |
| dog | 3 |
| hamster | 1 |
| snake | 1 |
+---------+----------+
每种性别的动物数量:
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
+------+----------+
| sex | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+
(在这个输 出中,NULL表示“未知性别”。)
按种类和性别组合的动物数量:
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | NULL | 1 |
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
若 使用COUNT( ),你不必检索整个表。例如, 前面的查询,当只对狗和猫进行时,应为:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE species = 'dog' OR species = 'cat'
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
+---------+------+----------+
或, 如果你仅需要知道已知性别的按性别的动物数目:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE sex IS NOT NULL
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+
顺便提下mysql的DISTINCT的关键字有很多你想不到的用处
1.在count 不重复的记录的时候能用到
比如SELECT COUNT( DISTINCT id ) FROM tablename;
就是计算talbebname表中id不同的记录有多少条
2,在需要返回记录不同的id的具体值的时候可以用
比如SELECT DISTINCT id FROM tablename;
返回talbebname表中不同的id的具体的值
3.上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义
比如SELECT DISTINCT id, type FROM tablename;
实际上返回的是 id与type同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得id与tyoe都相同的才被排除了,与我们期望的结果不一样
4.这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的
5.其实还有另外一种解决方式,就是使用
SELECT id, type, count(DISTINCT id) FROM tablename
虽然这样的返回结果多了一列无用的count数据(或许你就需要这个我说的无用数据)
返回的结果是 只有id不同的所有结果和上面的4类型可以互补使用,就是看你需要什么样的数据了
浏览量:3
下载量:0
时间:
数据库中like的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中like的用法的用法,希望对你们有用。
语法
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
参数
match_expression
任何字符串数据类型的有效 SQL Server 表达式。
pattern
match_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。
通配符 描述 示例
% 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。
_(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。
Like的运用场合主要在模糊查询的时候,一般以查询字符串居多,这里据一些例子来说他的一般用法:
例1,查询name字段中包含有“明”字的。
select * from table1 where name like ‘%明%’
这里不要使用*来代替,一般在使用0个或者任意个字符构成的字符串的时候最好使用%
不过在首或尾使用可以相互替换,如果在头尾同时使用的话,就必须要使用%
例2,查询name字段中以“李”字开头。
select * from table1 where name like ‘李*’
或者
select * from table1 where name like ‘李%’
例3,查询name字段中含有数字的。
select * from table1 where name like ‘%[0-9]%’
例4,查询name字段中含有小写字母的。
select * from table1 where name like ‘%[a-z]%’
例5,查询name字段中不含有数字的。
select * from table1 where name like ‘%[!0-9]%’
浏览量:4
下载量:0
时间:
数据库中sum的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中sum的用法的用法,希望对你们有用。
根据BOL中解释COUNT用来返回组中的项数。
COUNT(*)返回组中的项数。包括 NULL 值和重复项
COUNT(ALL expression):对组中的每一行都计算 expression 并返回非空值的数量。默认值。
COUNT(DISTINCT expression):对组中的每一行都计算 expression 并返回唯一非空值的数量。
ID Value
----------- --------------------------------------------------
1 A
2 B
2 B
3 B
4 NULL
select COUNT(* ) from Table_1
-----------
5
SELECT COUNT(Value) FROM Table_1
-----------
4
SELECT COUNT(DISTINCT Value) FROM Table_1
-----------
2
SUM返回表达式中所有值的和或仅非重复值的和。SUM 只能用于数字列。空值将被忽略
ID Value
----------- -----------
1 1
2 2
3 3
4 4
5 NULL
6 5
7 5
SELECT SUM(Value) From Table_1
-----------
20
SELECT SUM(DISTINCT Value) From Table_1
-----------
15
以Northwind数据库中的Employees,Orders表为例,列出所有雇员的姓名以及其拥有的Order的个数。分别用Count()和SUM()实现。
SELECT e.EmployeeID,FirstName,LastName,Count(O.EmployeeID) AS OrderCount
FROM dbo.Employees AS E LEFT JOIN dbo.Orders AS O
ON E.EmployeeID = O.EmployeeID
Group By E.EmployeeID,FirstName,LastName
SELECT e.EmployeeID,FirstName,LastName,SUM(CASE WHEN O.EmployeeID IS NULL THEN 0 ELSE 1 END) AS OrderCount
FROM dbo.Employees AS E LEFT JOIN dbo.Orders AS O
ON E.EmployeeID = O.EmployeeID
Group By E.EmployeeID,FirstName,LastName
注意的是这里一定不能用COUNT(*),因为COUNT(*)是计算行数,对于没有定单的用户也是为1。只有在JOIN的情况下,COUNT(*)才等效于Count(O.EmployeeID
附:这两个表的定义。
USE [Northwind]
GO
/****** Object: Table [dbo].[Employees] Script Date: 01/13/2012 22:57:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Employees](
[EmployeeID] [int] IDENTITY(1,1) NOT NULL,
[LastName] [nvarchar](20) NOT NULL,
[FirstName] [nvarchar](10) NOT NULL,
[Title] [nvarchar](30) NULL,
[TitleOfCourtesy] [nvarchar](25) NULL,
[BirthDate] [datetime] NULL,
[HireDate] [datetime] NULL,
[Address] [nvarchar](60) NULL,
[City] [nvarchar](15) NULL,
[Region] [nvarchar](15) NULL,
[PostalCode] [nvarchar](10) NULL,
[Country] [nvarchar](15) NULL,
[HomePhone] [nvarchar](24) NULL,
[Extension] [nvarchar](4) NULL,
[Photo] [image] NULL,
[Notes] [ntext] NULL,
[ReportsTo] [int] NULL,
[PhotoPath] [nvarchar](255) NULL,
CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
(
[EmployeeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD CONSTRAINT [FK_Employees_Employees] FOREIGN KEY([ReportsTo])
REFERENCES [dbo].[Employees] ([EmployeeID])
GO
ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [FK_Employees_Employees]
GO
ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD CONSTRAINT [CK_Birthdate] CHECK (([BirthDate] < getdate()))
GO
ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [CK_Birthdate]
GO
USE [Northwind]
GO
/****** Object: Table [dbo].[Orders] Script Date: 01/13/2012 23:02:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Orders](
[OrderID] [int] IDENTITY(1,1) NOT NULL,
[CustomerID] [nchar](5) NULL,
[EmployeeID] [int] NULL,
[OrderDate] [datetime] NULL,
[RequiredDate] [datetime] NULL,
[ShippedDate] [datetime] NULL,
[ShipVia] [int] NULL,
[Freight] [money] NULL,
[ShipName] [nvarchar](40) NULL,
[ShipAddress] [nvarchar](60) NULL,
[ShipCity] [nvarchar](15) NULL,
[ShipRegion] [nvarchar](15) NULL,
[ShipPostalCode] [nvarchar](10) NULL,
[ShipCountry] [nvarchar](15) NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD CONSTRAINT [FK_Orders_Customers] FOREIGN KEY([CustomerID])
REFERENCES [dbo].[Customers] ([CustomerID])
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Customers]
GO
ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD CONSTRAINT [FK_Orders_Employees] FOREIGN KEY([EmployeeID])
REFERENCES [dbo].[Employees] ([EmployeeID])
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Employees]
GO
ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY([ShipVia])
REFERENCES [dbo].[Shippers] ([ShipperID])
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Shippers]
GO
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [DF_Orders_Freight] DEFAULT (0) FOR [Freight]
GO
浏览量:4
下载量:0
时间:
数据库中select的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中select的用法的用法,希望对你们有用。
1、select语句可以用回车分隔
?
1
2
3
4
$sql="select * from article where id=1"
和
$sql="select * from article
where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时
2、批量查询数据
?
1
2
可以用in来实现
$sql="select * from article where id in(1,3,5)"
3、使用concat连接查询的结果
?
1
$sql="select concat(id,"-",con) as res from article where id=1"
返回"1-article content"
4、使用locate
用法:
select locate("hello","hello baby");返回1
不存在返回0
5、使用group by
以前一直没怎么搞明group by 和 order by,其实也满简单的,group by 是把相同的结果编为一组
?
1
exam:$sql="select city ,count(*) from customer group by city";
这句话的意思就是从customer表里列出所有不重复的城市,及其数量(有点类似distinct)
group by 经常与AVG(),MIN(),MAX(),SUM(),COUNT()一起使用
6、使用having
having 允许有条件地聚合数据为组
?
1
2
$sql="select city,count(*),min(birth_day) from customer
group by city having count(*)>10";
这句话是先按city归组,然后找出city地数量大于10的城市
btw:使用group by + having 速度有点慢
同时having子句包含的表达式必须在之前出现过
7、组合子句
where、group by、having、order by(如果这四个都要使用的话,一般按这个顺序排列)
8、使用distinct
distinct是去掉重复值用的
?
1
$sql="select distinct city from customer order by id desc";
这句话的意思就是从customer表中查询所有的不重复的city
9、使用limit
如果要显示某条记录之后的所有记录
?
1
$sql="select * from article limit 100,-1";
10、多表查询
?
1
2
3
4
$sql="select user_name from user u,member m
where u.id=m.id and
m.reg_date>=2006-12-28
order by u.id desc"
浏览量:4
下载量:0
时间:
数据库group by的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库group by的用法的用法,希望对你们有用。
1、概述
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
2、原始表
3、简单Group By
示例1
select 类别, sum(数量) as 数量之和
from A
group by 类别
返回结果如下表,实际上就是分类汇总。
4、Group By 和 Order By
示例2
select 类别, sum(数量) AS 数量之和
from A
group by 类别
order by sum(数量) desc
返回结果如下表
在Access中不可以使用“order by 数量之和 desc”,但在SQL Server中则可以。
5、Group By中Select指定的字段限制
示例3
select 类别, sum(数量) as 数量之和, 摘要
from A
group by 类别
order by 类别 desc
示例3执行后会提示下错误,如下图。这就是需要注意的一点,在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。
6、Group By All
示例4
select 类别, 摘要, sum(数量) as 数量之和
from A
group by all 类别, 摘要
示例4中则可以指定“摘要”字段,其原因在于“多列分组”中包含了“摘要字段”,其执行结果如下表
“多列分组”实际上就是就是按照多列(类别+摘要)合并后的值进行分组,示例4中可以看到“a, a2001, 13”为“a, a2001, 11”和“a, a2001, 2”两条记录的合并。
SQL Server中虽然支持“group by all”,但Microsoft SQL Server 的未来版本中将删除 GROUP BY ALL,避免在新的开发工作中使用 GROUP BY ALL。Access中是不支持“Group By All”的,但Access中同样支持多列分组,上述SQL Server中的SQL在Access可以写成
select 类别, 摘要, sum(数量) AS 数量之和
from A
group by 类别, 摘要
7、Group By与聚合函数
在示例3中提到group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中,常见的聚合函数如下表:
函数
作用
支持性
sum(列名) 求和
max(列名) 最大值
min(列名) 最小值
avg(列名) 平均值
first(列名) 第一条记录 仅Access支持
last(列名) 最后一条记录 仅Access支持
count(列名) 统计记录数 注意和count(*)的区别
示例5:求各组平均值
select 类别, avg(数量) AS 平均值 from A group by 类别;
示例6:求各组记录数目
select 类别, count(*) AS 记录数 from A group by 类别;
示例7:求各组记录数目
8、Having与Where的区别
?where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
?having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
示例8
select 类别, sum(数量) as 数量之和 from A
group by 类别
having sum(数量) > 18
示例9:Having和Where的联合使用方法
select 类别, SUM(数量)from A
where 数量 gt;8
group by 类别
having SUM(数量) gt; 10
9、Compute 和 Compute By
select * from A where 数量 > 8
执行结果:
示例10:Compute
select *
from A
where 数量>8
compute max(数量),min(数量),avg(数量)
执行结果如下:
compute子句能够观察“查询结果”的数据细节或统计各列数据(如例10中max、min和avg),返回结果由select列表和compute统计结果组成。
示例11:Compute By
select *
from A
where 数量>8
order by 类别
compute max(数量),min(数量),avg(数量) by 类别
执行结果如下:
示例11与示例10相比多了“order by 类别”和“... by 类别”,示例10的执行结果实际是按照分组(a、b、c)进行了显示,每组都是由改组数据列表和改组数统计结果组成,另外:
?compute子句必须与order by子句用一起使用
?compute...by与group by相比,group by 只能得到各组数据的统计结果,而不能看到各组数据
在实际开发中compute与compute by的作用并不是很大,SQL Server支持compute和compute by,而Access并不支持
浏览量:2
下载量:0
时间:
数据库in和exists的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库in和exists的用法的用法,希望对你们有用。
SELECT DISTINCT MD001 FROM BOMMD WHERE MD001 NOT IN (SELECT MC001 FROM BOMMC)
NOT EXISTS,exists的用法跟in不一样,一般都需要和子表进行关联,而且关联时,需要用索引,这样就可以加快速度
select DISTINCT MD001 from BOMMD WHERE NOT EXISTS (SELECT MC001 FROM BOMMC where BOMMC.MC001 = BOMMD.MD001)
exists是用来判断是否存在的,当exists(查询)中的查询存在结果时则返回真,否则返回假。not exists则相反。
exists做为where 条件时,是先对where 前的主查询询进行查询,然后用主查询的结果一个一个的代入exists的查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出。
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)
效率低,用到了A表上cc列的索引;select * from A where exists(select cc from B where cc=A.cc)
效率高,用到了B表上cc列的索引。
相反的2:select * from B where cc in (select cc from A)
效率高,用到了B表上cc列的索引;select * from B where exists(select cc from A where cc=B.cc)
效率低,用到了A表上cc列的索引。
not in 和not exists如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。
in 与 =的区别
select name from student where name in ('zhang','wang','li','zhao');
与
select name from student where name='zhang' or name='li' or name='wang' or name='zhao'
的结果是相同的。
例子如下(即exists返回where后2个比较的where子句中相同值,not exists则返回where子句中不同值):
exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 2 B2
3 2 B3
表A和表B是一对多的关系 A.ID --> B.AID
SELECT ID , NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID = B.AID)
执行结果为
1 A1
2 A2
原因可以按照如下分析
SELECT ID , NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID = 1)
-->SELECT * FROM B WHERE B.AID = 1有值返回真所以有数据
SELECT ID , NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID = 2)
-->SELECT * FROM B WHERE B.AID = 2有值返回真所以有数据
SELECT ID , NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID = 3)
-->SELECT * FROM B WHERE B.AID = 3无值返回真所以没有数据
NOT EXISTS 就是反过来
SELECT ID , NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID = B.AID)
执行结果为
3 A3
sql in与exists区别
IN
确定给定的值是否与子查询或列表中的值相匹配。
EXISTS
指定一个子查询,检测行的存在。
比较使用 EXISTS 和 IN 的查询
这个例子比较了两个语义类似的查询。第一个查询使用 EXISTS 而第二个查询使用 IN。注意两个查询返回相同的信息。
USE pubs
GO
SELECT DISTINCT pub_name
FROM publishers
WHERE EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = 'business')
GO
-- Or, using the IN clause:
USE pubs
GO
SELECT distinct pub_name
FROM publishers
WHERE pub_id IN
(SELECT pub_id
FROM titles
WHERE type = 'business')
GO
下面是任一查询的结果集:
pub_name
----------------------------------------
Algodata Infosystems
New Moon Books
(2 row(s) affected)
exits 相当于存在量词:表示集合存在,也就是集合不为空只作用一个集合.例如 exist P 表示P不空时为真; not exist P表示p为空时 为真 in表示一个标量和一元关系的关系。例如:s in P表示当s与P中的某个值相等时 为真; s not in P 表示s与P中的每一个值都不相等时 为真
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
全文:
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
例如:表A(小表),表B(大表)
1:
select * from A where cc in (select cc from B)
效率低,用到了A表上cc列的索引;
select * from A where exists(select cc from B where cc=A.cc)
效率高,用到了B表上cc列的索引。
相反的
2:
select * from B where cc in (select cc from A)
效率高,用到了B表上cc列的索引;
select * from B where exists(select cc from A where cc=B.cc)
效率低,用到了A表上cc列的索引。
not in 和not exists
如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;
而not extsts 的子查询依然能用到表上的索引。
所以无论那个表大,用not exists都比not in要快。
in 与 =的区别
select name from student where name in ('zhang','wang','li','zhao');
与
select name from student where name='zhang' or name='li' or name='wang' or name='zhao'
的结果是相同的。
浏览量:3
下载量:0
时间:
distinct表明显的,清楚的; 卓越的意思,那么你知道distinct的同义词有哪些吗?接下来小编为大家整理了distinct的同义词,希望对你有帮助哦!
1. The lighthouse beam was quite distinct in the gathering dusk.
灯塔的光束在渐浓的暮色中清晰可见。
2. Editorially, they never really became a unique distinct product.
就立场和观点来说,它们从未真正做到树立起自己独具一格的视角。
3. Modern linguistics emerged as a distinct field in the nineteenth century.
现代语言学在19世纪作为一个独立的领域出现。
4. Engineering and technology are disciplines distinct from one another and from science.
工程学和工艺学互不相同,也有别于自然学科。
5. Another Cup marathon between the two sides is now a distinct possibility.
双方很可能再进行一场马拉松式的优胜杯比赛。
6. The detention raised two distinct but closely linked questions.
这一拘留行为引发了两个互为独立但又密切相关的问题。
7. Being 6ft 3in tall has some distinct disadvantages!
身高6英尺3英寸有些明显的不便之处!
8. Each party represents a distinct current of thought.
每个党派代表一种不同的思潮。
9. There was a distinct smell of gas.
有一股明显的煤气味。
10. I had the distinct impression that I was being followed.
我清楚地感觉到有人跟踪我.
11. There is a distinct improvement in your spoken English.
你的英语口语有明显的进步.
12. The earth's shadow on the moon was quite distinct.
月球上的地球阴影很清晰.
13. His pronunciation is quite distinct.
他的发音非常清楚.
14. The planners decided to preserve their distinct identities.
设计者们决定保留他们各自的特色.
15. Gold is distinct from iron.
金在性质上不同于铁.
浏览量:2
下载量:0
时间:
数据库having的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库having的用法的用法,希望对你们有用。
--sql中的group by 用法解析:
-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。
--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
--注意:group by 是先排序后分组;
--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术
select DepartmentID as '部门名称',
COUNT(*) as '个数' from BasicDepartment group by DepartmentID
--这个就是使用了group by +字段进行了分组,其中我们就可以理解为我们按照了部门的名称ID
--DepartmentID将数据集进行了分组;然后再进行各个组的统计数据分别有多少;
--如果不用count(*) 而用类似下面的语法
select DepartmentID,DepartmentName from BasicDepartment group by DepartmentID
--将会出现错误
--消息 8120,级别 16,状态 1,第 1 行
--选择列表中的列 'BasicDepartment.DepartmentName' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
--这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,
--作为分组的依据;要么就要被包含在聚合函数中。
--出现的错误详解:咱们看看group by 的执行的过程,先执行select 的操作返回一个程序集,
--然后去执行分组的操作,这时候他将根据group by 后面的字段
--进行分组,并且将相同的字段并称一列数据,如果group by 后面没有这个字段的话就要分成好多的数据。
--但是分组就只能将相同的数据分成两列数据,而一列中又只能放入一个字段,所以那些没有进行分组的
--数据系统不知道将数据放入哪里,所以就出现此错误
--目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,
--所以这里就需要通过一定的处理将这些多值的列转化成单值,然后将其放在对应的
--数据格中,那么完成这个步骤的就是聚合函数。这就是为什么这些函数叫聚合函数(aggregate functions)了
--group by all语法解析:
--如果使用 ALL 关键字,那么查询结果将包括由 GROUP BY 子句产生的所有组,即使某些组没有符合搜索条件的行。
--没有 ALL 关键字,包含 GROUP BY 子句的 SELECT 语句将不显示没有符合条件的行的组。
select DepartmentID,DepartmentName as '部门名称',
COUNT(*) as '个数' from BasicDepartment group by all DepartmentID,DepartmentName
--group by 和having 解释:前提必须了解sql语言中一种特殊的函数:聚合函数,
--例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
--WHERE关键字在使用集合函数时不能使用,所以在集合函数中加上了HAVING来起到测试查询结果是否符合条件的作用。
create TABLE Table1
(
ID int identity(1,1) primary key NOT NULL,
classid int,
sex varchar(10),
age int,
)
--添加测试数据
Insert into Table1 values(1,'男',20)
Insert into Table1 values(2,'女',22)
Insert into Table1 values(3,'男',23)
Insert into Table1 values(4,'男',22)
Insert into Table1 values(1,'男',24)
Insert into Table1 values(2,'女',19)
Insert into Table1 values(4,'男',26)
Insert into Table1 values(1,'男',24)
Insert into Table1 values(1,'男',20)
Insert into Table1 values(2,'女',22)
Insert into Table1 values(3,'男',23)
Insert into Table1 values(4,'男',22)
Insert into Table1 values(1,'男',24)
Insert into Table1 values(2,'女',19
--举例子说明:查询table表查询每一个班级中年龄大于20,性别为男的人数
select COUNT(*)as '>20岁人数',classid from Table1 where sex='男' group by classid,age having age>20
--需要注意说明:当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
--执行where子句查找符合条件的数据;
--使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
--having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
--having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
--having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。
浏览量:2
下载量:0
时间:
计算机程序的学习比较复杂,那么数据库desc的用法的用法你知道吗?下面读文网小编就跟你们详细介绍下数据库desc的用法的用法,希望对你们有用。
使用desc查看数据库对象
desc是用来查看数据库对象的一个命令.格式为desc+对象名
SQL> desc course;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
COURSEID NOT NULL VARCHAR2(32)
COURSENAME NOT NULL VARCHAR2(64)
COURSENAME_EN VARCHAR2(256)
COURSENO NOT NULL VARCHAR2(32)
DEPARTMENTID VARCHAR2(32)
STAFFROOMID NOT NULL VARCHAR2(32)
COURSEKINDCODE NOT NULL VARCHAR2(8)
ISOTHERLANG CHAR(2)
TOTALPERIODNUM NOT NULL NUMBER(3)
TEACHPERIODNUM NUMBER
TESTPERIODNUM NUMBER
EXERPERIODNUM NUMBER
CREDITHOURNUM NUMBER
TEACHMETHODCODE CHAR(2)
REFBOOKNAME CHAR(1)
PRECOURSENAME CHAR(1)
EXAMMETHODCODE CHAR(2)
BRIEF CHAR(1)
STATUS NOT NULL VARCHAR2(10)
COMMENTS CHAR(1)
REEXAM CHAR(1)
LABEL CHAR(1)
PASSSCORE NUMBER
FULLSCORE NUMBER
TEXTBOOK CHAR(1)
SHORTNAME NOT NULL VARCHAR2(8)
SQL> desc dbms_crypto_toolkit;
PROCEDURE ABORTIDENTITY
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
IDENTITY RECORD IN/OUT
DESCRIPTOR RAW(200) IN/OUT
PROCEDURE CLOSEPERSONA
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN/OUT
PERSONA RAW(200) IN/OUT
PROCEDURE CLOSEWALLET
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
WALLET RECORD IN/OUT
WALLET RAW(200) IN/OUT
PROCEDURE CLOSEWALLET
PROCEDURE CREATEIDENTITY
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
IDENTITYTYPE BINARY_INTEGER IN
PUBLIC_IDENTITY VARCHAR2 IN
ALIAS VARCHAR2 IN
LONGER_DESCRIPTION VARCHAR2 IN
TRUST_QUALIFIER VARCHAR2 IN
IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
PROCEDURE CREATEPERSONA
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
CIPHER_TYPE BINARY_INTEGER IN
PRIVATE_INFORMATION RECORD IN
INFORMATION RAW(200) IN
PRL VARCHAR2 IN
ALIAS VARCHAR2 IN
LONGER_DESCRIPTION VARCHAR2 IN
PERSONA RECORD OUT
PERSONA RAW(200) OUT
PROCEDURE CREATEWALLET
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PASSWORD VARCHAR2 IN
WALLET RECORD IN/OUT
WALLET RAW(200) IN/OUT
WALLET_RESOURCE_LOCATOR VARCHAR2 IN DEFAULT
PROCEDURE CREATEWALLET
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PASSWORD VARCHAR2 IN
WALLET_RESOURCE_LOCATOR VARCHAR2 IN DEFAULT
PROCEDURE DECRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENCRYPTED_DATA RAW IN
DECRYPTED_DATA RAW OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION DECRYPT RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENCRYPTED_DATA RAW IN
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE DECRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENCRYPTED_STRING VARCHAR2 IN
DECRYPTED_STRING VARCHAR2 OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION DECRYPT RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENCRYPTED_STRING VARCHAR2 IN
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE DEENVELOPE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENVELOPED_DATA RAW IN
OUTPUT_DATA RAW OUT
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SENDER_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION DEENVELOPE RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENVELOPED_DATA RAW IN
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SENDER_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE DEENVELOPE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENVELOPED_STRING VARCHAR2 IN
OUTPUT_STRING VARCHAR2 OUT
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SENDER_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION DEENVELOPE RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
ENVELOPED_STRING VARCHAR2 IN
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SENDER_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE DESTROYWALLET
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PASSWORD VARCHAR2 IN
WALLET_RESOURCE_LOCATOR VARCHAR2 IN DEFAULT
PROCEDURE ENCRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
ENCRYPTED_DATA RAW OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION ENCRYPT RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION ENCRYPT RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE ENVELOPE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT RAW IN
ENVELOPED_DATA RAW OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION ENVELOPE RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT RAW IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE ENVELOPE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENVELOPED_STRING VARCHAR2 OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION ENVELOPE RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE ENVELOPE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT RAW IN
ENVELOPED_DATA RAW OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION ENVELOPE RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT RAW IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE ENVELOPE
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENVELOPED_STRING VARCHAR2 OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION ENVELOPE RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE HASH
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
HASH RAW OUT
HASH_STATE BINARY_INTEGER IN DEFAULT
FUNCTION HASH RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
HASH_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE HASH
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
HASH RAW OUT
HASH_STATE BINARY_INTEGER IN DEFAULT
FUNCTION HASH RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
HASH_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE INITIALIZE
PROCEDURE KEYEDHASH
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
KEYED_HASH RAW OUT
HASH_STATE BINARY_INTEGER IN DEFAULT
FUNCTION KEYEDHASH RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
HASH_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE KEYEDHASH
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
KEYED_HASH RAW OUT
HASH_STATE BINARY_INTEGER IN DEFAULT
FUNCTION KEYEDHASH RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
HASH_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE OPENPERSONA
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN/OUT
PERSONA RAW(200) IN/OUT
PROCEDURE OPENWALLET
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PASSWORD VARCHAR2 IN
WALLET RECORD IN/OUT
WALLET RAW(200) IN/OUT
PERSONA_LIST TABLE OF RECORD OUT
WALLET_RESOURCE_LOCATOR VARCHAR2 IN DEFAULT
PROCEDURE OPENWALLET
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PASSWORD VARCHAR2 IN
PERSONA_LIST TABLE OF RECORD OUT
WALLET_RESOURCE_LOCATOR VARCHAR2 IN DEFAULT
PROCEDURE PKDECRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
DECRYPTED_DATA RAW OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION PKDECRYPT RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE PKDECRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
DECRYPTED_STRING VARCHAR2 OUT
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION PKDECRYPT RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
DECRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE PKENCRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT RAW IN
ENCRYPTED_DATA RAW OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION PKENCRYPT RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT RAW IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE PKENCRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTED_STRING VARCHAR2 OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION PKENCRYPT RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RECIPIENT RECORD IN
DESCRIPTOR RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE PKENCRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT RAW IN
ENCRYPTED_DATA RAW OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION PKENCRYPT RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT RAW IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE PKENCRYPT
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTED_STRING VARCHAR2 OUT
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
FUNCTION PKENCRYPT RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_RECIPIENTS BINARY_INTEGER IN
RECIPIENT_LIST RECORD IN
DESCRIPTOR_ARRAY RAW(200) IN
INPUT_STRING VARCHAR2 IN
ENCRYPTION_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE RANDOMBYTES
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_BYTES_DESIRED BINARY_INTEGER IN
RANDOM_BYTES RAW OUT
FUNCTION RANDOMBYTES RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
NUMBER_OF_BYTES_DESIRED BINARY_INTEGER IN
PROCEDURE RANDOMNUMBER
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
RANDOM_NUMBER BINARY_INTEGER OUT
FUNCTION RANDOMNUMBER RETURNS BINARY_INTEGER
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
PROCEDURE REMOVEIDENTITY
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
PROCEDURE REMOVEPERSONA
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN/OUT
PERSONA RAW(200) IN/OUT
PROCEDURE SEEDRANDOM
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SEED RAW IN
PROCEDURE SEEDRANDOM
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SEED VARCHAR2 IN
PROCEDURE SEEDRANDOM
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SEED BINARY_INTEGER IN
PROCEDURE SIGN
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
SIGNATURE RAW OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
FUNCTION SIGN RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE SIGN
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
SIGNATURE RAW OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
FUNCTION SIGN RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE SIGNDETACHED
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
SIGNATURE RAW OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
FUNCTION SIGNDETACHED RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT RAW IN
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE SIGNDETACHED
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
SIGNATURE RAW OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
FUNCTION SIGNDETACHED RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
INPUT_STRING VARCHAR2 IN
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE STOREPERSONA
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN/OUT
PERSONA RAW(200) IN/OUT
WALLET RECORD IN/OUT
WALLET RAW(200) IN/OUT
PROCEDURE STOREPERSONA
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN/OUT
PERSONA RAW(200) IN/OUT
PROCEDURE STORETRUSTEDIDENTITY
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
IDENTITY RECORD IN/OUT
DESCRIPTOR RAW(200) IN/OUT
PERSONA RECORD IN
PERSONA RAW(200) IN
PROCEDURE TERMINATE
FUNCTION VALIDATE RETURNS BOOLEAN
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
IDENTITY RECORD IN
DESCRIPTOR RAW(200) IN
PROCEDURE VERIFY
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SIGNATURE RAW IN
EXTRACTED_MESSAGE RAW OUT
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SIGNING_PARTY_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
FUNCTION VERIFY RETURNS RAW
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SIGNATURE RAW IN
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SIGNING_PARTY_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE VERIFY
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SIGNATURE RAW IN
EXTRACTED_MESSAGE_STRING VARCHAR2 OUT
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SIGNING_PARTY_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
FUNCTION VERIFY RETURNS VARCHAR2
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
SIGNATURE RAW IN
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SIGNING_PARTY_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE VERIFYDETACHED
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
DATA RAW IN
SIGNATURE RAW IN
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SIGNING_PARTY_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
PROCEDURE VERIFYDETACHED
参数名称 类型 输入/输出默认值?
------------------------------ ----------------------- ------ --------
PERSONA RECORD IN
PERSONA RAW(200) IN
DATA_STRING VARCHAR2 IN
SIGNATURE RAW IN
VERIFIED BOOLEAN OUT
VALIDATED BOOLEAN OUT
SIGNING_PARTY_IDENTITY RECORD OUT
DESCRIPTOR RAW(200) OUT
SIGNATURE_STATE BINARY_INTEGER IN DEFAULT
浏览量:2
下载量:0
时间:
在mysql数据库中 rank的用法的用法你知道吗?下面小编就跟你们详细介绍下在mysql数据库中 rank的用法的用法,希望对你们有用。
Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. In other words, there should be no "holes" between ranks.
?
1
2
3
4
5
6
7
8
9
10
+----+-------+
| Id | Score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+
For example, given the above Scores table, your query should generate the following report (order by highest score):
?
1
2
3
4
5
6
7
8
9
10
+-------+------+
| Score | Rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+
题目解答:
?
1
2
3
4
5
6
7
8
9
10
# Write your MySQL query statement below
SELECT Scores.Score, COUNT(Ranking.Score) AS RANK
FROM Scores
, (
SELECT DISTINCT Score
FROM Scores
) Ranking
WHERE Scores.Score <= Ranking.Score
GROUP BY Scores.Id, Scores.Score
ORDER BY Scores.Score DESC;
浏览量:3
下载量:0
时间:
数据库中in的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中in的用法的用法,希望对你们有用。
IN:确定给定的值是否与子查询或列表中的值相匹配。
IN 关键字使您得以选择与列表中的任意一个值匹配的行。
SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERECategoryID IN (1, 4, 5)
IN 关键字之后的项目必须用逗号隔开,并且括在括号中。
NOT IN:通过 NOT IN关键字引入的子查询也返回一列零值或更多值。
以下查询查找没有出版过商业书籍的出版商的名称。
SELECTpub_name FROM publishers WHERE pub_id NOT IN (SELECT pub_id FROM titles WHEREtype = 'business')
使用 EXISTS和 NOT EXISTS引入的子查询可用于两种集合原理的操作:交集与差集。两个集合的交集包含同时属于两个原集合的所有元素。
差集包含只属于两个集合中的第一个集合的元素。
EXISTS:指定一个子查询,检测行的存在。
SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT *FROM titles WHERE pub_id = publishers.pub_id AND type =
'business')
SELECTdistinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titlesWHERE type = 'business')
两者的区别:
EXISTS:后面可以是整句的查询语句如:SELECT *FROM titles
IN:后面只能是对单列:SELECTpub_id FROM titles
NOT EXISTS:
例如,要查找不出版商业书籍的出版商的名称:
SELECTpub_name FROM publishers WHERE NOT EXISTS (SELECT * FROM titles WHERE pub_id =publishers.pub_id AND type =
'business')
下面的查询查找已经不销售的书的名称:
SELECT titleFROM titles WHERE NOT EXISTS (SELECT title_id FROM sales WHERE title_id =titles.title_id)
例子:
https://验证有发布产品的公司个数
select id,name from company where exists (select * from product where comid=company.id)
select id,name from company where id in(select comid from product)
https://验证没有发布产品的公司个数
select id,name from company where not exists (select * from product where comid=company.id)
select id,name from company where id not in(select comid from product)
浏览量:2
下载量:0
时间:
数据库中round的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中round的用法的用法,希望对你们有用。
Access数据库中Round用法
四舍五入的问题
select round(83.124,2) as t from jqdltb
显示为:83.12
select round(83.125,2) as t from jqdltb
显示为:83.12
select round(83.126,2) as t from jqdltb
显示为:83.13
问题来了,就是四舍五入怎么变成五舍六入了呢?
下面是用这个方法来调整达到四舍五入的方法:
使用int函数和加0.005,然后*100,再然后/100
如下所示:
select int((83.121+0.005)*100)/100 as t from jqdltb
显示为:83.12
select int((83.124+0.005)*100)/100 as t from jqdltb
显示为:83.12
select int((83.125+0.005)*100)/100 as t from jqdltb
显示为:83.13
select int((83.126+0.005)*100)/100 as t from jqdltb
显示为:83.13
select int((83.129+0.005)*100)/100 as t from jqdltb
显示为:83.13
浏览量:3
下载量:0
时间:
数据库drop的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库drop的用法的用法,希望对你们有用。
老大------drop
出没场合:drop table tb --tb表示数据表的名字,下同
绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,
例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义
drop table class,就是把整个班移除.学生和职务都消失
比如下面TestSchool数据库中有两张表[Classes]表和[Teacher]表
当执行下面代码之后
Classes表就被清楚,一干二净! 删除得非常暴力,作为老大实至名归
老二-----truncate
出没场合:truncate table tb
绝招:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,他比较温柔.
同样也是一个班,他只去除所有的学生.班还在,职务还在,如果有新增的学生可以进去,也可以分配上职务
删除内容很容易理解,不删除定义也很容易理解,就是保留表的数据结构
上图就表现了:删除内容
执行语句之后,发现数据表的结构还在,也就是不删除定义
至于释放空间,看下下面两幅图.你们就会明白的
右图:Id列标识列,因之前delete过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的)
经过truncate table Teacher 之后 再新增三条数据
右图:同样Id是标识列,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)
注意:truncate 不能删除行数据,要删就要把表清空
老三-----delete
出没场合:delete table tb --虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)
或
delete table tb where 条件
绝招:删除内容不删除定义,不释放空间。三兄弟之中最容易欺负的一个
然后关于delete的就不详细说明了,大家都懂的
关于truncate的小小总结:
truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。
但 truncate 比 delete速度快,且使用的系统和事务日志资源少。
delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back
1、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。
2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。
3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。
4、truncate 不能触发任何Delete触发器。
5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
6、不能清空父表
浏览量:2
下载量:0
时间:
数据库中top的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中top的用法的用法,希望对你们有用。
在编写程序中,我们可能遇到诸如查询最热门的5篇文章或返回满足条件的n条记录的情况,在SQL语言中,可以使用TOP关键字来实现。
TOP关键字在SQL语言中用来限制返回结果集中的记录条数,其使用方法有两种形式,下面做以详细的介绍:
(1)返回确定数目的记录个数
语法格式: SELECT TOP n <列名表> FROM <表名> [查询条件]
其中,n为要返回结果集中的记录条数
(2)返回结果集中指定百分比的记录数
语法格式: SELECT TOP n PERCENT <列名表> FROM <表名> [查询条件]
其中,n为所返回的记录数所占结果集中记录数目的百分比数
举例说明:
假设数据库中有一个表存储的为学生的信息(student):
(1)SELECT TOP 20 * FROM student --查询前20名学生的信息
(2)SELECT TOP 20 * PERCENT FROM student --查询学生表中前20%的学生信息
在具体使用过程中,可以结合条件子句和排序子句(如何进行排序)等实现较为丰富的功能,如:
(1)查询年龄(sage)大于23的前20名学生的信息
查询语句为:SELECT TOP 20 * FROM student WHERE sage > 23
(2)查询年龄较为大的前20名学生的信息
查询语句为: SELECT TOP 20 * FROM student ORDER BY sage DESC
在假设有一个表为新闻表(news),其列名定义如下:
ID 新闻编号, 整数型 自增字段
Title 新闻标题 , 字符串型(varchar)
Content 新闻内容,Text型
Hits 点击次数, 整数类型
AddDateTime 添加时间 ,字符串(YYYY-MM-DD)
则要求查询:
(1)查询最新10条新闻,只列出新闻标题和添加时间
SELECT TOP 10 Title, AddDateTime FROM News ORDER BY AddDateTime DESC
说明:如果新闻增加时是按时间发生的先后顺序添加的话,也可以按ID来排序(因为ID为自增字段,ID越大的应越新),即:
SELECT TOP 10 Title, AddDateTime FROM News ORDER BY ID DESC
(2)查询最热门的8条新闻的标题和点击次数
查询语句为: SELECT TOP 8 Title, Hits FROM News ORDER BY Hits DESC
浏览量:3
下载量:0
时间: