SQL语句大全-程序员必备(Oracle版)
来源:互联网 发布:提高手机网速软件 编辑:程序博客网 时间:2024/05/17 03:40
一、创建表空间、用户及授权
Oracle数据库创建时,会自动创建一些默认表空间,他们不仅包含用来管理用户数据的表空间,也包括用来管理Oracle系统内部数据(如数据字典)的表空间。以下是 Oracle11g 默认创建的主要表空间:
查看已创建的表空间名称
SQL>select tablespace_name from dba_tablespaces;
每个表空间(逻辑存储结构)至少包含一个数据文件(物理存储结构)
(1)SYSTEM系统表空间:用于存放Oracle系统内部表和数据字典的数据,如表名、列名、用户名等。Oracle不推崇将用户创建的表、索引等数据对象存放在系统表空间中。可根据需要追加系统表空间的大小,即系统表空间中的数据文件个数并非固定不变。
要在数据库打开的前提下通过dict查看数据库中数据字典的信息
SQL>col table_name for a30;
SQL>col comments for a30;
SQL>select * from dict;
(2)SYSAUX辅助表空间:Oracle11g新增的,充当SYSTEM表空间的辅助表空间,降低系统表空间的负荷。存储除数据字典以外的其他数据对象,一般不存储用户的数据,由系统内部维护。
(3)UNDO撤销表空间:用于存储撤销信息。当用户对数据表进行修改操作(插入、修改、删除等)时,系统自动使用撤销表空间来临时存放修改前的旧数据。当所做的修改操作完成并提交后,Oracle根据系统设置的保留时间长度来决定何时释放掉撤销表空间的部分空间。
(4)USERS用户表空间:Oracle建议用户使用的表空间。Oracle系统的样例用户Scott对象就存放在用户表空间中。
查看某张表的字段和及类型
SQL>describ dba_users;
查看某个用户所在的默认表空间
奇怪的是
SQL>select default_tablespace /* from dba_users where username=’scott’;
只要加上where 子句就会“未选定行”,即没查到数据
(5)TEMP临时表空间:
(6)EXAMPLE样例表空间:
(7)SQPT税企平台表空间:为应用程序“毕节税源专业化煤炭系统”所建立的数据库
以SYSTEM或者SYS身份登录PLSQL Developer
A:创建表空间:
create tablespace TS_SQPTdatafile 'D:\app\yangshan\oradata\MYSQPT\SQPT.dbf'size 12M autoextend on next 6M extent management local; commit;
B:创建用户:
create user mtgl identified by "hubu88661126"default tablespace TS_SQPTprofile DEFAULT;commit;
C:给用授权
grant connect to mtgl;grant resource to mtgl;grant dba to mtgl;
以SYSTEM或者SYS登录到PL/SQL DEVELOPER--(1)创建表空间,放在ORACLE服务器中create tablespace TS_XSXKdatafile 'D:\app\yangshan\oradata\mall\xsxk_data.dbf'size 12Mautoextend onnext 6Mextent management local;commit;--(2)创建用户create user yangshan identified by "123456" default tablespace TS_XSXK profile DEFAULT;commit;--(3)给用户授权grant connect to yangshan;grant resource to yangshan;grant dba to yangshan;
二、建表及向表中插入数据
先以yangshan(用户)身份登录PLSQL DEVELOPER
(一)创建表Student、Course、SC
CREATE TABLE TABLE_NAME( 字段名1 数据类型 约束, 字段名2 数据类型 约束, ... 字段名n 数据类型 约束, CONSTRAINT PK_TABLENAME_COLUMNNAME PRIMARY_KEY(COLUMNNAME), CONSTRAINT FK_REFERTABLENAME_COLUMNNAME FOREIGN KEY(COLUMNNAME) REFERENCES BEREFEREDTABLENAME(COLUMNNAME))
Create table Student( Sno VARCHAR2(5) NOT NULL, /* 学号 */ Sname VARCHAR2(20) UNIQUE, /* 姓名 */ Ssex VARCHAR2(2) CHECK(Ssex in('男','女')), /* 性别 */ Sage INT check (sage>15), /* 年龄 */ Sdept VARCHAR2(20), /* 系别 */ CONSTRAINT pk_student_sno PRIMARY KEY(sno) --定义主键(或主码) );CREATE TABLE Course( Cno VARCHAR2(2) NOT NULL PRIMARY KEY, /* 课程号 */ Cname VARCHAR2(20), /* 课程名 */ Cpno VARCHAR2(2), /* 先修课程号 */ Ccredit int /* 学分 */ /*主键就包含了非空和唯一两个约束*/);CREATE TABLE SC( Sno VARCHAR2(5), /* 学 号 */ Cno VARCHAR2(2), /* 课程号 */ Grade NUMBER(4) check (grade between 0 and 100), /* 成 绩 */ constraint PK_SC_SNOCNO primary key (sno,cno) /*定义(复合)主键(或主码)*/ );/*定义外键(或外码)*/alter table SC add CONSTRAINT FK_SC_SNO FOREIGN KEY(SNO) REFERENCES STUDENT(SNO);alter table SC add CONSTRAINT FK_SC_CNO FOREIGN KEY(CNO) REFERENCES COURSE(CNO);/*注意:在建表时系统会在表上针对主键列自动加上一个索引,另外要定义外键对应字段的索引,*/ create index idx_sc_sno on sc(sno);create index idx_sc_cno on sc(cno);/*注意:除非自己给主键、外键、唯一(KEYS);CHECK约束;INDEXS命名,否则系统会自动给他们命名,且不易识别。*/
(二)向表插入数据
INSERT INTO TABLE_NAME{(COLUMNNAE1,...COLUMNNAEn)|EMPTY}VALUES(VALUE1,...VALUEn);
--Student表中的数据 insert into student (sno,sname,ssex,sage,sdept) values('95001','李勇','男',20,'CS'); insert into student (sno,sname,ssex,sage,sdept) values('95002','刘晨','女',19,'IS'); insert into student (sno,sname,ssex,sage,sdept) values('95003','王敏','女',18,'MA'); insert into student (sno,sname,ssex,sage,sdept) values('95004','张立','男',19,'IS'); commit; --course表中的数据 insert into course values('1','数据库','5',4); insert into course values('2','数学','',2); insert into course values('3','信息系统','1',4); insert into course values('4','操作系统','6',3); insert into course values('5','数据结构','7',4); insert into course values('6','数据处理','',2); insert into course values('7','PASCAL语言','6',4); commit; --SC表中的数据 insert into SC values('95001','1',92); insert into SC values('95001','2',85); insert into SC values('95001','3',88); insert into SC values('95002','2',90); insert into SC values('95002','3',80); insert into SC values('95002','1',null); insert into SC values('95002','4',null); insert into SC values('95003','1',''); insert into SC values('95003','2',''); insert into SC (sno,cno)values('95003','3'); insert into SC (sno,cno)values('95003','5'); commit;
- SQL语句大全-程序员必备(Oracle版)
- 【程序员必备】sql语句大全
- 程序员必备sql语句大全
- 必备sql语句大全
- Oracle SQL语句大全
- Oracle SQL语句大全
- ORACLE Sql语句大全
- 经典SQL语句资料大全高手必备
- 程序员必备SQL语句优化技巧
- Oracle 常用 SQL 语句大全
- ORACLE的SQL语句大全
- ORACLE常用SQL语句大全
- ORACLE常用SQL语句大全
- Oracle数据库SQL语句大全
- ORACLE常用SQL语句大全
- ORACLE常用SQL语句大全
- Oracle 常用 SQL 语句大全
- Oracle-常用监控SQL语句,DBA必备
- 信息技术快速上手教程
- C++之:模板元编程(一)
- 获取View的宽高信息
- 摇一摇
- 线程进程对形象理解
- SQL语句大全-程序员必备(Oracle版)
- Leetcode:38. Count and Say(JAVA)
- 关于脚本语言的理解(转)
- WPF Page之间跳转时传参
- 给图片增加高斯模糊效果
- 线性代数的本质
- webx框架 实现文件上传保存服务器 解析
- hdu 1240 Asteroids!
- C#基础