SQL——数据各项操作代码实现

本文详细介绍了SQL中的数据定义、查询和更新操作。内容涵盖模式定义、基本表创建、索引管理,以及单表查询、连接查询、嵌套查询等查询方式。此外,还讲解了数据插入、修改和删除的多种方法,包括使用子查询的复杂操作。以学生-课程数据库为例,展示了各种SQL语句的实际应用。
摘要由CSDN通过智能技术生成

设有学生-课程数据库,内含三个表:
学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
课程表:Course(Cno,Cname,Cpno,Ccredit)
学生选课表:SC(Sno,Cno,Grade)

一、数据定义

(一)模式的定义与删除

1、定义模式

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>

如果没有指定<模式名>,那么<模式名>隐含为<用户名>

例如:为用户WANG定义一个学生-课程模式S-T

 CREATE  SCHEMA**"S-T"** AUTHORIZATION **WANG**//常规写法   
CREATE  SCHEMA  AUTHORIZATION **WANG**  // <模式名>隐含为用户名WANG

一个模式下可以创建多个基本表、视图和索引等数据库对象

例如:为用户ZHANG创建一个模式TEST,并在其中定义一个表TAB1

 CREATE  SCHEMA TEST AUTHORIZATION ZHANG
 CREATE  TABLE TAB1(
 COL1 INT,
 COL2 CHAR(20),
 COL3 DECIMAL(5,2)
 );

2、删除模式

DROP SCHEMA <模式名><CASCADE|RESTRICT>

其中CASCADE和RESTRICT两者必选其一。
CASCADE(级联)表示将该模式中所有数据库对象全部删除。
RESTRICT(限制)表示如果该模式中已经定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行,只有当该模式下没有任何下属对象时才能执行DROP SCHEMA 语句。

(二)基本表的定义、删除与修改

1、定义基本表

如图定义一个“学生”表Student

CREATE TABLE Student
    (Sno CHAR(9) PRIMARY KEY,  //列级完整性约束条件,Sno是主码
    Sname CHAR(20) UNIQUE,    //Sname取唯一值
    Ssex CHAR(2),
    Sage SMALLINT,
    Sdept CHAR(20)
    ); 

建立一个课程表Course

CREATE TABLE Course
    (Cno CHAR(4) PRIMARY KEY,
     Cname CHAR(40) NOT NULL,
     Cpno CHAR(4),
     Ccredit SMALLINT,
     FOREIGN KEY(Cpno)REFERENCES Course(Cno)//表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno;

2、数据类型

常用数据类型表

数据类型 含义
char(n) ,character(n) 长度为n的定长字符串
varchar(n),charactervarying(n) 最大长度为n的变长字符串
clob 字符串大对象
blob 二进制大对象
int,integer 长整数(4字节)
smallint 短整数(2字节)
bigint 大整数(8字节)
numeric(p,d) 定点数,p位数字(不包括符号、小数点)组成,小数点后面有d位数字
float(n) 可选精度的浮点数,精度至少为n位数字
boolean 逻辑布尔量
date 日期 格式为yyyy-mm-dd 例如2022-10-15
time 时间,包含一日的时分秒,格式为HH:MM:SS

3、修改基本表

ALERT TABLE <表名>
[ADD [COLUMN] <新列名><数据类型>[完整性约束]]
[ADD<表级完整性约束>]
[DROP [COLUMN]<列名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值