您的位置:首页 > 数据库

SQL语言

2015-06-24 22:00 260 查看
SQL语句分类
SQL语句按照功能分5类:数据查询语句 、数据操作语句、数据定义语句、事务控制语句和数据控制语句。下面分别介绍各类语句的详细内容。
(1)数据查询语言(DQL)
SELECT :该语句功能是从数据库中获得用户数据
(2)数据操作语言(DML)
INSERT:该语句功能是向表中添加记录
UPDATE:该语句的功能是更新表中的数据,通常和WHERE 条件语句一起使用
DELETE:删除表中的数据
(3)数据定义语言(DDL)
CREATE:创建数据库对象如:表、索引、视图。
ALERT:改变系统参数,如改变SGA大小等。
DROP:删除一个对象,
RENAME:重命名一个对象。
TRUNCATE:截断一张表。
(4)事务控制语句
COMMIT:用于提交由DML语句操作的事务。
ROLLBACK:用于回滚DML语句改变了的数据。
(5)数据控制语言(DCL)
GRANT:用于授予用户访问某对象的特权。
REVOKE:用于收回用户访问某对象的特权。
SQL语句的查询语句
(1)SELECT 语句的语法及书写要求
SELECT*|{[DISTINCT] [COLUMN] |expression [alias], ……} FROM table;
下面介绍 关键字、子句和语句,区别如下:
关键字:一个单独的SQL元素,如SQL 、FROM ……。关键字不能简写,推荐大写。
子句:是SQL语句的一部分,不可执行。如SELECT *
语句:由一个或多个子句组成,可执行。
(2)简单的查询



WHERE子句



列标题的默认显示格式:



字符和日期型的列标题靠显示宽度的左边。
数字型的列标题靠显示宽度的左边。
默认的列标题都是大写。

算数运算符及使用(+、-、*、/)

DISTINCT运算符使查询的结果没有重复内容。



连接运算符及使用



(3)SQL书写规范:
SQL语句的关键字要大写,对象名小写。
缩进对齐,便于阅读。
每个子句一行。
(4)单行函数
单行函数分为字符型函数、数字型函数和日期型函数。以下介绍三类函数。
字符型函数:
LOWER(column|expression):把字符串转换成小写。
UPPER(column|expression):把字符串转换成大写。
INITCAP(column|expression):把字符串首字母大写。
CONCAT(column1|expression1,column2|expression2):用于连接两个字符串或连接两个列中的数据。
SUBSTR(column|expression,m[,n]):从一个字符串获取一个子串,该子串从第m个字符开始,到n个字符结束,
若不指定n则从m个字符开始到expression表达式的结尾。
LENGTH(column|expression):计算字符串中字符个数。
INSTR(column|expression,'string'[,m],[,n]):在字符串中搜素字符串‘string‘,参数m、n指定搜素开始位置和结束位置。该函数返回一个数字
LPAD(column|expression,n,'string'):在结果中左边补充“'string'输出结果中增加一些补充信息,使输出结果更具可读性。RPAD()
TRIM(leading|trailing|both,trim_characterFROM Trim_source):剪切个字符,输出一个字符串。参数leading|trailing|both分分别代表函数从源字符串头部、尾部、两边删除要剪切的字符。默认both。
REPLACE(text,search_string,replacement_string):该函数把源字符串中的某个字符串search_string替换为另一个字符串replacement_string。
数字型单行函数:
ROUND(column|expression,n):处理数字四舍五入
TRUNC(column|expression,n):截断一个数字
MOD(m,n):求余数
日期型单行函数:
SYSDATE:返回系统当前时间
MONTHS_BETWEEN(date,date):参数为两个日期,得到两个日期之间的月数.
ADD_MONTHS(date,n):把n个月添加到日期型数据上,返回结果仍为日期型数据。
NEXT_DAY(date,string):该函数为一个日期型数据,输出该日期的下一个指定的日期。
LAST_DAY(date):返回参数中日期的最后一天的日期。

(5)空值处理函数
NVL(expr1,expr2):若expr1值为NULL,则返回expr2,否则返回expr1,
其中expr1和expr2数据类型需一致
NVL2(expr1,expr2, expr3):若expr1值为NULL,则返回expr3,若expr1值不为NULL,则返回expr2,
NULLIF(expr1,expr2):若两者都相等返回NULL,否则返回若expr1
COALESCE(expr1,expr2,……exprn):返回该函数中第一个不为NULL的表达式的值。
(6)条件表达式
CASE expr WHENcomparison_expr1 THEN return_expr1
WHEN comparison_expr2 THENreturn_expr2
WHEN comparison_exprn THENreturn_exprn
Else else_expr end
比较expr和comparison_expr1 相等返回return_expr1,
否则比较expr和comparison_expr2
……若都不满足,则返回else_expr
DECODE(col|expression,search1,result1,search2,result2,……default)
先判断search1是否等于col|expression,若相等,返回result1,否则判断search2是否等于col|expression
依次判断,若都不等,返回默认值。
(7)分组函数
分组函数是表中多行进行操作,每组返回一个计算结果。常用的分组函数包括:
AVG:计算每组平均值,忽略NULL值。
SUM:计算没组的和
MAX:计算最大值
MIN:计算最小值
COUNT:计算得到的返回的行数。
GROUP BY子句:针对组进行展示
分组函数的嵌套使用:如MAX(AVG(col))
HAVING子句:针对组进行条件限制。
(8)数据操纵语言(DML)
INSERT语句 :向表中添加一条数据
INSERT INTOtablename (column[,column……]) VALUES (value,[,value……]);
UPDATE语句 :更新表中的数据
UPDATE tablenameSET column=value [column=value……,] [WHERE condition];
DELETE 语句 :删除不需要的记录
DELETE [FROM] tablename [WHERE condition];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: