Oracle中SQL语言介绍以及基本用法
一.SQL语言支持如下类别命令
1.数据定义语言(DDL):CREATE(创建)、ALTER(更改) 和 DROP(删除)命令
1.1 CREATE (创建表,表空间,用户, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)
创建表空间的语法;
CREATE TABLESPACE tablespace_name DATAFILE '文件名称' [size integer[k|M]] [autoextend [off | on]]
这里状态 off 是 offline on是online
创建用户的语法:
CREATER USER user_name IDENTIFIED BY password [ DEFAULT TABLESPACE tablespace_name] [ TENPORARY TABLESPACE tablespace_name ]
这里 default 为缺省表空间 temporary 为临时表空间
创建表的语法;
CREATE TABLE tb_student
(
stuNum NUMBER(10), --学号
stuId Varchar2(18),
stuEmai varchar2(30),
stuAge Number(3),
stuSex VARCHAR2(10)
)
创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面
创建表时可以用中文的字段名, 但最好还是用英文的字段名
创建表时可以给字段加上默认值, 例如 DEFAULT SYSDATE 这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间
创建表时可以给字段加上约束条件 例如 不允许重复 UNIQUE, 关键字 PRIMARY KEY
1.2 ALTER (改变表, 索引, 视图等)
改变表的名称 ALTER TABLE 表名1 TO 表名2;
ALTER TABLE tb_student TO tb_student01;
在表的后面增加一个字段 ALTER TABLE表名 ADD 字段名 字段名类型;
ALTER TABLE tb_student ADD stuphone NUMBER;
修改表里字段的定义描述 ALTER TABLE表名 MODIFY (字段名 字段名类型);
ALTER TABLE tb_student MODIFY (stuphone number(11));
修改表的字段名
ALTER TBALE tb_student RENAME COLUMN stuphone to stuclass ;
删除表中的列:
ALTER TABLE tb_student DROP COLUMN stuclass; ----删除一列
ALTER TABLE tb_studrnt DROP (STUID,STUNAME); ----删除多列
给表里的字段加上约束条件 ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名); ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名);
把表放在或取出数据库的内存区 ALTER TABLE 表名 CACHE; ALTER TABLE 表名 NOCACHE;
1.3.DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)
删除表和它所有的约束条件 DROP TABLE 表名 CASCADE CONSTRAINTS;
2.数据操纵语言(DML):INSERT (插入)、SELECT(查看)、UPDATE(更新)、DELETE(删除)
2.1 INSERT(往数据表里插入记录)
INSERT INTO TABLE (字段1, 字段2,...) VALUES (值1,值2.....);
INSERT INTO table_1 (表1_字段1,表1_字段2,...) SELECT 表2_字段1,表2_字段2,... FROM table_2 ---将表2查询的字段 赋给表1;
CREATE TABLE table_1 AS SELECT 表2_字段1,表2_字段2,...FROM table_2 --创建一张表1 将表2查询到的字段赋给表1
insert..into...select...生成自定义数据
--一次插入多行数据,通过union关键字拼接查询
INSERT INTO stuinfo(stuname,stupass,stuage,birthday)
SELECT '王五','888888',20,to_date('1999-8-8','yyyy-Mm-dd') FROM dual UNION
SELECT '赵六','666666',25,to_date('195-8-20','yyyy-Mm-dd') FROM dual
2.2 DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused。
如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间 TRUNCATE TABLE 表名; 此操作不可回退. 为永久删除。
2.3 UPDATE(修改表的记录)
UPDATE table_name SET 字段1=值1,字段2=值2,....WHERE 条件
3.数据控制语言 (DCL) :GRANT(授予)和REVOKE(回收)命令
GRANT CONNERT,RESOURCE TO USER;
REVOKE CONNERT,RESOURCE TO USER;
提示:DDL在ORCLE中默认的无需提交 而DML 需要COMMIT提交才能把数据插入到数据库
Oracle中SQL语言介绍以及基本用法的更多相关文章
- ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...
- oracle中的exists 和not exists 用法 in与exists语句的效率问题
博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源( in与exi ...
- ORACLE 中的 锁 介绍
ORACLE 中的 锁 介绍 Oracle数据库支持多个用户同时与数据库进行交互,每个用户都可以同时运行自己的事务,从而也需要对并发访问进行控制.Oracle也是用“锁”的机制来防止各个事务之间的相互 ...
- 问题:oracle ROW_NUMBER()over;结果: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...
- Oracle PL/SQL 语言(Procedural Language/SQL)
Oracle PL/SQL 语言(Procedural Language/SQL)是结合了结构化查询与 Oracle 自身过程控制为一体的强大语言,PL/SQL 不但支持更多的数据类型,拥有自身的变量 ...
- oracle中sql语句的优化
oracle中sql语句的优化 一.执行顺序及优化细则 1.表名顺序优化 (1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边表或视图: Student_info (30000条数据)D ...
- Oracle中SQL语句分类
Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...
- 转:Oracle中SQL语句执行过程中
Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...
- oracle 中SQL 语句开发语法 SELECT INTO含义
oracle 中SQL 语句开发语法 SELECT INTO含义 在ORACLE中SELECT INTO是如何使用的,什么意思?和SQL SERVER的不一样? 和sqlserver的不一样sql ...
随机推荐
- 【杂题总汇】AGC027 C - ABland Yard
◆AGC027◆C - ABland Yard 终于知道为什么比赛的时候这么多人做C题了…… +传送门+(这是beta版的) ◇ 题目(自己翻译的,不要在意细节……) P.S. (@ 2018-9-2 ...
- LeetCode 删除链表倒数第N个节点
基本思路 定义两个指示指针a b 让a先行移动n+1个位置 若a指向了NULL的位置,则删除的是头节点(由于走过了n+1个节点刚好指在尾部的NULL上) 否则让b与a一起移动直至a->next, ...
- 通过Ambari2.2.2部署HDP大数据服务
node1 amari-server node2 amari-agent namenode1,datanode,resourcemanager,zk node3 amari-agent namen ...
- javascript--自定义弹出登陆窗口(弹出窗)
web开发中浏览器对象封装了诸如prompt.alert.confirm等弹出框,但是有的弹出框并不能满足开发需要,需要我们自己定义弹出框,诸如用户登陆框.消息提示框等.本文利用弹出用户登陆框示例,对 ...
- css实现下拉菜单功能(多中实现方式即原理)
引导思路: 1.需要用到的元素:position hover (z-index) 或(overflow)或(display)等等. 关键点就是div的溢出部分的处理. 2.实现过程: 2.1:就是要 ...
- Python 2.6.6升级到Python2.7.15
最近在使用Python处理MySQL数据库相关问题时,需要用到Python2.7.5及以上版本,而centos6.5等版本操作系统默认自带的版本为2.6.6,因此需要对python进行升级. Pyth ...
- Python入门学习笔记4:他人的博客及他人的学习思路
看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...
- ruby URI类
一. URI require 'uri' uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413") # ...
- makefile = 与 := 的区别
“=” make会将整个makefile展开后,再决定变量的值.也就是说,变量的值将会是整个makefile中最后被指定的值.看例子: x = foo y = $(x) bar ...
- DESCRIBEFIELD
実行時データ型識別.略語は RTTI です.プログラム実行時にデータ型を識別して処理を行う仕組みです.. DESCRIBE FIELD命令を使用 DESCRIBE FIELD命令を使用して.変数のデー ...