SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。
SQL包括了所有对数据库的操作,主要是由4个部分组成,一个是DML(数据库查询语句),一个是DDL(数据库定义语句),一个是数据控制,另一个是嵌入式SQL语言的使用规定。
一、DML数据库查询语句
SELECT,UPDATA,INSERT,DELETE
(1)SELECT
a. 查所有纪录
例如:SELECT * FROM 表
b. 条件是字符
例如:SELECT * FROM 表 WHERE NAME = ' " & myname & " '
c. 条件是数字
例如:SELECT * FROM 表 WHERE ID = " & myid & " 数字
d. 查询所有的表
例如:SELECT * CAT 查询所有的表
e. 查询纪录的前三条
例如:SELECT * FROM 表 WHERE Rownum<4
f. 取oracle服务器的系统时间
例如:SELECT sysdate FROM dual
g. SELECT count(RowID) Rowcount FROM 表1
如果查不出数据时候,结果是0
h. 替换
例如:SELECT REPLACE(’JACK and JUE’,’J’,’BL’) "Changes" FROM DUAL;
(2)UPDATE
UPDATE 表 set 字段 = ‘表达式' where 条件
(3)INSERT
INSERT INTO 表(字段1,字段2,....) value (’常量1’,‘常量2’,...)
(4)DELETE
DELETE FROM 表 WHERE 条件
二、DDL数据库定义语句
(1)CREATE
建立一个数据库,定义一个存储空间
CREAT SCHEMA <模式名> AUTHORIZATION <用户名>
基本表的创建
CREAT TABLE SQL 模式名.基本表名
例如:
CREAET TABLE S(S# CHAR(3) NOT Null,
SN CHAR(15),
......);
(2)ALTER
基本表结构的修改
ALTER TABLE 基本表名 ADD/ DROP (增加/删除) 列名 类型名(增加时写出)
ALERT Table table
ADD [column] column
ALERT [column] column
ReName [column] column To newcolumn
ReName to newtable
Add table constraint definition
ALTER TABER S ADD SEX SMALLINT
(3)DROP
基本表的撤消
DROP TABLE 基本表名 [CASCADE|RESTRICT]
例如:
DROP TABLE T1
用户的撤消
DROP
USER 用户名
三、数据控制
(1)conn
连接一个用户
例如:
conn 用户名/密码@主机字符串
四、SQL函数:
字符函数
(1)Assii(c)/chr(i)
例如:Assii('A') = 64,chr(65)='A'
(2)concat(c1,c2) = c1||c2
(3)initcap(c) 第一位大写
(4)instr/instrb(c1,c2,i,j)
例如:instr('abcdabcd','ab',2,1)
(5)length/lengthb(c)
(6)lower/upper(c)
(7)lpad/rpad(c1,i,c2) 在左或右加c2加
(8)ltrim/rtrim/trim(C1,c2) 除去空字符
(9)replace(c1,c2,c3)查找c1中c2,并有c3替换,如无c3则去掉c2
(10)substr/substrb(c1,i,j) 截c1
(11)translate(c1,c2,c3)返回字符在字符串的位置
例如'eg'在'abcdefg'中返回5,7
(1)abs(n) 绝对数
(2)sin/sinh/asin(θ),cos/cosh/acos(θ) 正弦/双正弦/反正弦
(3)floor/ceil(n) 返回比入数大的最小整数
(4)exp/ln(n)
(5)log(n1,n2)
(6)mod(n1,n2)
(7)power(n1,n2)
(8)sqrt(n)
(9)round(n1,n2)
例如:round(1235.1235,3)=1235.124
round(1235.1235,-3)=1200
(10)trunl(n1,n2) 只舍不入
(11)sign(n) 返回-1,0,1看正负
日期函数
(1)Add_months(d,i) 加月
例如:1/30变成2/26
(2)last_day(d) 返回d月的最后一天是几号
(3)months_between(d1,d2) 两个月中有几个月
(4)new_time(d,t21,t22) d时间在t21指定换算到t22
(5)next_day(d,dow) 下星期是几号
(6)round(d,fmt) 四舍五入,fmt表示日期格式精确到哪一位
半天,半小时,半月和半分为分界
(7)trunc(d,fmt) 只舍不入
(8)sysdate 返回系统日期
变换函数
(1)to_char()
(2)to_data()
(3)to_number()
(4)DY-天缩写
DAY-天全称
D-天(1-7)
DD-月天数(1-31)
DDD-年天数(1-365)
W-月几个星期
WW-年几个星期
MM-月
MON-月缩写
MONTH-月全称
RM-以罗马字返回
yyyy-返回年
syyyy-返回字符年(公元1999)
HH1-返回12小时制
HH12-同上
HH24-返回24小时制
MI-分钟
SS-秒
SSSSS-返回一天中的最几秒
9-代表一个数字,无的话用空格代替
0-代表一个数字,无的话用0代替
1/G-千分号
$/L-指定加$获L
FM-去掉空格
EEEE-科学计数法
MI-把负号放在后面
RN-大写罗马数字
rn-小写罗马数字
其它函数
(1)decode(x,mi,ri,m2,r2,.....,default) 判断取值函数
例如:decode(f1,1,2,2,4,3,9,0)
(2)greatest/least(epp_list)
例如:epp_list 1,2,3,4,5 里面 1是least,5是greast
(3)Uid 用户ID
User 用户名
Userenu 用户环境 isDBA/sessionID/ISUSTANCE/language/lang/Terminal
主函数
(1)avg 平均数
(2)count 计算
(3)Max/Min 最大最小
(4)stddev 标准差
(5)variance 标准差
(6)sum 合计
例如: Select class,count(student),avg(chu),sum(chu) from XX group by class