sql总结-----数据表操作

时间:2022-05-16 03:19:46

数据表概述

表示一种最常见的组织数据的方式,一张表一般有多个列(即多个字段)。

oracle提供了多种内置的列的数据类型,常用的有以下五种:

1、字符类型
字符数据类型用于声明包含字母、数字数据的字段。对于字符数据类型细分又可以分为两种:
他们分别对应,CHAR数据类型以及CHAR2数据类型。 CHAR数据类型:
用于存储固定长度的字符串,当为该列的某个单元格赋值小鱼长度的数值后,空余部分oracle会用空格自动填充;
如果字段保存的字符长度,大于规定的长度,则,oracle会产生报错信息。
CHAR类型的长度范围为1-2000个字节。
CHAR2数据类型:
用于存储变长而非固定字长的字符串。 2、数值数据类型
数值数据类型用于存储带符号的整数或浮点数。
oracle中的NUMBER数据类型具有精度(precision)和范围(SCALE)两个参数。 3、日期时间数据类型
oracle提供的日期时间数据类型是DATE,他可以存储日期和时间的组合数据。 4、LOB数据类型
LOB数据类型用于大型的,未被结构化的数据,
例如二进制文件、图片文件和其他类型的外部文件。LOB数据类型分为BLOB、CLOB和BFILE等三种。 5、ROWID数据类型
被称为“伪列类型”,用于在oracle内部保存表中的每条记录的物理地址。

如果用户在自己的模式下创建一个表,则用户必须具有create table的系统权限;

如果要在其他用户模式下创建表,则必须具有create any table的系统权限。

创建数据表

1、创建一个学生档案信息表

create table students(
stuno number(10)not null, --学号
stuname varchar2(8), --姓名
sex char(2), --性别
age int, --年龄
departno varchar2(2) not null, --系别编号
classno varchar2(4) not null, --班级编号
regdate date default sysdate --建档日期
);

使用describe命令查看数据表的数据结构

SQL> describe students;
Name Null? Type
----------------------------------------- -------- ----------------------------
STUNO NOT NULL NUMBER(10)
STUNAME VARCHAR2(8)
SEX CHAR(2)
AGE NUMBER(38)
DEPARTNO NOT NULL VARCHAR2(2)
CLASSNO NOT NULL VARCHAR2(4)
REGDATE DATE

使用create table as select命令创建表副本:

create table students_2 as select * from students;

维护数据表

创建数据表后,如果对表的定义有不满意的地方,可以进行修改。普通用户只能对自己模式中的表进行修改,如果要对任何模式中的表进行修改,则必须具有alter any table的系统权限。

1、增加和删除字段

用户可以用alter table --- add语句向表中添加字段。

alter table students add (province varchar2(10));

用户可以用alter table --- drop语句删除表字段。但是,不能删除所有的字段,也不能删除sys模式中任意表的字段。

如果仅需要删除一个字段,则必须在字段前指定column关键字。

alter table students drop column province;
#一条语句删除多个列
alter table students drop (age,sex);

2、修改字段

修改字段 通常使用alter table modify语句。

用户在修改字段时,并不可以随意修改;

在有数据的情况下,把某种数据类型改为兼容的数据类型时,只能把数据的长度从低向高修改,而不能从高向低修改,否则会出现数据溢出的情况。

alter table students modify stuno number(20);

3、重命名表

用户只能对自己模式下的表进行重命名,重命名表通常使用alter table xxx rename to XXX语句。

alter table students rename to students_2;

在对表的名称进行修改时要格外谨慎。虽然oracle可以自动更新数据字典中的外键、约束定义以及表关系,但是他不能更新数据库中的存储过程、客户应用,以及依赖该对象的其他对象。

4、删除表

一般情况下用户只能删除自己模式下的表,如果要删除其他模式下的表,则必须具有drop any table的权限。

语法格式:

drop table table_name [cascade constraints];

如果该表存在约束、关联的视图和触发器等,则必须使用cascade constraints参数才能将其删除。

当时用delete语句进行删除时,只删除数据不删除表结构;drop语句会删除数据以及表结构。

一般情况下,当某个表被删除,它并没有被彻底删除,而是进入回收站中(依然占用存储空间),可以使用flashback table语句进行还原。

drop table students_2;
select * from students_2;
select object_name,original_name from recyclebin where ORIGINAL_NAME = 'students_2'---查看表是否在回收站
flashback table students_2 to before drop;

如果用户想在删除表时立即释放空间,并且不放在回收站,则可以使用以下语句:

drop table table_name purge;

