CHARINDEX()
The CHARINDEX() function searches for a substring in a string, and returns the position. If the substring is not found, this function returns 0.
SELECT CHARINDEX(‘t’, ‘Customer’) AS MatchPosition;
4
SQL执行顺序
from
where
group by
having
select
order by
DROP、DELETE、TRUNCATE
drop完全删除表,包括表结构
delete是删除表数据,保留表的结构,而且可以加where,只删除一行或者多行
truncate 只能删除表数据,会保留表结构,而且不能加where
处理效率:drop > truncate> delete,论清理表数据的速度,truncate一般比delete更快
delete不影响所用extent,高水线保持原位置不动;truncate会将高水线复位
DDL、DML、DCL
- DDL: CREATE, ALTER,DROP
- DML: SELECT, INSERT, UPDATE, DELETE
- DCL: GRANT, REVOKE, DENY
有一张学生成绩表sc(sno 学号,class 课程,score 成绩),请查询出每个学生的英语、数学的成绩(行转列,一个学生只有一行记录)
法一:
SELECT
sno,
CASE
WHEN class = 'english' THEN score
ELSE 0
END,
CASE
WHEN class = 'math' THEN score
ELSE 0
END
FROM
sc
WHERE
class IN ('english' , 'math')
GROUP BY sno;
法二:
SELECT
sno,
SUM(IF(class = 'english', score, 0)) AS english,
SUM(IF(class = 'math', score, 0)) AS math
FROM
sc
WHERE
class IN ('english' , 'math')
GROUP BY sno
运动会比赛信息的数据库,有如下三个表:
运动员ATHLETE(运动员编号 Ano,姓名Aname,性别Asex,所属系名 Adep), 项目 ITEM (项目编号Ino,名称Iname,比赛地点Ilocation), 成绩SCORE (运动员编号Ano,项目编号Ino,积分Score)。
写出目前总积分最高的系名及其积分,SQL语句实现正确的是:
SELECT
Adep, SUM(Score)
FROM
ATHLETE