Orcale 之 SQL 数据定义
CREATE
在数据库中对数据对象的创建使用的是 CREATE 语句来完成。
创建表
在使用数据库的时候经常用到的就是对表的创建。SQL 语句使用 CREATE TABLE 进行创建。基本语法如下:CREATE TABLE <table_name>(
<colum_name><data_type>[column_constraint_name],
<colum_name><data_type>[column_constraint_name]...
[table_constraint_name]
)上面的<table_name> 是定义的表的名字,它可以有一个或者多个属性组成。在创建表的时候我们通常还会对某个属性添加约束条件,这些约束条件会存放在数据字典中,当用户对表中的数据进行操作的时候,DBMS会自动的检查该操作是否符合完整性约束。看一下的例子:创建一个员工表,由员工的员工号(ID),员工的姓名(Name),员工邮箱(Email),员工的电话(Phone),员工所属的部门编号(DepID),员工的薪资(Salary)以及项目经理编号(ManagerID),我们知道每个员工都会有自己的编号并且是唯一的。CREATE TABLE TEmployees(
EId Number(6) not null unique,
EName varchar2(20),
EEmail varchar2(20),
EPhone varchar2(20),
EdepId varchar2(10),
ESalary Number(8,2),
EManagerId Number(6)
);以上的 SQL 语句为我们创建了一个员工的表 TEmployees, 并将员工表的定义和约束放入了数据字典。创建视图
视图是从一个或者几个表导出的表,它是一个虚表。在数据库中只存在视图的定义,而不会有关视图的数据,这些数据还是存放在原来的表中,所以当基表中的数据发生变化那么视图中的数据也会发生变化。一下是创建视图的语法:CREATE VIEW <view_name>[
(
<column_name>
[,column_name]...
) ]AS <children_query>
[WITH CHECK OPCTION]其中的子查询不能包含 ORDER BY 和 DISTINCT 等复杂的查询语句的。WITH CHECK OPCTION 表示在对视图进行 UPDATE, INSERT 和 DELETE 这些操作的时候要满足子查询中的表达式。如下例子 创建以上我们创建的 TEmployees b表的视图 条件为:EdepId = 'DEV'CREATE VIEW VEmployees_1
AS SELECT EId, EName, EEmail, EPhone, EdepId, ESalary, EManagerId
FROM TEmployees
WHERE EdepId = 'DEV';
--WITH CHECK OPCTION同理这个视图 VEmployees_1 的定义会存储数据字典中,但是这里要注意的是并没有执行 SELECT 语句,只有当对这个视图进行查询的时候才会去基表中队数据进行查询,再将其返回出去,因此我们可以把视图看成基表的一种快捷方式。如果我们使用 WITH CHECK OPCTION 那么在以后对视图进行增删改的时候 DBMS 会自动的检查 EdepId = 'DEV'。创建索引
只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。不多说直接看语法:
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )UNIQUE 为表或视图创建唯一索引(不允许存在索引值相同的两行)。视图上的聚集索引必须是 UNIQUE 索引。[ ASC | DESC ] 确定具体某个索引列的升序或降序排序方向。默认设置为 ASC。CREATE INDEX Employees_Name on TEmployees(EName);
为表 TEmployees 的 EName 创建索引 Employees_Name 并按照升序排列。
DROP
删除数据表
删除表定义及该表的所有数据、索引、触发器、约束和权限规范。任何引用已除去表的视图或存储过程必须通过 DROP VIEW 或 DROP PROCEDURE 语句显式除去。语法如下:DROP TABLE <table_name>;
注意: DROP TABLE 不能用于除去由 FOREIGN KEY 约束引用的表。必须先除去引用的 FOREIGN KEY 约束或引用的表。删除数据表后基于这个表创建的视图不会被删除,当引用这个视图的是还会报错。DROP TABLE TEmployees;
删除视图
从当前数据库中删除一个或多个视图。可对索引视图执行 DROP VIEW。语法如下:DROP VIEW { view } [ ,...n ];view 表示要删除的视图名,n 表示可以删除多个视图的占位符。删除索引
从当前数据库中删除一个或多个索引。语法如下:DROP INDEX 'table.index | view.index' [ ,...n ];
table | view 索引列所在的表或索引视图。index 是要除去的索引名称。n 是指多个索引的占位符。DROP INDEX Employees_Name 删除 Employees_Name 索引。
ALTER
ALTER TABLE table
[ADD <columnName> <data_type> [constraint_name]]
[DROP <constraint_name>]
[DROP column <columnName>]
[MODIFY <columnName> <data_type>];
ALTER TABLE TEmployees ADD EBirthday Date;
ALTER TABLE TEmployees MODIFY EdepId varchar2(8);
ALTER TABLE TEmployees DROP unique(EId);
ALTER TABLE TEmployees DROP column EBIRTHDAY;
Orcale 之 SQL 数据定义的更多相关文章
- SQL - 数据定义
SQL 的数据定义功能包括模式定义.表定义.视图和索引的定义: 操作对象 操作方式 创建 删除 修改 模式 create schema drop schema 表 create table d ...
- 数据库——SQL数据定义
数据定义 SQL的数据定义语句 操 作 对 象 操 作 方 式 创 建 删 除 修 改 表 CREATE TABLE DROP TABLE ALTER TABLE 视 图 CREATE ...
- orcale 之 SQL 数据查询
从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列.虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下: SELECT select_list [ INTO new_tab ...
- SQL语言学习-数据定义语言
Sql语言至今已经有6个版本.SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)和嵌入式SQL语言. 数据定义语言(D ...
- SQL DDL 数据定义语句
前言 DDL(Data Definition Language)语句:数据定义语句,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括 create.drop.al ...
- sql 两大类 DDL数据定义语言 和DCL数据控制语言
SQL分为五大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据的操纵语言 DTL:数据事务语言 DQL:数据查询语言. DDL (date definition lang ...
- ODPS SQL <for 数据定义语言 DDL>
数据定义语言:(DDL) 建表语句: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...
- Oracle language types(语言种类) 表的相关操作 DDL数据定义语言
数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...
- SQL的定义与使用
一.SQL的定义 SQL(structured query language)即结构化查询语句,是关系数据库的标准语言. SQL的特点有: 1.综合统一 SQL集数据定义语言DDL.数据操作语言DML ...
随机推荐
- JVM 方法调用之解析
方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还没有涉及到方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍最频繁的操作,但Class文件 ...
- git command cheat sheet
clone:克隆 --non-bare:(默认值)一般的克隆方式 --bare:只克隆.git目录 --mirror:只克隆.git目录,并且还保持与origin的关联,可以fetch commit: ...
- android ART-逆向研究者的福音?
android 4.4起,提供了一种与Dalvik截然不同的运行环境-ART(Android Runtime)的支持.目前用户可以选择设备的运行环境,在不久的将来ART肯定会替代Dalvik Runt ...
- ANE-IOS与AS的互通
从AS调用IOS的函数与传参数 extContex是ExtensionContext的实例,通过call调用.第一个参数是IOS对应的函数,之后所有的参数会变成一个数组传入IOS中.也就是说函数名称后 ...
- 「AH2017/HNOI2017」礼物
题目链接 戳我 \(Solution\) 应为我们可以将任意一个数列加上一个非负整数,即可以变为将一个数列加上一个整数(可以为负),我们将这个整数设为\(z\).所以要求的式子的变为: \[\sum_ ...
- Android下拉刷新完全解析
http://blog.csdn.net/guolin_blog/article/details/9255575 http://www.cnblogs.com/loonggg/p/3201505.ht ...
- 4.client、offset、scroll系列
client.offset.scroll系列 他们的作用主要与计算盒模型.盒子的偏移量和滚动有关 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域 ...
- Heap堆
#pragma once#include<iostream>using namespace std;#include<vector> template<class T&g ...
- Linux 与 Windows 搭建域名解析
实现 Win2012-D1 中 DNS 服务器的冗余备份,同时提供本域内主机名与 IP 地址的解析,此域名服务器的地址数据库需要 Win2012-D1 中定期更新. 假设环境:Server12 以及 ...
- 一步一步带你安装史上最难安装的 vim 插件 —— YouCompleteMe
YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.参考: https://github ...