首页 > 数据库 >第三章 关系数据库标准语言SQL

第三章 关系数据库标准语言SQL

时间:2022-11-14 10:57:34浏览次数:50  
标签:第三章 删除 数据库 模式 RESTRICT 索引 关系数据库 SQL ALTER

3.1 SQL概述(略)

3.2 学生-课程数据库

image

image

3.3 数据定义

image

  • 数据库>模式>表、视图和索引

一个数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。

3.3.1 模式的定义与删除

1. 定义模式

  • CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
  • 用户必须拥有数据库管理员权限

2. 删除模式

  • DROP SCHEMA <模式名> <CASCADE|RESTRICT>
    • CASCADE和RESTRICT两者必选其一
    • CASCADE表示删除模式的同时把该模式中的所有数据库对象全部删除
    • RESTRICT表示该模式中已经定义了下述的数据库对象,则拒绝该删除语句的执行

3.3.2 基本表的定义、删除与修改

1.定义基本表

  • CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件],<列名><数据类型>[列级完整性约束条件],<表级完整性约束>);

案例1:建立一个学生表Student
image

案例2:建立一个课程表Course
image

案例3:建立学生选课表SC
image

2.数据类型

image

image

3. 修改基本表

image

案例1:向Student表中添加'入学时间'列,其数据类型为日期型

  • ALTER TABEL Student ADD S_entrance Date;
    案例2:将年龄的数据类型友字符型改为整数
  • ALTER TABLE Student ALTER COLUMN Sage INT;
    案例3:增加课程名称必须取唯一值的约束条件
  • ALTER TABLE Course ADD UNIQUE(Cname);

4.删除基本表

  • DROP TABLE <表名> [RESTRICT|CASCADE]
    • RESTRICT:该表的删除是有限制条件的
    • CASCADE:该表的删除没有限制条件

3.3.3 索引的建立与删除

1.建立索引

CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>],<列名>[<次序>],...);

  • UNIQUE表示每一个索引值只对应唯一的数据记录
  • CLUSTER表示要建立的索引是聚簇索引

2.修改索引

ALTER INDEX <旧索引名> RENAME TO <新索引名>;

3.删除索引

DROP INDEX <索引名>

标签:第三章,删除,数据库,模式,RESTRICT,索引,关系数据库,SQL,ALTER
From: https://www.cnblogs.com/yuyingblogs/p/16888300.html

相关文章

  • 使用雪花id或uuid作为Mysql主键,被老板怼了一顿!
    前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采......
  • sql script 保障一处报错,整个script 不执行
    begintranbegintry script..........endtrybegincatchprintERROR_MESSAGE()ROLLBACKtranendcatchcommit......
  • MySQL误删恢复方法1
    MySQL不同于oracle,没有闪回查询这类概念,但网上流传几个闪回的开源工具如binglog2sql、MyFlash,可以使用binglog日志进行误操作数据的恢复。笔者以前测试过binglog2sql,发......
  • MySQL误删恢复方法2
    实际工作中总会发生数据误删除的场景,在没有备份情况下,如何快速恢复误删数据就显得非常重要。本文基于MySQL的binlog日志机制,当日志格式设置为“binlog_format=ROW”时,记录......
  • SQL numeric数据类型
    作用:存储小数,但是和编程语言的float等不同,即使数据是3.00,存储时也会存储两位小数点后的数字。float类型当你给定的数据是整数的时候,那么它就以整数给你处理。0.00而实......
  • mysql中的found_rows() 与 row_count()函数
    1.found_rows()found_rows()用于查询同一连接下,上一条执行select查询返回的行数,包括show语句返回的行数。中间可以插入执行dml语句,返回依然是上一条select语句返回的行......
  • ubuntu安装 MySql5.7.bundle.tar
    1.查询是否有残留软件rpm-qa|grepmysqlrpm-qa|grepmariadb2.上传解压并安装root@kht:/kht#tar-xvfmysql-5.7.40-1.el7.x86_64.rpm-bundle.tarmysql-communi......
  • MySQL 通过 binlog 日志恢复数据
    binlog日志,即binarylog,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日......
  • .NET应用开发之SQLServer常见问题分析
    日常我们开发.NET应用时会使用SQLServer数据库,对于SQLServer数据库的日常开发有一些技能和工具,准备给大家分享一下。一、场景1:SQLServer死锁分析 执行以下SQL,启用SQLSe......
  • PostgreSQL 实时位置跟踪+轨迹分析系统实践 - 单机顶千亿轨迹/天
      背景随着移动设备的普及,越来越多的业务具备了时空属性,例如快递,试试跟踪包裹、快递员位置。例如实体,具备了空间属性。例如餐饮配送,送货员位置属性。例如车辆,实时位......