Oracle基础操作学习

create创建数据表

CREATE TABLE  table_name(
	colum_name column_type [not  null],
	colum_name column_type [not  null],
	...
	[contraint]
)
语法说明:
	table_name :数据表名,在一个数据库中数据表名不能重复的
	column_name :表中的列名(字段名)一个表中的列名也是不能重复的
	column_table :数据类型,设置当前类型列中允许存放的数据类型
	not null :约束设置该列插入数据时不能为空,如果不指定则默认表示该列允许为空
	contraint :为表中的列设置约束(主键,外键 ,检查等)
案例:创建一张数据表用于存储学生信息
create table tb_students(
	stu_num char(5) not null ,
	stu_name varchar2(10) not null,
	stu_sex char(2) not null,
	stu_age number(2) ,
	stu_tel char(11)
);

使用alter 修改数据库

增加列
alter table table_name  add column_name column_type;
修改列
alter table table_name(要修改的表名) modify column_name(要修改的列名) column_type(要修改的列的目标数据类型);
语法说明:修改只能修改列的目标列数据类型
删除列
alter table table_name(要删除的表名) DROP COLUMN  column_name(要删除的列名);

使用drop 语句删除数据表

删除 数据表
DROP  TABLE  TABLE_NAME;
删除表数据
删除表数据,删除数据表中存储的数据,保留数据表的结构
truncate table table_name
delete from table_name

主键约束

添加主键约束:

1.在创建数据表时添加主键约束
create table table_name(
	column _name type  primary key,
	......
)
create table  table_name(
.....
primary key (column_name)
);

联合主键

使用2个或者2个以上的字段 作为主键。
当所有列中数据都存在重复

1.在创建数据表时添加联合主键约束
create table  table_name(
.....
primary key (column_name,column_name)
);
2.创建数据表之后添加联合主键
alter  table table_name ADD CONSTRAINTS constraint_name(联合主键名) PRIMARY KEY(column_name,.....column_name)

外键约束

添加外键约束

外键约束就是限定外键字段的值必须来自于其他数据表中的关联字段
1.在创建数据表时添加外键约束
CREATE TABLE table_name(
	....
	CONSTRAINT constraint_name FOREIGN KEY (column_name)
	REFERENCES table_name(column_name ) ON DELETE CASCADE
);
说明:
		ON DELETE CASCADE :设置级联删除,当主键的字段被删除时,外键所对应的字段也同时被删除
案例:
---学生表   班级表
---1.创建 班级信息表,班级编号 ,班级名称,班主任,班级描述
create table tb_classes(
	class_id char (3) primary key ,
	class_name varchar(40) not null,
	class_leader varchar(20) not null,
	class_desc varchar(200)
);
---创建学生信息表:学号 姓名 性别 年龄 电话 编号

删除外键约束

CHECK 检查约束

检查约束,用于限定每一列能够输入的值,以保证数据的正确性

一、在创建 表时添加CHECK 约束
CREATE TABLE table_name (
....
CONSTRAINT constraint_name(约束名字)  CHECK(约束条件)
);
二、在修改数据表时添加CHECK 约束
ALTER TABLE table_name ADD CONSTRAINTS constranint_name(约束名字) CHECK (约束条件);
三、 删除check 约束
 ALTER TABLE table_name DROP CONSTRAINTS constranint_name(约束名字);

UNIQUE 约束

唯一键约束用于限定数据表中字段 值的唯一性。

添加唯一约束:
1.在创建表时添加唯一约束
CREATE TABLE  table_name (
...
CONSTRAINT constraint_name UNIQUE(column_name)
);
2.在修改数据表时添加UNIQUE 约束
ALTER TABLE table_name ADD CONSRAINTS constraint_name UNIQE (column_name);

NOT NULL 约束

用于限定数据表中的字段必须输入。

1.在创建表时添加NOT NULL 约束:
CREATE  TABLE  table_name (
stu_num char(5) primary_key ,
stu_name varchhar(20) not null,
.....
);
2.在修改数据表时设置Not null 约束
ALTER TABLE table_name MODIFY column_name NOT NULL;

DML语句

1.添加数据

insert into  table_name (column_name1 ,column_name2,...)values(data1,data2 ...);

2.通过其他数据表添加数据

INSERT INTO table_name (column_name1,column_name2....)
SELECT column_name1,column_name2,....From other_table_name;
说明:select 出的列名和数据类型与插入表中列名,数据类型一致。

3.创建数据表时添加数据

