百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

数据库系统工程师:笔记分享SQL语言8.3数据库定义

xsobi 2024-12-30 07:47 1 浏览

SQL语言

8.3数据库定义

8.3.1 基本域类型

  • char(n):固定长度字符串
  • varchar(n):可变长度字符串,表示最多可以有n个字符的字符串
  • int:整型,也可以用integer
  • smallint:短整型
  • numeric(p,d):定点数p为整数位,d为小数位
  • real:浮点型
  • double precision:双精度浮点型
  • float(n):n浮点型
  • boolean:布尔型
  • date:日期型
  • time:时间型



8.3.2创建表

create table<表名>(<列名><数据类型><列级完整性约束条件><表级完整性约束条件>)

列级完整性约束条件:有NULL(空)not NULL(不为空)和unique(取值唯一);

例子:create table sc(Sno char(5),Cno char(5),grade smallint()

primary key (Sno,Cno) 主键(主码)

foreign key (Sno) references S(Sno)外码

foreign key (Cno) references C(Cno)

)

8.3.3 修改表和删除表

alter table<表名>(ADD<列名><数据类型><完整性约束条件>)
(modify<列名><数据类型>)
(drop<列名>或<数据类型>

drop table 删除表



8.3.4 创建和删除索引

  • 索引是表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单

索引的作用

  • 通过索引创建唯一索引,保证数据记录的唯一性
  • 大大加快数据检索速度
  • 加速表与表之间的连接
  • 在使用order by 和 group by字句中进行检索数据,减少查询时间
  • 使用索引,提供系统性能

索引的分类

  • 聚集索引:指索引表中索引项的顺序与表中记录的物理顺序一致的索引
  • 非聚集索引

建立索引

create 【unique】【cluster】index 索引名 on 表名 列名 ASC(升序)/DESC(降序),默认ASC
unique:表明索引的每一个索引值只对应唯一的数据记录
cluster:表明建立聚族索引
例子:create unique index Sno-Cno on sc (Sno asc , Cno desc)

删除索引

drop index 索引名



8.3.5 视图创建和删除

1、视图的作用

  • 视图不是真实存在的基本表是虚拟表
  • (1)集中数据、简化、和定制用户对数据库的不同数据要求
  • (2)视图可以屏蔽数据的复杂性,方便用户使用和管理数据
  • (3)视图使用用户关心他特定的数据和任务
  • (4)视图大大简化用户对数据的操作
  • (5)视图让用户不同的方式看到不同或相同的数据
  • (6)方便应用程序使用
  • (3)视图提供简单而有效的安全机制

2、视图的创建

create view 视图名 (列表名)
as select 查询子句
【with check option】

例子:create view cs-student
as select Sno ,Sname ,Sage ,Sex from student with check option

视图必须遵循的规定

  • 1、子查询可以是任意复杂的select语句,但不允许含有order by字句和distinct短语
  • 2、with check option表示对update、inster、delete操作时保证更新、插入或删除的行满足视图定义中的谓词条件
  • 3、组成视图的属性列名或者全部省略或者全部指定

3、视图的删除

drop view 视图名


相关推荐

MySQL 正则表达式最全介绍

MySQL支持使用正则表达式进行模式匹配和文本搜索。正则表达式提供了一种强大的工具,可以用来匹配和检索字符串中的复杂模式。MySQL中的正则表达式功能主要在REGEXP或RLIKE运算符中使用。1....

正则前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思

Q:经常看见的正则前面的(?i)(?s)(?m)(?is)(?im)是什么意思?...

SQL中的正则表达式

正则表达式通常用来匹配字符,比如在一段字符中截取我们想要的字符,又或者将不想要的字符串替换,或者统计某个或者某几个字符出现的次数,我们都可以使用Oracle提供的正则表达式语法来完成。1.比如,我们在...

学习VBA,报表做到飞 第四章 正则表达式 4.10 贪婪模式与懒惰模式

第四章正则表达式4.10贪婪模式与懒惰模式正则表达式匹配时默认为贪婪模式,也就是尽可能多的匹配。有时候我们需要对符合条件的内容分开匹配,就要用到懒惰模式。...

Python re模块 正则表达式之compile函数

一、应用场景为了重复利用同一个正则对象,需要多次使用这个正则表达式的话,使用re.compile()保存这个正则对象以便复用,可以让程序更加高效。二、使用方法...

几条常用的JavaScript正则表达式

在做项目或者代码编写过程中,一般会遇到验证电话、邮箱等格式是否正确合法的问题。通常我们会使用正则表达式,自己写很麻烦,且正则表达式又不是那么容易记住。所以现在分享几条常用的正则表达式,需要的时候直接复...

C语言中使用正则表达式

POSIX规定了正则表达式的C语言库函数,参见regex(3),我们已经学了很多C函数的用法读者应该具备自己看懂man手册的能力C语言中使用正则表达式一般分为三步:1.编译正则表达式regco...

VBA与Excel入门系列-12-正则表达式(上篇)

系统环境:Windows10...

系列专栏(八):JS的第七种基本类型Symbols

ES6作为新一代JavaScript标准,已正式与广大前端开发者见面。为了让大家对ES6的诸多新特性有更深入的了解,MozillaWeb开发者博客推出了《ES6InDepth》系列文章。CSDN...

EXCEL正则表达式的基础语法

正则表达式的基本概念及用途了解之后,我们就来学习下具体的语法,先以一个简单的例子来讲解。基础语法:比如,A1单元格中有一串字符:aabbccdd...

这几个冷门到你没听过的App,好用到为你打开新世界大门

一些好用的App总被埋没在数以百万计的应用商店中。今天为大家推荐几款Windows、Android、iOS、macOS平台里略显小众、但足够好用的遗珠App。万彩办公大师(Windows)转换Offi...

C/C++知识分享:C语言正则表达式

C语言的正则表达式规则,特此跟大家分享。一、C语言如何使用正则表达式?C语言使用正则表达式的方法很简单,只需要包含正则表达式头文件即可:...

Github工具库(二)

作者:Yunying...

在 JavaScript 中替换所有指定字符 3 种方法

在JS没有提供一种简便的方法来替换所有指定字符。在Java中有一个replaceAll(),replaceAll(Stringregex,Stringreplacement))方法...

正则表达式进阶

正则表达式,是每个程序员的必备的技能1.贪婪匹配和惰性匹配...