–查询所有用户:
select * from all_users;
–创建用户:
create user test identified by test;
–修改用户:
alter user test identified by 123456;
–删除用户
drop user test;
–授权
grant connect to test;--登陆权限
grant resource to test;--建表权限
grant dba to test;---管理员权限
--或grant connect, resource to test;
revoke connect from lb;--撤销权限
–建表
create table mytable(
id number,
name varchar2(20)
);
–增加一列
alter table mytable
add code varchar2(10);
–修改字段类型
alter table mytable
modify code char(10);
–修改字段名称
alter table mytable
rename column code to citycode;
–删除一列
alter table mytable
drop column citycode;
–修改表名
rename mytable to mytable2;
–给字段加注释
comment on column mytable2.id is '学生编号';
comment on table mytable2 is '学生信息表';
–删除表(可以恢复)
drop table mytable2;
SQL语句的书写规范
.在数据库系统中,SQL语句不区分大小写(建议用大写)
.字符串常量区分大小写(表名和列名都不区分大小写)
.SQL语句可单行或多行书写,以“;”结尾
.关键词不能跨多行或简写
.用空格和缩进来提高语句的可读性
.子句通常位于独立行,便于编辑,提高可读性
.注释
-SQL标准
/**/ 多行注释
– 单行注释
-MySql注释
#
三、建表
.必须拥有CREATE TABLE权限
.命名规则
-必须以字母开头
-字符长度1~30之间
-只能包含A-Z,a-z,0-9,_,$,#
-被同一个用户拥有的对象不能有重复的名字
-不能是Oracle服务器保留字
Oracle数据库中常用的数据类型
number 数字类型
number(4,2)表示4位数据,其中2位小数据
date 日期类型
char 字符串类型(固定长字符串)
varchar2字符串类型(可变长字符串最大长度4000字符) VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些
复制表结构
create table 表名称 as select * from 被复制的表名 where 1<>1;
复制表结构连带数据
create table 表名称 as select * from 被复制的表名;
–日期转换函数to_date(‘日期数据’,‘日期格式’)
–字符转换函数to_char(日期,‘字符格式’)
四、表维护 ALTER TABLE
. 增加一列
-ALTER TABLE table_name
ADD column_name datatype
. 修改字段类型
-ALTER TABLE table
MODIFY column_name datatype;
. 修改字段名称
-ALTER TABLE table
RENAME COLUMN column_name TO new_column_name ;
. 删除一列
-ALTER TABLE table
DROP COLUMN column_name ;
. 修改表名
-RENAME table_name TO new_table_name;
. 注释
COMMENT ON TABLE table_name IS '注释名';
COMMENT ON COLUMN table_name.column_name IS '电话';
. 删除表
DROP TABLE table_name;
表中的数据和结构会被删除
所有索引被删除
不能回滚DROP TABLE语句
.删除表(删除数据,保留表结构)
TRUNCATE TABLE table_name;
.删除表(彻底删除)
DROP TABLE table_name PURGE;
列级别约束
1.主键约束(primary key)
主键字段(唯一性,非空性)维一的识别这条记录
–创建学生表t_student,这号为主键
create table t_student(
sid number(10) primary key,(主键约束)
sname varchar2(10)
);
2.非空约束(not null)
create table t_student(
sid number(10) primary key,
sname varchar2(10) not null (非空约束)
);
3.唯一约束(unique)
create table t_student(
sid number(10) primary key,
sname varchar2(1)) not null,
job varchar2(10) unique
);
4.检查约束(check)
对插入的值进行约束
create table t_strudent(
sid number primary key,
sname varchar2(10) not null,
job varchar2(10) unique,
sex varchar2(10) check(sex in ('man','female')),
age number(3) check(age between 1 and 150)
);
5.外键约束(foreign key)
体现表与表之间的关系
create table t_student(
sid number primary key,
sname varchar2(10) not null,
job varchar2(10) unique,
sex varchar2(10) check (sex in('man','feale'),
age number(10) check(age between 0 and 150),
cid number(10) references t_class(cid)
);
–表级别约束
constraint st_pk primary key (sid),
constraint st_un unique (sname),
constraint st_ck check (sex in('man','female')),
constraint st_ck1 check (age between 0 and 150),
foreign key (cid) references t_class(cid)
六、维护约束
.添加约束
ALTER TABLE 表名
ADD CONSTRAINTS 约束名 约束类型(列名)
例如:
alter table table_name
add constraints tb_stu_pk primary key(id);
alter table table_name
add constraints tb_stu_fk
foreign key(d_id)
references tb_dep(id);
.删除约束
ALTER TABLE 表名
DROP CONSTRAINTS 约束名
例如:
alter table table_name
drop constraints tb_stu_pk;