SQL基础知识恶补(整理)

本文详细介绍了SQL的基础知识,包括数据模型的两大类型、SQL的组成部分和特点,以及数据定义、查询、更新等操作。重点讲解了SQL在数据查询中的各种方法,如单表查询、连接查询、视图、数据库完整性和并发控制。同时,讨论了事务的基本概念、数据库恢复技术和并发控制策略,如封锁协议。最后,提到了数据库范式及其重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

膜拜大佬吧:SQL基本语句(整理)_程序员小钮的博客-优快云博客_sql语句

一、数据模型

两大数据模型

  1. 概念模型:按用户的观点来对数据来对数据和信息建模,主要用于数据库设计。
  2. 逻辑模型:主要包括层次模型、网状模型、关系模型,它是按照计算机系统的观点对数据建模,主要用于DBMS的实现。

数据模型的组成要素:数据结构、数据操作、完整性约束

  1. 数据结构:数据库组成对象以及对象之间联系的描述。
  2. 数据操作:对数据库中各种对象的实例允许执行的操作的集合。
  3. 完整性约束:数据模型要满足的约束条件。包括实体完整性、参照完整性、用户定义完整性。

二、关系数据库标准语言SQL——SQL概述

SQL的组成

  1. 数据定义(Data Definition):用来定义数据库结构,包括定义表、视图和索引。
  2. 数据操作(Data Manipulation):包括数据查询和数据更新两大操作。数据更新包括插入、删除和修改操作。
  3. 数据控制(Data Control):包括对数据的安全性控制、完整性规则的描述以及对事务的定义、并发控制和恢复。

SQL的特点

  1. 综合统一:SQL中的DDL、DML、DCL语言风格统一,可以独立完成数据库生命周期中的全部活动。
  2. 高度非过程化:SQL进行数据操作,只要提出做什么,不需要指明怎么做。操作过程由系统自动帮助你完成。
  3. 面向集合的操作方式
  4. 以同一种语法结构提供多种使用方式:既是独立的语言,又是嵌入式语言。
  5. 语言简洁、易学易用。

三、关系数据库标准语言SQL——数据定义

模式的定义与删除

//如果语句里面没有模式名,则默认模式名为用户名
create scheme <模式名> authorization <用户名>

drop scheme <模式名> <cascade|restrict>
//cascade:表示删除模式时同时把该模式下的所有数据库对象全部删除
//restrict:表示如果该模式下已经定义了数据库对象,则拒绝删除该模式

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

create table student(
 sno varchar(50) primary key,//列级完整性约束,主码
 sname varchar(50) unique,//取唯一值
 ssex int,
 sage smallint,
 sdept char(20),
 //primary key(sno),表级完整性约束
 foreign key sdept references school(sdept)//外码
);

数据类型:

模式与表:定义基本表时定义其模式

//第一种方法,显示的定义
create table S-T student(....)
//第二种方法,在创建模式语句的同时创建表

修改基本表

alter table <表名>
[add <新列名> <数据类型> [完整性约束]] //增加新列,并指定数据类型和完整性
[drop <完整性约束名>] //删除某列的完整性
[column <列名> <数据类型>]; //修改列的数据类型

删除基本表

drop table <表名>; //一旦删除基本表,则表中的所有数据都被删除

索引的建立和删除:建立索引是加快查询速度的有效手段

create [unique][cluster] index <索引名>
on <表名> (<列名> [<次序>].....)
  1. 索引可以建立在表的一列或多列上,每个列名的次序指定索引值的排序次序,包括ASC和DESC,缺省为ASC
  2. unique表明此索引的每一个索引值只对应唯一的数据记录;cluster表示要建立的索引是聚簇索引,即表中记录的物理顺序与索引值的顺序一致。
  3. 删除索引
drop index <索引名>

RDBMS中索引一般采用B+树、HASH索引来实现。B+树具有动态平衡的有点,HASH索引具有查找速度快的特点。

四、关系数据库标准语言SQL——数据查询

单表查询

目标表达式不仅可以是表中的属性,也可以是算数表达式;目标表达式不仅可以是表达式,还可以是字符串常量、函数等。

//目标列表达式
select sno,2016-sage
from student;

//字符串常量
select 'number:',sno,'age:',sage
from student;

//更改查询结果的列名
select sno number,sage age
from 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值