Oracle数据库---常用语句(附练习题)

本文详细介绍了Oracle数据库中创建、修改和删除表的语法,包括表结构、数据类型以及约束条件。同时,讲解了数据操作如SELECT、UPDATE、INSERT和DELETE,包括分组/聚合函数、多表查询和子查询的应用。还涉及到数据备份和索引等概念,是学习Oracle数据库管理的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表的结构---create /alter /drop /truncate

1 创建表

创建表结构的格式:

create  table   表名(

     列名1  数据类型 ,

     列名2  数据类型 ,

     列名3  数据类型 ,

     列名4  数据类型 ,

     列名5  数据类型 ,

     ...

     列名N 数据类型

);

create table 表名(

     列名1 数据类型 [primary key],

     列名2 数据类型 [unique],

     列名3 数据类型 [not null | null],

     列名4 数据类型 check(条件),

     列名5 数据类型 [references 表名(列名)]

     ...

     列名N 数据类型 [default 默认值] [各种约束]

);

列名命名规则:字母、数字、下划线(_)组成,不要以数字开头

mobile number(7,3)  

10000 12312313 1  123.45   1234.567  1234.567

shengri date

数据类型:

数字:number 可以表示整数,也可以表示小数 number(5,2) 一个数为5位数的有效数,2位小数 -999.99~999.99 numbe(5) -99999~99999

日期:date

字符串:char、varchar2,在Oracle中,字符串用单引号引起来,用双引号引起来是别名

       char是定长,如char(12),存储内容的最大长度是12个字节,若实际存储内容只有6个字节,该列仍然占用12个字节 char(10) 小明

       varchar2是可变长,如varchar2(12),存储内容的最大长度是12个字节,若实际存储内容只有6个字节,该列仍然占用6个字节

       

       字节:字节是由二进制代码组成,二进制代码就是0和1组成,8个二进制位组成1个字节,即1B = 8b

       字符:是由字节经过特定的编码方式组成,1个中文字符占3个字节,对于英文字符来说,一个字符占用1个字节。

创建一个简单的表

create table t_student(

       id number,

       name varchar2(50),

       sex char(12),

       birthday date

);

create table student_tmp(

       id number,

       name varchar2(50),

       sex char(12),

       birthday date

);

字段的约束条件(约束不是必写的):

约束:就是限制

    唯一约束(unique):值不能重复,但是可以为null。属于表对象(跟列一样),必须要有名字,若没有指定名字,则Oracle随即分配一个唯一的名字

    非空约束(not null):值不能为空,一个列默认是可以为空

    默认值(default):当没有给列指定值的时候,则取默认值;在创建表时,若没有给列指定默认值,那么该列的默认值是空(即null)

    检查约束(check):检查值是否满足某个条件,属于表对象,必须要有名字

    主键(primary key):相当于身份证号码,包含非空约束和唯一约束,也是属于表对象,在设计一张表示,需要有主键列

    外键(references):也属于表对象,必须要有名字

主键(primary key):相当于身份证号码,是唯一的,通过身份证号码只能找到一个人,即通过主键列只能找到一行数据,在创建表时,通常要有主键列,主键属于表对象,所以主键有一个名字,若没给主键指定名字,oracle会自动分配一个唯一的名字,在一个表中只能有一个主键对象

以下两个表有约束关系:

create table t_class(

     classid number primary key,   ---- 主键

     classname varchar2(100)

);

--sysdate:获取系统当前时间,格式是:年月日时分秒

create table t_user(

     t_id number primary key,   ---- 主键

     t_sex varchar2(20) check(t_sex = 男 or t_sex = 女),   ----- 检查

     t_name varchar2(50) not null,   --- 非空

     t_cardid varchar2(20) unique,  --- 唯一

     t_birthday date default sysdate,   ---- 默认值

     classid number references t_class(classid)   ----- 外键

);

商品售货系统设计案例

现有一个商品的数据、记录客户及其购物情况,由下三张表组成

1)、商品goods(商品号goodsid,商品名goodsname,单价unitprice,商品类别ccategory,供应商provider)

2)、客户customer(客户号customerid,姓名cname,住址address,电邮email,性别sex,身份证cardid)

3)、购买purchase(客户号customerid,商品号goodsid,购买数量nums)

要求:每个表格要建立主键或外键,客户的姓名不能为空值;单价必须大于0,购买数量必须在1到30之间;

电邮不能重复;客户的性别必须是男或女,默认是男。

-------- 查看表结构 --------

在 command window(命令窗口)下输入:

desc 表名;

2 修改表

修改表:增加列

alter table 表名

add(字段名1 数据类型 [not null | null],字段名2 数据类型 [not null | null]);

如果要新增多个列,则要用逗号将各列定义分开。

例:向t_student表中增加一个性别和住址字段

alter table t_student

add(score number,addr varchar2(50));

alter table t_student

add classid number references t_class(classid);

--------修改列:修改数据类型、约束等等--------

alter table 表名

modify(列名  数据类型  [default 默认值] [not null | null]);

如果要修改多个列,则要用逗号将各列定义分开。

例:修改t_student的name字段类型为varchar2(100)。

alter table t_student

modify name varchar2(100) ;

删除

alter table 表名

drop column 列名;

例:

alter table t_student

drop column score;

alter table t_student

drop column addr;

3 表的删除

删除表结构:drop table 表名

truncate table 表名

例:删除student_tmp2表

drop table student_tmp2;

dept --> 部门表:

deptno  部门号

dname   部门名称

loc     部门地址

emp --> 员工信息表:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值