❶ sql语句的select用法
因为typeld是字符类型的,如果是数值型的就回这么写'+typeld+'
举个列子如果从A 表查询到typeld的值是aaa,当转变为可执行的语句的时候,sum这段会变成
sum(case when typeld='aaa' then usermoney else 0 end)
如果按数值型的写法'+typeld+'
就会变成sum(case when typeld=aaa then usermoney else 0 end)
这里aaa是字符型数据,语法就回出错了。
至于单引号和双引号的问题,是这样的:
两个单引号内,如果需要表示字符的单引号,单引号就要写成两个单引号。
给你几个语句执行看看结果就知道了
select '''' 这里是四个单引号 ,结果一个单引号
select '"' 这里是两单引号内含一个双引号 ,结果双引号
select ''' 这里是三个单引号 ,结果 报错了
❷ sql中select的作用是
作用就是从数据库中检索数据,并将查询结果返回给用户。
Select语句由select子句(查询内容)、from子句(查询对象)、where子旬(查询条件)、order by子句(排序方式)、group by子句(分组方式)等组成。
计算列出在FROM中的所有元素。(FROM 中的每个元素都是一个真正的或者虚拟的表。)如果在 FROM 列表里声明了多过一个元素,那么他们就交叉连接在一起。
如果声明了WHERE子句,那么在输出中消除所有不满足条件的行。如果声明了GROUP BY子句,输出就分成匹配一个或多个数值的不同组里。如果出现了HAVING子句,那么它消除那些不满足给出条件的组。
(2)sql的select使用扩展阅读:
DISTINCT从结果中删除那些重复的行。DISTINCT ON 删除那些匹配所有指定表达式的行。ALL (缺省)将返回所有候选行,包括重复的。
如果给出了LIMIT或者OFFSET子句,那么 SELECT 语句只返回结果行的一个子集。
如果声明了 FOR UPDATE 或者 FOR SHARE 子句, SELECT 语句对并发的更新锁住选定的行。
你必须有 SELECT 权限用来从表中读取数值。使用 FOR UPDATE FOR SHARE 还要求UPDATE权限。
❸ SQL中的SELECT命令的功能是
从表或视图中检索符合条件的数据。
select后面跟的是数据项列表
❹ SQL语句 select操作
select 语句 基本格式如下
select [列名],[列名]...[或*] from [表名] where 查询条件 group by 分组条件 order by 排序条件
步骤阅读
5
用法四,对查询的结果按条件排序
select SUBSTRING(city,1,1),count(1) from city group by SUBSTRING(city,1,1)
order by COUNT(1) desc
对上述分组结果,按数据排序,由大到小
❺ 如何用select语句在SQL数据库中查询符合指定条件的记录
描述:sql server 数据库中使用条件查询就可以实现符合查询条件的数据记录显示出来。查询语法为:select * from 表名 where 字段名=条件(语法说明:select后面的*号代表的是所有字段显示出来。条件出的条件如果为字符型条件需要使用单引号引起来,如果是int类型不用引号),以下以某数据中的一张数据表user_user为例子,分别使用两种查询方式:
1、完整条件查询语法为:select * from 表名 where 字段名=条件
查询语句:select * from user_user where Dname='管理员'
❻ SQL Select 语句的用法
以下是代码片段:
SQL: select * into b from a where 1<>1说明:拷贝表(拷贝数据,源表名:a 目标表名:b)以下是代码片段:
SQL: insert into b(a, b, c) select d,e,f from b;说明:显示文章、提交人和最后回复时间以下是代码片段:
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b说明:外连接查询(表名1:a 表名2:b)以下是代码片段:
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c说明:日程安排提前五分钟提醒以下是代码片段:
SQL: select * from 日程安排 where datediff(’minute’,f开始时间,getdate())>5
说明:两张关联表,删除主表中已经在副表中没有的信息
SQL: 以下是代码片段:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid 说明:--
SQL:
以下是代码片段:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,’YYYY/MM’) = TO_CHAR(SYSDATE, ’YYYY/MM’)) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,’YYYY/MM’) =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, ’YYYY/MM’) ¦¦ ’/01’,’YYYY/MM/DD’) - 1, ’YYYY/MM’) Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND B
WHERE A.NUM = B.NUM说明:--
SQL: 以下是代码片段:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称=’"&strdepartmentname&"’ and 专业名称=’"&strprofessionname&"’ order by 性别,生源地,高考总成绩说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SQL:
以下是代码片段:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, ’yyyy’) AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’01’, a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’02’, a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’03’, a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’04’, a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’05’, a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’06’, a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’07’, a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’08’, a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’09’, a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’10’, a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’11’, a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’12’, a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, ’yyyy’)说明:四表联查问题:SQL: 以下是代码片段:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....说明:得到表中最小的未使用的ID号
SQL: 以下是代码片段:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
❼ SQL Select 语句的用法
以下是代码片段:
SQL:
select
*
into
b
from
a
where
1<>1说明:拷贝表(拷贝数据,源表名:a
目标表名:b)以下是代码片段:
SQL:
insert
into
b(a,
b,
c)
select
d,e,f
from
b;说明:显示文章、提交人和最后回复时间以下是代码片段:
SQL:
select
a.title,a.username,b.adddate
from
table
a,(select
max(adddate)
adddate
from
table
where
table.title=a.title)
b说明:外连接查询(表名1:a
表名2:b)以下是代码片段:
SQL:
select
a.a,
a.b,
a.c,
b.c,
b.d,
b.f
from
a
LEFT
OUT
JOIN
b
ON
a.a
=
b.c说明:日程安排提前五分钟提醒以下是代码片段:
SQL:
select
*
from
日程安排
where
datediff(’minute’,f开始时间,getdate())>5
说明:两张关联表,删除主表中已经在副表中没有的信息
SQL:
以下是代码片段:
delete
from
info
where
not
exists
(
select
*
from
infobz
where
info.infid=infobz.infid 说明:--
SQL:
以下是代码片段:
SELECT
A.NUM,
A.NAME,
B.UPD_DATE,
B.PREV_UPD_DATE
FROM
TABLE1,
(SELECT
X.NUM,
X.UPD_DATE,
Y.UPD_DATE
PREV_UPD_DATE
FROM
(SELECT
NUM,
UPD_DATE,
INBOUND_QTY,
STOCK_ONHAND
FROM
TABLE2
WHERE
TO_CHAR(UPD_DATE,’YYYY/MM’)
=
TO_CHAR(SYSDATE,
’YYYY/MM’))
X,
(SELECT
NUM,
UPD_DATE,
STOCK_ONHAND
FROM
TABLE2
WHERE
TO_CHAR(UPD_DATE,’YYYY/MM’)
=
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,
’YYYY/MM’)
¦¦
’/01’,’YYYY/MM/DD’)
-
1,
’YYYY/MM’)
Y,
WHERE
X.NUM
=
Y.NUM
(+)
AND
X.INBOUND_QTY
+
NVL(Y.STOCK_ONHAND,0)
<>
X.STOCK_ONHAND
B
WHERE
A.NUM
=
B.NUM说明:--
SQL:
以下是代码片段:
select
*
from
studentinfo
where
not
exists(select
*
from
student
where
studentinfo.id=student.id)
and
系名称=’"&strdepartmentname&"’
and
专业名称=’"&strprofessionname&"’
order
by
性别,生源地,高考总成绩说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SQL:
以下是代码片段:
SELECT
a.userper,
a.tel,
a.standfee,
TO_CHAR(a.telfeedate,
’yyyy’)
AS
telyear,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’01’,
a.factration))
AS
JAN,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’02’,
a.factration))
AS
FRI,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’03’,
a.factration))
AS
MAR,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’04’,
a.factration))
AS
APR,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’05’,
a.factration))
AS
MAY,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’06’,
a.factration))
AS
JUE,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’07’,
a.factration))
AS
JUL,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’08’,
a.factration))
AS
AGU,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’09’,
a.factration))
AS
SEP,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’10’,
a.factration))
AS
OCT,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’11’,
a.factration))
AS
NOV,
SUM(decode(TO_CHAR(a.telfeedate,
’mm’),
’12’,
a.factration))
AS
DEC
FROM
(SELECT
a.userper,
a.tel,
a.standfee,
b.telfeedate,
b.factration
FROM
TELFEESTAND
a,
TELFEE
b
WHERE
a.tel
=
b.telfax)
a
GROUP
BY
a.userper,
a.tel,
a.standfee,
TO_CHAR(a.telfeedate,
’yyyy’)说明:四表联查问题:SQL:
以下是代码片段:
select
*
from
a
left
inner
join
b
on
a.a=b.b
right
inner
join
c
on
a.a=c.c
inner
join
d
on
a.a=d.d
where
.....说明:得到表中最小的未使用的ID号
SQL:
以下是代码片段:
SELECT
(CASE
WHEN
EXISTS(SELECT
*
FROM
Handle
b
WHERE
b.HandleID
=
1)
THEN
MIN(HandleID)
+
1
ELSE
1
END)
as
HandleID
FROM
Handle
WHERE
NOT
HandleID
IN
(SELECT
a.HandleID
-
1
FROM
Handle
a)
❽ 数据库中select的用法
数据库中select的用法的用法你知道吗?下面我就跟你们详细介绍下数据库中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"
❾ SQL之SELECT语句
检索数据的SQL语句,就是SELECT语句。
使用SELECT语句可以从表中检索出一个或多个数据列。
如何使用SELECT语句,我们应该告诉SELECT语句从什么地方选择什么。
这是一个简单的SELECT语句,表示从procts表内检索一个名为prod_name的列。
所需要的列名在SELECT关键字后给出,FROM关键字指出检索数据的表名。
要想从一个表中检索多个列,使用相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。
SELECT语句通过在列名的位置使用星号(*)通配符,可以检索所有的列而不必逐个列出它们。
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。
❿ SQL中的SELECT命令的功能是
“查询”操作指令。