关系数据库—SQL学习笔记
SQL的特点:
- 综合统一
- 高度非过程化(存取路径的选择以及SQL的操作过程由系统自动完成)
- 面向集合的操作方式,以同一种语法结构提供多种使用方法(可以在终端键盘上直接键入SQL命令对数据库进行操作,也能够嵌入到高级语言(C,C++,JAVA)程序中)
模式,外模式,和内模式:
关系模型支持三级模式结构:模式,外模式,和内模式;
模式:是指数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它涉及的仅仅是对于某一类数据的结构和属性的描述。模式的一个具体值称为模式的一个实例,同一模式下可以有很多个实例。模式是相对稳定的,而实例是相对变动的。
外模式:也称子模式,或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的表述,是数据库用户的数据视图。是与某一应用有关的数据的逻辑表示。
内模式:也称存储模式,一个数据库只有一个内模式。他是数据物理结构和存储方式的描述,是数据库内部的组织方式。
模式与外模式的关系:一对多。
外模式与应用的关系:一对多。
其中外模式包括若干视图和部分基本表,数据库模式包括若干基本表,内模式包括若干存储文件。
数据库,模式,表的关系:
一个数据库可以建立多个模式,一个模式下通常包括多个表,视图和索引等数据库对象;
SQL数据库定义语句:
- 模式 :创建:create schema 删除:drop schema
- 表: 创建:create table 删除:drop table
- 视图:创建:create view 删除:drop view
- 索引:创建:create index 删除:drop index
模式的定义与删除:
1.定义模式:
Create schema 模式名 authorization 用户名
定义模式实际上定义了一个命名空间,建立了一个数据库的命名空间,一个框架。在创建模式时,同时也可以创建基本表,以及视图,并且可以定义授权。
2.删除模式:
drop schema 模式名 cascade或者drop schema 模式名 restrict
cascade:为级联,表示删除该模式时,删除该模式中所有的数据库对象。
Restrict:为限制,表示如果该模式中已经定义了下属的数据库对象,则拒绝执行该语句。
基本表:
1.定义基本表:
Create table 表名 (列名 数据类型 列级完整性约束条件,
列名 数据类型 列级完整性约束条件,
表级完整性约束条件);
如果完整性约束涉及该表的多个属性列,则必须定义在表级上,否则既可以定义在表级也可以定义在列级。
例如:
Create table course(
Cno char(4) primary key,/* primary key标示主码*/
Cname char(40) not NULL,/* 列级完整性约束条件,Cname 不能为空*/
Cpno char(4)Ccredit smallint,
foreign key(Cpno)refernces course(Cno)
/* 表级完整性约束条件,Cpno是外码,被参照表是:Cno;*/
);
定义表的模式:
方法一:在表中明显的定义模式名:
Create table “S-T”.course(…);/*course所属的模式是S-T*/
方法二:在创建模式的同时创建表;
方法三:设置所属的模式。
当创建基本表时,若没有指定模式,系统会根据搜索路径来确定该对象所属的模式(搜索结果中第一个存在的模式)。
显示当前的搜索路径:
Show search_path; /*默认值是$user,public ,首先搜索与用户名相同的模式名,不过不存在这使用public*/
设置搜索路径,如:
Set search_path to “S-T”,public;
然后创建基本表:
Create table course(…);
2.修改基本表:
Alter table 表名
Add [column] 新列名 数据类型 完整性约束 /*增加新列*/
Add 表级完整性约束 /*增加表级完整性约束*/
Drop [column] 列名 cascade /**强制删除*/
Drop [column] 列名 restrict
Alter column 列名 数据类型 /*修改原有列定义**/
3.删除基本表:
Drop table 表名 restrict //有限制条件的删除,不能被其他的对象引用。
或者Drop table 表名cascade //强制删除
关系数据库—SQL学习笔记的更多相关文章
- ORALCE PL/SQL学习笔记
ORALCE PL/SQL学习笔记 详情见自己电脑的备份数据资料
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- SQL学习笔记
SQL(Structured Query Language)学习笔记 [TOC] Terminal登录数据库 1.登录mysql -u root -p ; 2.显示所有数据库show database ...
- [SQL学习笔记][用exists代替全称量词 ]
学习sql的必经问题. 学生表student (id学号 Sname姓名 Sdept所在系) 课程表Course (crscode课程号 name课程名) 学生选课表transcript (studi ...
- SQL学习笔记——SQL初入门,Ubuntu下MySQL的安装
刚开始接触sql,于是准备在Ubuntu下学习sql,就跟着itercast的sql教程开始入门了. 下面只是我个人的记录,高手请绕道: 一. 在安装之前,我们可以用下面这个命令通过开放端 ...
- pl/sql学习笔记---马士兵教程38-48
Procedure Language/Structure query Language 一.关于语言学习 1.数据类型 2.语法 通过例子来学习很快就能明白 set serverputout on ...
- SQL学习笔记之SQL查询练习题1
(网络搜集) 0x00 表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id ...
- SQL学习笔记三(补充-1)之MySQL存储引擎
阅读目录 一 什么是存储引擎 二 mysql支持的存储引擎 三 使用存储引擎 一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的 ...
- SQL学习笔记一之初识数据库
阅读目录 一 数据库管理软件的由来 二 数据库概述 三 mysql介绍 四 下载安装 五 mysql软件基本管理 六 初识sql语句 一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是 ...
随机推荐
- 细谈Slick(6)- Projection:ProvenShape,强类型的Query结果类型
在Slick官方文档中描述:连接后台数据库后,需要通过定义Projection,即def * 来进行具体库表列column的选择和排序.通过Projection我们可以选择库表中部分列.也可以增加一些 ...
- 扩展JS Date对象时间格式化功能
在自己JS代码中引入一下代码: Date.prototype.format =function(format) { var o = { "M+" : this.getMonth() ...
- phpexcel导出数据表格
1.下载phpexcel(李昌辉) 2.在页面引入phpexcel的类文件,并且造该类的对象 include("../chajian/phpexcel/Classes/PHPExcel.ph ...
- 后端Java工程师常用JavaScript_DOM
JavaScript [1]事件 ①用户操作网页或者浏览器所发生的交互行为称为事件.比如:点击按钮,最小化窗口,修改文本框内容等. ②JS为我们定义许多浏览器中的事件.比如:单击(onclick).双 ...
- JavaScript 数据属性和访问器属性
在JavaScript中对象被定义为"无序属性的集合,其属性可以包含基本值.对象或函数."通俗点讲,我们可以把对象理解为一组一组的名值对,其中值可以是数据或函数. 创建自定义对象通 ...
- SQL Server附加数据库失败错误号:5120的解决办法
附加数据库时出现附加数据库失败的错误,错误号是5120,已经两次遇到这种问题了.今天写一下解决办法. 有两个方法,很简单: 1.设置mdf文件所在文件夹的权限,在文件夹上右击——属性——安全,如图所示 ...
- vim的高亮查找操作
使用了VIM这么久,却一直无法牢记一些基本的操作指令.今天查找一个关键字时,想不起来怎么查找“下一个”,于是google之并解决,顺便把有用的都贴过来罢. 查找指令:/xxx 往下查找?xxx 往上 ...
- jq focus 在火狐(Firefox)下无效
今天写代码的时候发现,在blur事件里面写focus获取焦点无效, $input.blur(function(){ ……………… $input.focus(): } 而且只是在火狐下面无效而已,很明显 ...
- [jquery]将当前时间转换成yyyymmdd格式
如题: function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate ...
- 移动电商时代、微分销商城O2O生活圈系统开发功能分析
O2O生活圈系统的功能管理简单易用,随时随地发布新商品然后进行分类.管理,老少皆宜童叟无欺,实现多供应商多店铺经营模式的多层分润分销平台,满足企业自营商品与第三方供应商商品共存,打造京东+拍拍微店模式 ...