sql总结-----数据表操作
数据表概述
表示一种最常见的组织数据的方式,一张表一般有多个列(即多个字段)。
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总结-----数据表操作的更多相关文章
- SQL语句之表操作
SQL语句系列 1.SQL语句之行操作 2.SQL语句之表操作 3.SQL语句之数据库操作 4.SQL语句之用户管理 写在前面 在上一篇博文里面我整理了“行”级别的操作,分别是“增(insert).删 ...
- 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数
孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...
- MySQL之唯一索引、外键的变种、SQL语句数据行操作补充
0.唯一索引 unique对num进行唯一限制,表示num是独一无二的,uql是唯一索引名称 上面为联合索引:num和xx不能完全一样 1.外键的变种 a. 用户表和部门表 用户: 1 alex 1 ...
- mysql数据表操作&库操作
首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:s ...
- sql复制数据表和表结构
SQL复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...
- [SQL]SQL Server数据表的基础知识与增查删改
SQL Server数据表的基础知识与增查删改 由张晨辉(学生) 于19天 前发表 | 阅读94次 一.常用数据类型 .整型:bigint.int.smallint.tinyint .小数:decim ...
- MySQL 数据表操作
MySQL 数据表操作 创建MySQL数据表需要以下信息: -表名: -表字段名: -定义每个表字段: 一.创建数据表 1)mysql> create table table_name (c ...
- mysql 数据表操作 目录
mysql 数据表操作 存储引擎介绍 mysql 使用存储引擎 mysql 数据表的增删改查 mysql 数据类型 mysql 约束条件
- Mysql之数据表操作
数据表操作: 查看当前数据库中所有的表: show tables; 查看当前使用数据库: select database(); 使用数据表: use 表名; 创建数据表: create table 数 ...
随机推荐
- Java Web 开发必须掌握的三个技术:Token、Cookie、Session
在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie ...
- label与input之间的对应
实现点击文字对应的框可以被选中,再点击一下文字框又取消选中 label的for属性与input的id属性值对应,即可实现.
- webpack打包进内联html
用到一个新插件:html-webpack-inline-source-plugin(依赖于html-webpack-plugin) 1.安装 npm i -D html-webpack-inline- ...
- 2017-12-14python全栈9期第一天第四节之python分类
python的环境. 编译型:一次性将所有程序编译成二进制文件. 缺点:开发效率低,不能跨平台. 优点:运行速度快. :C,C++等等. 解释型:当程序执行时,一行一行的解释. 优点:开发效率高,可以 ...
- saltstack API(一) 安装并测试
python3 安装api # 首先安装python3 .tgz cd Python- . ./configure make make install mv /usr/bin/python /usr/ ...
- OS + Linux nmon / nmon analyser / nmon_analyser_v52_1.zip
s nmon_analyser_v52_1.zip https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Pow ...
- Nginx启动错误:error while loading shared libraries: libpcre.so.1
1 # /usr/local/nginx/sbin/nginx 2 /usr/local/nginx/sbin/nginx: error while loading shared libraries: ...
- java io系列22之 FileReader和FileWriter
FileReader 是用于读取字符流的类,它继承于InputStreamReader.要读取原始字节流,请考虑使用 FileInputStream.FileWriter 是用于写入字符流的类,它继承 ...
- 设计模式---接口隔离模式之门面模式(Façade)
前提:接口隔离模式 在组建构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接接口(稳定的),来隔离本来相互紧密关联的接口是一种常见的解决方案. 典型模式: 门面模 ...
- 阿里云申请ssl证书配置tomcat访问https
首先去阿里云上面申请ssl证书,免费的,自己百度去. 申请完ok之后会让你下载一个压缩包,里面有四个文件. 在tomcat安装目录下创建cert文件夹,把这四个文件扔进去 在conf/server.x ...