关系数据库标准语言SQL

本文详细介绍了SQL中模式和数据库的关系,以及在MySQL、Oracle等数据库中模式的使用差异。讲解了如何创建和删除模式,以及创建、修改和删除表的语法。此外,还涵盖了表的完整性约束和删除选项。对于索引,阐述了其类型和创建方法,并提及了查询时的特殊字符转义。内容深入浅出,适合数据库管理员和开发者学习。
摘要由CSDN通过智能技术生成

模式

在mysql中,schema和database是等效的,但是在其他数据库产品中有所不同,如oracle,schema是database的一部分,表示the tables and other objects owned by a single user

  1. 创建模式
    create schema 模式名 authorization 用户名
    如果没有指定模式名,模式名默认为用户名
  2. 删除模式
    drop schama 模式名 cascade|restrict
    cascade级联删除:删除模式的同时把模式中的所有数据库对象全部删除
    restrict约束删除:只有当模式中没有任何下属对象时才能执行

  1. 创建表
    create table 表名
    (列名 数据类型 列级完整性约束条件,
    。。。,
    表级完整性约束条件)
    如果完整性约束条件涉及到多个属性列时,必须在表级定义该约束条件,其他既可以定义在列级,也可以定义在表级。
    示例:
    create table tab1
    (col1 smallint,
    col2 char(5),
    primary key(col1,col2),
    foreign key(col1) references tab2(Sno));

常用完整性约束:
primary key、unique、not null、foreign key、references、check(mysql不支持)
主键唯一且非空,unique可以为空且可以有多个null

  1. 删除表
    drop table 表名 cascade|restrict
    restrict约束:如存在依赖该表的对象(视图、索引、存储过程、约束等),此表不能被删除
    cascade级联:删除该表的同时,相关的依赖对象被同时删除
  2. 修改表
    alter table 表名
    [add column 新列名 数据类型 完整性约束]
    [add 表级完整性约束]
    [drop column 列名 restrict|cascade]
    [drop 完整性约束名 restrict|cascade]
    [modify 列名 数据类型]

问题:SQL Server中,删除列是否允许?删除主键所在列是否允许?
允许,可以通过alter table 表名 drop column 列名删除列,主键和联合主键中的某一列都是可以删除的

索引

  1. 建立索引
    create [unique|cluster] index 索引名 on 表名(列名 [asc|desc])
    三种索引:唯一索引、非唯一索引、聚簇索引
    聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。
    一个表上最多只能建立一个聚簇索引。
  2. 删除索引
    drop index 索引名 [on 表名]

当要查询的字符串本身含有‘%’或‘_’时,应搭配escape进行转义
例如:select * from tab where name like ‘dd#_’ escape ‘#’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值