【数据库】一、数据定义(数据库,模式,表等)

2019-04-14 20:36发布

  前言  最近对写博客产生了兴趣,我认为这是一种整理所学所的有效方式,整理下来也能给自己一点成就感。Java没啥可整理的,网上大神很多,数模以后再说,算法的话看看有没有空吧,总之先从数据库开始。  
正文  一个数据库管理系统的实例中,可以建立多个数据库,一个数据库可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据对象。
  不过一般在开发中几乎不用模式这个东西,基本上都是直接建数据库,然后再直接建表。
一、模式的定义与删除定义:  CREATE SCHEMA<模式名>AUTHORIZATION<用户名>例: CREATE SCHEMA  "S-T" AUTHORIZATION WANG注:若没有指定<模式名> 默认用户名WANG
删除:DROP SCHEMA <模式名>   CASCADE:级联,表示与此相关的都删除,相当于抄家灭口。 RESTRICT:只有该模式下没有任何关联的东西才能删除,这个比较仁慈,会网开一面。
模式没什么好讲的,也不怎么用,这个东西偏学术。
二、基本表的定义、删除与修改1.定义基本表
  定义基本格式:
CREATE TABLE <表名> (<列名><数据类型>[列即完整性约束条件],<列名><数据类型>[列即完整性约束条件],
......例子:CREATE TABLE Course (Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,);
2.模式与表三个方法,将表定义在指定的模式下。
方法一:在表名中明显的给出模式名CREATE TABLE "S-T".Student(...)模式:  "S-T"表名:Student
方法二:在创建模式时创建表CREATE SCHEMA  "S-T" AUTHORIZATION WANG;
CREATE TABLE Student(...);
方法三:设置所属的模式用户创建表时,默认的是$User,PUBLIC即先搜索与用户名相同的模式名,如果没有,默认为PUBLIC模式
所以在建表前,需要先设置模式SET search_path TO "S-T",PUBLIC 然后再建的表就会在“S-T”模式下
3.修改基本表定义:ALERT TABLE <表名>[ADD <列名><数据类型>]   增加列[DROP <列名> ]        删除列[ALERT COLUMN <列名> <数据类型>]        修改列
4.删除表DROP TABLE Student CASCADE;

关于索引等建立不在此多说。