正文
基于oracle的sql(结构化查询语言)指令
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
创建表空间
create tablespace 表空间名 datafile
'存储路径(c:\a\a.dbf)'
size 200m autoextend on next 10m maxsize unlimited
删除表空间
drop tablespace 表空间名
创建用户
create user 用户名 identified by 密码;
用户名,密码 不能用关键字,且都不能用数字开头。
创建用户时可以直接指定默认表空间,例子如下:
create user smn identified by orcl default tablespace smn
也可以先创建后设置默认表空间,例子如下:
alter user smn default tablespace smn
更改用户 密码
alter user 用户名 identified by 新密码;
删除用户密码
drop user 用户名 【cascade】;
注:cascade 作用相当于级联删除,可以不写
给用户授权
grant 权限名 to 用户名;
对于程序员一般授权dba权限
回收用户权限
revoke 权限 from 用户名;
revoke 权限 on 表名 from 用户名;
使用dos连接数据库
sqlplus 用户名/密码@IP地址:程序IP/数据库名[as sysdba/sysoper]
注意:当用特权用户身份连接时,必须带上as sysdba或as sysoper,连接本地数据库时IP地址为localhost
例子:sqlplus smn/smn@192.168.58.2:1521/orcl
sqlplus sys/orcl@192.168.58.2:1521/orcl as sysdba
使用dos切换用户
conn sys as sysdba
conn system
注意:sys不能以normal身份登录;system不能以sysoper身份登录
使用dos显示用户
show user;
退出
exit;
查询用户是否存在
select * from dba_users where username='SMN'
注意:‘SMN’ 这部分必须大写才能查到
查询表空间是否存在
select * from dba_data_files where tablespace_name='SMN'
创建表
create table student(
xh number(4),/*学号*/
xm varchar2(10)/*姓名*/
)
修改表
/*添加表字段*/
alter table student add(
classid number(2)
)
/*修改字段长度*/
alter table student modify(
xm varchar2(30)
)
/*修改字段的类型(不能有数据)*/
alter table student modify(
xm char(30)
)
/*修改字段的名字(不能有数据)*/
alter table student rename column aa to bb;
/*修改表的名字*/
rename student to stu;
删除表字段
alter table student drop column sal;
oracle表的管理
/*删除表中所有数据*/
delete from student
/*删除表中指定条件的数据*/
delete from student where name='张三'
/*删除表中所有数据(不可恢复,一般不用)*/
truncate table student
/*删除表中数据和整个表结构*/
drop table student
/*向表中添加数据*/
/*1.student 表中的所有字段都得给值,值给不全会报错*/
insert into student values( 1,'张三','男','11-12月-2014',120.23)
/*2.向表中添加部分字段数据*/
insert into student (xh,xm,sex) values ( 1,'张三','男');
/*3.向表中添加空数据*/
insert into student (xh,xm,sex,birthday) values ( 1,'张三','男',null);
查询
1.表中的所有字段及所有记录全部查出来
select * from student
2.按字段查询
select name,age from student
3.如果某一字段为空
select * from student where birthday is null;
4.按条件查询
and 并且的关系
or 或者的关系
向表中添加多行记录
insert into 表名B (empno,ename,birdate)
(select empno+100,ename,birdate
from 表名A
where empno>7000
)
/*
注意:1)表B是已存在的表
2)字段个数要相同,否则报错
*/
表间数据的复制
create table 表名A
as(
select empno,ename,birdate
from 表名B
where empno>7000
)
/*将表B按条件复制给新建的表A*/
修改字段数据
1.修改一个字段数据
update student set sex='女' where xh=1;
2.修改多个字段数据
update student set sex='男',birthday='1980-04-01' where xh='1';
3.嵌套修改字段数据
update student set sal=
(
select sal+300
from 表名 where empno=7559
)
where empno=7599;
Oracle表主键、外键
三种方式:
1)先有表,在创建主外键
/*创建主表*/
create table student(
stuid number(6),
stuname varchar2(30)
)
/*为表加主键*/
alter table student add primary key(stuid);
/*创建子表*/
create table scoretable(
scorid number(6),
score number(6,2),
stuid number(6)
)
/*为表加外键*/
alter table scoretable add foreign key(stuid) references student(stuid);
2)创建表的同时创建主外键
create table lv1table(
id number(10) primary key,
name varchar2(20)
) create table lv2table(
id number(10),
name varchar2(20),
foreign key(id) references lv1table(id)
)
3)创建表的同时创建主外键并给主外键取名
create table lv3table(
id number,
name varchar2(20),
constraint "lv3table主键id" primary key(id)
) create table lv4table(
id number,
name varchar2(20),
pid number,
constraint "lv4table外键pid" foreign key(pid) references lv3table(id)
)