CREATE TABLE table_name AS 
SELECT column_name1,column_name2,.....FROM source_table;

修改数据

1.UPDATE table_name SET column_name1=data1,column_name2=data2,....WHERE conditions(筛选条件确定修改范围);

删除数据

1.DELETE FROM table_name WHERE conditions;

DQL 语句

查询操作 :

1.简单查询:
SELECT [DISTINCT|ALL]<column_name1,column_name2,...>
FROM <table_name1,table_name2,...>
–获取指定列数据
select stu_name(指定列) from tb_student ;

–字段别名

select stu_name 姓名 , stu_age  年龄 from  tb_student;

–计算列

select stu_name ,2019-stu_age 出生年份, from stu_student;

–使用函数操作查询字段

select stu_name ,stu_tel from stu_student;
//查询电话号码只显示前6位。
select stu_name ,subStr(stu_tel,0.6) 电话号码前六位 from stu_student;

–去重查询:

select  distinct stu_name from  stu_student; 

检索数据的排序

检索数据排序语法:
select .... from  .... order by column_name [asc|desc]
排序操作 :
	1.升序和降序
	select   * from stu_student orderby stu_age desc; ---降序 默认不写升序
	2.null 值的处理(NULL FIRST,NULL LAST)
	SELECT * FROM  stu_student  ORDER BY stu_age ASC  NULL FIRST ;
	3.排序字段(字段名,表达式 ,别名)
	select stu_num,stu_name,2019-stu_age from stu_student order by 2019-stu_age;
	select stu_num,stu_name,2019-stu_age birth  from stu_student order by birth;
	4.多字段排序
	select * from tb_student order by stu_sex asc ,stu_age desc ;

2.WHERE条件查询:

select… from …where coditions [ORDER BY column_name desc]
1.单条件查询

select... from ...where coditions [ORDER BY column_name desc]

2.多条件查询

select ...from ...where  conditions and conditions  [order by  column_name desc]

3.模糊查询

select ...from ...where  conditions like % 条件内容%  [order by  column_name desc`]

4.范围查询

select ...from ...where  conditions 【between ,in】 [order by  column_name desc]

5.针对NULL 值的查询

select ...from ...where conditions is not null;

3.分组查询:

1.聚合函数

count()统计
sum() 求和
avg() 求平均值
max()求最大值
min()求最小值

2.GROUP BY 子句分组

--如果使用CROUP BY 进行分组查询之后,select 关键字后只能是分组字段名和聚合函数
select stu_sex ,count(stu_num) from  tb_students group by stu_sex;
  1. HAVING子句筛选(对group by 分组查询 之后的数据进行筛选)
select stu_age(分组字段名),count(*) from tb_students group by stu_age
 having stu_age is not null;

4.嵌套查询子查询:

1.基于子查询返回单行数据的嵌套 = ><
2.基于子查询返回多行数据的嵌套 in ,=any,=some,=all (交集)

5.连接查询多表查询:

查询数据来自于一张以上的数据表
连接查询语法:
SELECT …FROM table_name1 【left|right|inner】 join table_name2
[where join_conditions]
条件查询操作:
内连接:
SELECT …FROM table_name1 inner join table_name2 [on join_conditions]
外连接:
左外连接:
SELECT …FROM table_name1left join table_name2 [on join_conditions]
右外连接:
SELECT …FROM table_name1 right join table_name2 [on join_conditions]

函数:

1.数值函数:
--- ASB(N)绝对值
SELECT  ASB(-3) from dual;
--- mod(m,n) 取余
--- 判断数值正负 sign(n)
--- 三角函数 sin(n),
--- 数值取整 只入不舍CELL(N) \ 只舍不入 FLOOR(N) 、四舍五入 ROUND(N)
--- 平方根 sqrt 
--- 次幂运算 power(m,n)
---对数  LOG(M,N ) LN(N)
2.字符函数:

– 查询表空间详情
select f.* from dba_data_files f where f.TABLESPACE_NAME=‘表空间名称’;
–查询当前用户的所属表空间
select * from user_users;
–增加表空间有两种方法:
–1.以sysdba登陆进数据库
–语法
alter tablespace 表空间名称
add datafile 表空间存放路径
size 表空间大小
autoextend on next 增长的大小
maxsize 空间最大值(如果不限制空间就用unlimited)
–2. 以修改表空间的方式增加:
–语法:
alter database datafile 表空间文件路径
AUTOEXTEND(自动增长) on next 表空间满后增加的大小

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值