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;
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 飞机不提供餐食怎么办 12306退票支付宝失败怎么办 12306重复支付怎么办支付宝 支付宝登的12306账号怎么办 没买儿童高铁票怎么办 网上订的机票怎么办托运 半夜买高铁票不出票怎么办 轻轨少买了一站怎么办 高铁火车票丢了怎么办 如果高铁票丢了怎么办 高铁票丢了怎么办 报销 高铁如果没赶上怎么办 高铁管家待核验怎么办 动车没有票了怎么办 12306取消订单3次怎么办 【12306取消订单3次怎么办】 火车票取消订单3次怎么办 12306收不到验证码怎么办 安逸花验证码次数限制怎么办 航班晚点导致错过转机怎么办 想去沈阳站送站怎么办 高铁没有赶上车怎么办 火车晚点赶不上下一趟车怎么办 列车晚点影响下一趟车怎么办? 高铁晚点赶不上下班车怎么办 火车在半路坏了怎么办 做火车中途坏了怎么办 员工怀孕不上班保险怎么办 怀孕带孩子不能上班保险怎么办 怀孕了不想上班保险怎么办 高铁票没票了怎么办 购买动车票无座怎么办 个税工资多报怎么办 火车晚点耽误了转车怎么办 坐火车联系不上怎么办 号码被别人注册了12306怎么办 注册12306的号码换了怎么办 12306号码被注册了怎么办 12306身份证被注册了怎么办 12306被别人注册了怎么办 铁路1236注册名忘记了怎么办