1.登陆数据库 在CMD窗口 sqlplus username/password@databaseName [as sysdba]
2.数据库表的创建、修改删除
(a).创建数据库表
CREATE TABLE tableName(columnName1 dataType [constraint],columnName2 dataType [constraint],...,columnNamen dataType [constrait]);
CREATE
TABLE
test1(
ID
NUMBER
(
5
)
PRIMARY
KEY
,username
VARCHAR2
(
15
)
NOT
NULL
,age
NUMBER
(
3
)
CHECK
(age>
0
));
(b).数据库表的修改
添加列
ALTER
TABLE
tableName
ADD
(columnName dataType [
constraint
]);
例:
ALTER
TABLE
test1
ADD
(sex
CHAR
(
2
)
CHECK
(sex=
'男'
OR
sex=
'女'
))
修改列
ALTER
TABLE
tableName
MODIFY
(columnName dataType [
constraint
]);
例:
ALTER
TABLE
test1
MODIFY
(username
VARCHAR2
(
28
)
UNIQUE
);
(c).数据库表的删除 DROP TABLE tableName;
例:
DROP
TABLE
test1;
3.行的插入、删除、修改与提交、回滚
(a).行的插入 INSERT INTO tableName(columnName1,columnName2,...,columnNamen) VALUES(value1,value2,...,valuen);
例:
INSERT
INTO
test1(
ID
,username,age,sex)
VALUES
(
1
,
'张三'
,
22
,
'男'
);
(b).行的删除 DELETE tableName [conditions]
(c).行的修改 UPDATE tableName SET columnName1=value1,columnName2=value2,...,columnName3=value3 [conditions]
(d).提交修改 COMMIT;
(e).回滚操作 ROLLBACK;
4.行的查询 SELECT *|{[DISTINCT] columnName|expression [alias],...} FROM tableName [conditions];
例:
SELECT
*
FROM
test1 t
WHERE
t.id =
3
;
SELECT
5
+
4
FROM
dual;
5.where 条件
IS
[
NOT
]
NULL
[
NOT
]
BETWEEN
...
AND
...
6.order by 排序 ORDER BY 列名1 [ ASC | DESC ],列名2 [ ASC | DESC ],…………
汉字的顺序,基本是按照汉语拼音的顺序比较。
如果列有列名,在排序时可以使用列原来的名字,也可以使用列的别名:【where语句条件中不能使用别名】
7.函数
单行函数与多行函数的区别:单行函数只对一行数据起作用,它也是针对每行数据,分别进行计算。在函数的参数是表的某一列时,
多行函数把列中所有行的数据看作一个整体,对所有行一起操作。 而单行函数的参数是表的某一列时,
列中每一个数据,都被认为
是一个个体,单行函数对这个个体进行计算,返回结果。
常见函数:
(a).字符函数
LOWER
(
column
|expression) : 转换字符值为小写
UPPER
(
column
|expression) : 转换字符值为小写
INITCAP
(
column
|expression) :转换每个单词的首字母值为大写,所有其它值为小写
SUBSTR
(
column
|expression,m [,n]):字符串截取函数。从第M个字符处开始,截取N个字符。如果N省略,则从M开始截取 到结尾。
LENGTH
(
column
|expression) :返回字符串的长度。
LENGTHB
(
column
|expression) :返回字符串的长度【按照 字节进行统计】。
INSTR
(
column
|expression,‘
string
’, [,m], [n] ) :字符串的查找。在column|expression (也就是列或表达式 中),查找String。
返回Strgin第一次出现的位置,m表示开始查找的位置,默认缺省为第一个字节位置,n表示查找第n次出 现带查找字符串的位置。
LPAD
(
column
|expression, n,
'string'
)
RPAD
(
column
|expression, n,
'string'
) 这两个分别是左、右填充函 数。在列于表达式的左、
右端填充若干个String,使字符串的总长度为N。
TRIM
(
leading
|
trailing
|
both
trim_character
FROM
trim_source) :从trim_source的头(
leading
)、尾 (
trailing
)或头尾(
both
),
删除和trim_character一样的字符。
REPLACE
(text, search_string, replacement_string):将text中的search_string替换为replacement_string 。
(b).数字函数
ROUND
(
column
|expression, n) :对列或表达式的值,以四舍五入的方式保留n 位小数位。如果n 被忽略,无小数位,相当 于n为0时的情况。也就是n的默认值为0。
TRUNC
(
column
|expression,n) :截断列或表达式的值,保留n 位小数,在截断时不四舍五入。如果n 被忽略,那么n 默认 为0。截断的意义就是不四舍五入,直接舍去。
MOD
(m,n) :求余函数。返回m 除以n 的余数
(c).日期函数
设置本地的日期显示格式:
alter
session
set
nls_date_format=
'yyyy-mm-dd hh24:mi:ss'
;
一个日期型的数据,共包括七部分,一般需要7个字节。在默认情况下,只要你省略的部分,ORACLE会自动为你补上去0。
1
.日期和日期,只能做减法运算,结果是两个日期间的天数
日期加减整数,结果还是一个日期。整数是针对日的,整数是日,
1
就是1天。如果1/
24
,也就是.041666667,就是一个小时了。
MONTHS_BETWEEN(date1, date2):计算date1 和date2 之间的月数
ADD_MONTHS(
date
, n):添加n 个日历月到date。n 的值必须是整数,但可以是负的。
NEXT_DAY(
date
, N):计算在date 之后的下一周由N所指定的第几日的日期。
LAST_DAY(
date
):计算包含date 的月的最后一天的日期。
ROUND
(
date
[,‘fmt’]):从年、月、日开始对日期进行四舍五入,可选项FMT有三种取值,分别是YEAR:从年开始四舍五入,
MONTH
:从月,DAY从日。如果省略FMT选项,将从小时开始四舍五入。
(d).装换函数
TO_CHAR(日期或数字,‘为日期或数字指定的格式’) 可以把一个数字或日期,转换为字符串。
TO_NUMBER(字符) 字符转数字
(e).通用函数
NVL
(表达式1,表达式2): 转换空值为一个实际值。如果表达式1值为空,NVL将返回表达式2的值作为结果。如果表达式1不为 空,以表达式1的值作为结果。
NVL2
(表达式1,表达式2,表达式3) 此函数比NVL更复杂些。它首先判断表达式1的值,如果表达式1非空,函数返回表达式2的 值作为结果。如果表达式1
为空,
NVL2
返回表达式3的值为结果。表达式1 可以是任意数据类型、运算式子。
NULLIF
(表达式1,表达式2) 比较两个表达式,如果相等返回空;如果不相等,返回第一个表达式。
COALESCE
(表达式1,表达式2,表达式3,…………,表达式n) 返回表达式列表中的第一个值为非空的表达式的值。
Decode
(expression,key1,value1,key2,value2,…,keyn,valuen)当表达式的值等于key1时,返回value1的值作为函 数的值,如果表达式的值等于key2,则将value2
的只作为函数值返回,以此类推。。。,如果后面的key与value的个数为奇 数,则认为最后一个值是前面所有key均不匹 配的情况下的函数返回值。
CASE
判断表达式
WHEN
表达式1
THEN
结果表达式1
WHEN
表达式2
THEN
结果表达式2
WHEN
表达式3
THEN
结果表达式3
…………
ELSE
结果表达式N
END