首页 > 数据库 >关系数据库标准语言SQL(2)数据定义

关系数据库标准语言SQL(2)数据定义

时间:2022-09-30 12:33:58浏览次数:47  
标签:参照 定义 删除 CREATE 模式 关系数据库 SQL SCHEMA

数据定义


分为四个定义:模式(SCHEMA)定义、表(TABLE)定义、视图定义、索引定义
操作的方式:创建(CREATE)、删除(DROP)、修改(ALTER),在每种定义前前加上相应操作的关键字,而后加上定义关键字

模式的定义与删除

定义模式

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;//实际书写时不用写<>
eg.为用户WANG定义一个学生-课程模式S-T.
CREATE SCHEMA S-T AUTHORIZATION WANG;//AUTHORIZATION意为指定权限
定义时,模式名可有可无,当不写模式名时,用户名即为模式名

  • 建立模式的过程中,同时可以接受在模式的下面建立表、建立试图格式:
    CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<定义表子句>|<视图定义子句>|<授权定义子句>];
    eg.为用户ZHANG创建一个模式TEST,并在其中定义一个表TAB1。
    CREATE SCHEMA AUTHORIZATION ZHANG
    CREATE TABLE TAB1(。。。。。。。。。。)
    执行操作时,必须拥有DBA(管理员)权限,就是管理员或被授权者,即DBA在CREATE SCHEMA中授权

删除摸式

格式:DROP SCHEMA <模式名> <CASCADE|RESTRICT>;
1.CASCADE\RESTRICT必须二选一
2.CASCADE(级联):删除模式同时把该模式中的所有数据一起删除
3.RESTRICT(限制):模式下存在数据,拒绝该删除语句执行,直接报错。那么就必须将下面的数据先删除,而后再删除模式
eg.DROP SCHEMA ZHANG CASCADE;

表的定义与删除

定义基本表


eg.

说明:
一个汉字两个字符;PRIMARY KEY(主键),设定主码;UNIQUE设定“唯一”;书写格式,下方列级设定用括号括起来,每个属性设定完了用逗号分隔,最后整体结束用;结尾

注意:
REFERENCES意为参照谁
其中Cpno是参照Cno的,就是说先导课也必须是来自于所有课程里的,这就是一种参照关系。
那么我们称Cpno是外码(外键),被参照表是Course,被参照列是Cno
eg.建立一个“学生选课”表SC

当要设定两个主码使,就不可以像上面那样书写,要统一集中在下面书写。
外码:就是,你要创建一个表,并且连带创建了一部分属性,这有的属性是这个表特有的,有的属性是从别的表里的来的,那么,得来的属性就必须参照前面的表,而这个属性,就是外码。必须定义,定义格式:FOREIGN KEY (属性) REFERENCES 参照表名(参照属性名)

标签:参照,定义,删除,CREATE,模式,关系数据库,SQL,SCHEMA
From: https://www.cnblogs.com/hezhipeng/p/16744538.html

相关文章

  • SQL之检索数据
    1、检索单个列1select2col_name3from4table_name;2、检索多个列1select2col_name,3col_name4from5table_name;3、检索所有列使用·*......
  • mysql主从复制常见问题(useing version:8)
    Fatalerror:TheslaveI/OthreadstopsbecausemasterandslavehaveequalMySQLserverids;theseidsmustbedifferentforreplicationtowork(orthe--rep......
  • 浅谈 MySQL 连表查询
    浅谈MySQL连表查询连表查询是一把双刃剑,优点是适应范式,减少数据冗余;缺点是连表查询特别是多张表的连表会增加数据库的负担,降低查询效率.简介连表查询就是2......
  • mysql常用命令
    CREATEUSER'用户名'@'可连接ip,%表示任意ip'IDENTIFIEDBY'密码';DROPUSER[IFEXISTS]存在才删除 user[,user]...用户列表DROP USER IF EXISTS 用户名GRA......
  • MYBatis-动态SQL
    MyBatis动态SQL什么是动态SQL?官方给出动态SQL的解释是一个基于OGNL的表达式,MyBatis3替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少......
  • 关于Mysql [ERR] 1118 - Row size too large (> 8126)解决方法
    Mysql版本:8.0系统:win10错误描述:[ERR]1118-Rowsizetoolarge(>8126).ChangingsomecolumnstoTEXTorBLOBorusingROW_FORMAT=DYNAMICorROW_FORMAT=COMP......
  • SQL之前述
    1、背景前不久,买了本SQL必知必会,看了下,然后就开始在某客网刷题,从此篇起,1、准备结合<<SQL必知必会>>和某客网的题目开始记录 2、后面还会去搜......
  • sql排序函数 rank() / dense_rank()
    Rank排名函数1、rank()按照某字段的排序结果添加排名,但是他是跳跃的、间断的排名partitionby子句按照对应字段将结果集分为多个分区,然后orderby子句按分数对结果集进......
  • SQL数据分组后取第一条数据——PARTITION BY
    SQL 如下找状态=1的数据,按HospitalId,DeptId 组合并倒序排序,每组里面取第一条数据SELECT*FROM(SELECT*,ROW_NUMBER()OVER(......
  • SpringBoot之Mybatis开启SQL记录和Pagehelper
    配置mybatismybatis:#mapper路径mapper-locations:classpath:mapper/*.xmlconfiguration:#日志输出log-impl:org.apache.ibatis.logging.stdout.StdO......