5、修改表状态

用户可以将表置于read only状态,处于该状态的表不能执行DML和某些DDL操作。在11g之前,为了使某个表置于只读模式,只能将整个表空间置于read only状态。

alter table students read only;
alter table students read write;

可以通过数据字典user_tables查询表的状态,

select table_name,read_only from user_tables where table_name='STUDENTS';

数据完整性与约束性

sql总结-----数据表操作的更多相关文章

  1. SQL语句之表操作

    SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 写在前面 在上一篇博文里面我整理了“行”级别的操作,分别是“增(insert).删 ...

  2. 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数

    孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...

  3. MySQL之唯一索引、外键的变种、SQL语句数据行操作补充

    0.唯一索引 unique对num进行唯一限制,表示num是独一无二的,uql是唯一索引名称 上面为联合索引:num和xx不能完全一样  1.外键的变种 a. 用户表和部门表 用户: 1 alex 1 ...

  4. mysql数据表操作&库操作

    首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:s ...

  5. sql复制数据表和表结构

    SQL复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...

  6. [SQL]SQL Server数据表的基础知识与增查删改

    SQL Server数据表的基础知识与增查删改 由张晨辉(学生) 于19天 前发表 | 阅读94次 一.常用数据类型 .整型:bigint.int.smallint.tinyint .小数:decim ...

  7. MySQL 数据表操作

    MySQL 数据表操作 创建MySQL数据表需要以下信息: -表名: -表字段名: -定义每个表字段: 一.创建数据表 1)mysql> create  table  table_name (c ...

  8. mysql 数据表操作 目录

    mysql 数据表操作 存储引擎介绍 mysql 使用存储引擎 mysql 数据表的增删改查 mysql 数据类型 mysql 约束条件

  9. Mysql之数据表操作

    数据表操作: 查看当前数据库中所有的表: show tables; 查看当前使用数据库: select database(); 使用数据表: use 表名; 创建数据表: create table 数 ...

随机推荐

  1. jquery ajax的error错误信息

    项目开发中ajax的异常处理起来算是比较头疼的,因为是异步请求,所以即使ajax异常程序依然会继续执行,导致找ajax的异常比较麻烦. 今天处理ajax异常时搜到一篇文章,提到error可以返回aja ...

  2. [Android界面] 这样的选择器怎么实现?? 充值选择

    1  充值的或年纪的 或  1 先讲例子 http://blog.csdn.net/lmj623565791/article/details/48393217: 本文出自:[张鸿洋的博客] 一.概述 ...

  3. noi 1.8 11图像旋转

    水题不解释 其实我偷懒了 直接输出,,,,,,, 个人QQ:757394026团队QQ:466373640个人博客:www.doubleq.winc++/noi/信息学奥数博客:http://www. ...

  4. CoreAnimation学习,学习总结,记录各种过程中遇到的坑

    1. CAAimation  的 duration = 0 的时候, 这个时候就相当于没有动画了. 2. CAKeyframeAnimation *rotateAnimation = [CAKeyfr ...

  5. pandas文件写入读取操作

    #encoding:utf8 import pandas as pd import numpy as np from pylab import * df=pd.read_csv("./pat ...

  6. Borg Maze POJ - 3026 (BFS + 最小生成树)

    题意: 求把S和所有的A连贯起来所用的线的最短长度... 这道题..不看discuss我能wa一辈子... 输入有坑... 然后,,,也没什么了...还有注意 一次bfs是可以求当前点到所有点最短距离 ...

  7. [AWS] OAuth2.0

    Ref: 理解OAuth 2.0 若干专有名词: (1)Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的&qu ...

  8. c#泛型与其他语言的对比(深入理解c#)

    1.同c++模板的对比: c++模板有点像是发展到极致的宏.他们非常强大,但代价就是代码膨胀和不易理解. 在c++中使用一个模板时,会为那一套特定的模板实参编译代码,好在模板实参本来就在源代码中一样. ...

  9. SQL操作语句

    SQL语句与Mysql的语句大体上比较相似.以下是sql server的一套练习题,是很好的数据库操作语句学习资料,学校的学习资料,在此整理了以下. 数据库exam:这是一个模拟电子商务,网上直销的数 ...

  10. 关闭会声会影2018提示UEIP.dll找不到指定模块

    最近有一些会声会影2018用户反映在关闭后弹出UEIP.dll错误,不知道该怎么办才好,针对这个问题,小编下面为大家介绍下解决方法. 原因分析 出现这个错误跟会声会影安装路径有中文字符是密切相关的,导 ...