oracle数据库学习第二天

oracle表的管理

表名和列的命名规则

必须以字母开头

长度不能超过30个字符

不能使用oracle的保留字

只能使用如下字符 A-Z,a-z,0-9,$,#等

---------------------------------------------------------------------------

oracle数据类型

字符型

char    定长  最大2000字符。    

例子:char(10)‘小韩’ 前四个字符放‘小韩’,后添6个空格补全(中文一个字占2个字符)。

--char查询起来速度快


varchar2(20)   变长  最大4000字符。

例子:carchar2(10)‘小韩’ oracle分配四个字符这样可以节省空间。


clob(character large object)  字符型大对象  最大4G


数字类型

unmber 范围 -10的-38次方~10的38次方


number(5,2)

表示一个小数有5位有效数,2为小数。

范围-999.99~999.99


number(5)

表示一个五位整数

范围  -99999~99999


日期类型


date  包含年月日和时分秒

timestamp 这是oracle9i对date数据类型的扩展


图片

blob    二进制数据  课余i存放图片/声音     4G

(通常我们只会把图片和声音放在指定的文件夹内。数据库只存放路径。如果保密要求很严格。就存放在数据库内)

-----------------------------------------------------------------------------------------------------------------------------------------------------

建表

命令建表:

例:

---学生表

sql>create table student(                     --表名
xh number(4),                                 --学号
xm varchar2(20),                              --姓名
sex char(2),                                  --性别
birthday date ,                               --出生日期
sal number (7,2)                              --奖学金
);
---班级表

sql>create table classes(
	classId number(2),
	cname varchar2(40)
);

小提示:

1、drop table 表名 ; 删除表

2、表空间就是存放表的空间

3、也可以图形操作建表,添加列中,有个“默认”,意思是在没有没有输入值的时候,默认给他一个值。也可以设置主键。

4、图形界面建立索引,用于提高查询速率。点击应用完成建表

修改表

添加一个字段

sql> alter table student add (classid number(2));
修改字段长度

sql> alter table student modify (xm vachar(30));
修改字段的类型/或是名字(不能有数据)(建议在空表的情况下修改,如果里面有数据会很容易出错)

sql> alter table student modify (xm char(30));
删除一个字段(在工作中最好不要使用,会扰乱程序的读取)

sql> alter table student drop column sal;
修改表的名字

sql>rename student to stu;
删除表

sql>drop table student;


---------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------

添加数据

所有字段都插入

sql>insert into student values('A01','男','01-5月-05',10);


oracle中默认的日期格式‘DD-MON-YY'   dd日子(天)  mon月份  yy 2位的年 ’09-6月-09‘ 1999年6月9号,改日期的默认格式:

sql>alter session set nls_date_format = 'yyyy-mm-dd'


修改后,可以用我们熟悉的格式添加日期类型:

sql>insert into student values ('A002),'mike','男','1905005-06',10);

插入部分字段

sql>insert into student(xh,xm,sex) values('A003','JOHN','女');

插入空值

sql>insert into student (xh,xm,sex,birthday) values ('004','MARTIN','男“,null);


查询表格中空值数据,非空数据

sql>select * from student where birthday is null;
sql>select * from student where birthday <span style="font-family: Arial, Helvetica, sans-serif;">is not null;</span>

 

---------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------

修改数据

改一个字段

sql>>update student set sex='女' where xh='A001'; 把学号为A001的学生性别该为女
例:

把男性的工资降低为原来的一半

sql>update student set sal=sal/2 where sex='男';

修改多个字段

sql>update student set sex='男',birthday='1980-04-01' where xh ='A001';  把学号为A001号的学生性别改为男,生日改为1980-04-01

修改含有null值的数据

---------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------

删除数据

sql>delete from student;

删除所有记录,表结构还在,写日志可以恢复的,数度慢。

sql><span style="color:#ff0000;">savepoint</span> a;
删除之前设置回滚点及(保存点)

sql><span style="color:#ff0000;">rollback to</span> a;

删除数据之后,恢复删除的数据。

注:设置保存点的作用在于可以防止不可恢复性错误的出现。

---------------------------------------------------------------------------------

sql><span style="color:#ff0000;">drop table</span> student;

删除表的结构和数据

sql><span style="color:#ff0000;">delete from </span>student <span style="color:#ff0000;">where</span> xh='A001';

删除一条记录

sql><span style="color:#ff0000;">strucate table</span> student;

删除表中的所有记录,表的结构还在,不写日志,无法找回删除的记录,速度快

--------------------------------------------------------------------------------------------------

oracle 表基本查询    

介绍

在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家掩饰如何使用select语句,select语句在软件编程中非常的有哦那个,需要好好掌握。

小提示:清屏 clear 

-----------

emp表字段的含义

---------

EMPNO          雇员号

ENAME 雇员名称

JOB               雇员职位

MGR      上级的编号

HIREDATE  入职时间

SAL        薪水

COMM   奖金

DEPTNO  部门

----------------------------------------------

dept 表  部门表

DEPTNO    部门编号

DNAME      部门名称

LOC            部门所在地

-----------------------------------------------------

小提示:

sql>insert into users (userid ,username,userpss) select * from user; 自我复制

sql><span style="color:#ff0000;">set timing en</span>; 这句的意思是将在下面显示语句的操作时间。  

-----------------------------------------------------

查看表结构

sql>desc dept;

查询所有列

sql>select * from dept;    (不推荐使用)
查询指定列

sql>select  ename  from emp;
如何取消重复行

sql>select distinct deptno ,job from emp;

-----------

select语句大小写不区分,但是''中的内容是区分的。

----------

查询SMITH的薪水、工作、所在部门?

----------

使用算数表达式

显示每个雇员的年工资

1.使用列的别名

select ename “姓名”,sal*12 as “年收入”from emp;

2.如何处理null值

使用nul函数来处理

3.如何连接字符串(||)

select ename || 'is a ' || job from emp;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值