数据库的最基本的东西就是增删改查 主要需要掌握的关键字有 SELECT、 FROM 、WHERE、 GROUP BY 、 HAVING、 ORDER BY、 CREATE、 DROP 、ALTER、 GRANT、 REVOKE
一、数据查询
- 基本语法 SELECT [DISTINCT] * | 列名称[别名],列名称[别名],…… FROM 表名称【别名】WHERE 条件 ;
- 最基本的语句为 SELECT 列名 FROM 表名 WHERE 条件;
- 其中 条件包括
关系运算符: > ,<,>=,<=,<>,!=
逻辑运算符: AND OR NOT
范围运算符 BETWEEN ... AND IN
判断 IS NULL ,IS NOT NULL
模糊查询 LIKE "_","%"
4. 排序查询
在 WHERE 条件 后 添加 ORDER BY 字段 (或是别名)[ASC | DESC ],字段(或是别名) [ASC | DESC ],…… ;(排序在整个过程最后才会处理)
5.联表查询
消除笛卡尔积的影响 :
selecet * from emp ,dept where emp.eno = dept.eno ; 性能很差 ,特别是数据量大的时候
内连接(等值连接):所有满足条件的数据都会被显示出来;
where emp.eno = dept.eno ;
外连接(左外连接,右外连接,全外连接):控制左表与右表的数据是否全部显示
|-左外连接 字段 = 字段(+);where emp.eno = dept.eno(+) ; 注:(+)为Oracle特有
|-右外连接 字段(+)= 字段 ;where emp.eno(+) = dept.eno ;
*注 自己发明的 自连接 FROM emp e ,emp m where e.mgr = m.empno ;
1999SQL 标准
SELECT [DISTINCT] * | 列[别名]
from 表名称1
[CROSS JOIN 表名称2] 交叉连接(有笛卡尔积)
[NATURAL JOIN 表名称2] 自然连接(自动取消笛卡尔积)
[JOIN 表名称 ON (条件)| USING(字段)]
[LEFT | RIGHT | FULL OUT JOIN 表名称2]
6.分组查询
SELECT [DISTINCT] 分组字段(别名),... | 统计函数 ⑤
FROM ①
WHERE *不可以用统计函数 ②
GROUP BY 分组字段 ③
HAVING 分组后的过滤条件,可以用统计函数 (where可以不用了) ④
ORDER BY 字段 [ASC | DESC] ⑥
二、数据增加
- 最基本的语句为 INSERT INTO 表名(列1,列2,列3……) VALUE (值1,值2,值3……) ;
三、数据更新
- 最基本的语句为 UPDATE 表名 SET 列名=新值 WHERE 列名=旧值 ;
四、数据删除
- 最基本的语句为 DELECT FROM 表名 WHERE 列名称 = 值 ;
五、数据表的操作命令
六、数据库的一些操作命令
1、查询表结构: DESC 表名;
select t.column_name as 字段名,
t.data_type as 字段类型
from USER_TAB_COLS t where TABLE_NAME ='table_name';
2、设置列的别名 在列或是表后直接加上别名即可。
3、数据库备份
七、其他
1.统计函数 count()、max()min()sum() avg()
函数名称 | 返回类型 | 描述 |
upper(列 | 字符串) | 字符串 | 将传人字符串转为大写 |
lower(列 | 字符串) | 字符串 | 将传人字符串转为小写 |
initcap(列 | 字符串) | 字符串 | 开头首字母大写,其他为小写 |
length(列 | 字符串) | 数字 |
取得字符串长度 |
substr(列 | 字符串,开始索引,[长度]) | 字符串 | 字符串截取 |
replace(列 | 字符串,旧内容,新内容) | 字符串 | 字符串替换 |
函数名称 | 返回类型 | 描述 |
round(列|数字[,小数位]) | 数字 | 四舍五入 |
trunc(列|数字[,小数位]) | 数字 | 数据截取 |
mod(列|数字,列|数字) | 数字 | 求模(余数) |
函数名称 | 返回类型 | 描述 |
add_month(列|日期,月数) | 日期 | 在指定日期添加N个月后的日期 |
months_between(列|日期,列|日期) | 数字 |
两个日期之间的天数 (注:时间-时间 如果跨度大,天数是不准确的) |
last_day(列|日期) | 日期 | 月最后一天 |
next_day(列|日期,星期X) | 日期 | 下一个时间点 |
2.查询结果合并 : UNION 、UNIONALL 、MINUS(差集)、INTERSECT(交集)
创建表空间
--创建表空间
create tablespace 表空间名称 datafile '数据文件路径' size 表大小 autoextend on 开启自动增长 next 1m 自动增长的大小;
create tablespace mid1 datafile '/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/mid1.dbf' size 10m autoextend on next 1m;
创建分区表
--创建分区表
--创建分区表
create table 表名(mid int,name varchar2(50),age int )
partition by range(mid)
(partition 分区名 values less than (10) tablespace 表空间名称,
partition 分区名 values less than (20) tablespace 表空间名称
);
create table testpartition(mid int,name varchar2(50),age int ) partition
by range(mid)
(partition mid1 values less than (10) tablespace mid1,
partition mids2 values less than (20) tablespace mid2
);