第四章 SQL(Structured Query Language)语言

SQL就一直是关系数据库管理系统(RDBMS)

SQL语言按其功能可分为:数据定义数据查询数据操作数据控制,主要特点有:一体化,高度非过程化,面向集合的操作方式,提供多种方式使用,语言简洁。

NOT NULL:非空约束,限制列取值非空

PRIMARY KEY:主键约束,指定本列为主键

FOREIGN KEY:外键约束,定义本列为引用其他表的外键 foreign key (列名)references <外表名>(<外表列名>)

UNIQUE:唯一值约束,限制列取值不能重复

DEFAULT:默认值约束,指定列的默认值 default 常量表达式

CHECK:列取值范围约束,限制列的取值范围 check (逻辑表达式)

数据库创建:create database<数据库名>

数据库删除:drop database<数据库名>

表的创建:create table <表名> (完整性约束定义)

输入记录:insert into [字段名] values <记录>

修改列定义:alter table <表名> alter column<列名><新数据类型>

添加新列:alter table <表名>  add <列名><数据类型><约束>

删除列:alter table <表名> drop column<列名>

添加约束:alter table <表名>add 约束定义

删除约束:alter table<表名> drop 约束名

单表查询:select <目标列名序列> from <表名>where <行选择条件>group by <分组依据>HAVING<组选择条件>order by <排序依据列>

like 运算符的一般语法格式为:

列名【NOT】like <匹配串>

_(下划线):匹配任意一个字符

%(百分号):匹配0到多个字符

[]:匹配[]中的任意一个字符,如[acdg]表示匹配a、c、d和g中的任何一个,若要比较的字符是连续的,则可用连字符-表示,例如,若匹配acde中的全部字符,则可以表示为[b-e],不匹配的话表示[^b-e]

[^]不匹配[]中的字符

元组更新:

update <表名> set 列名=表达式(子查询)【列名=表达式】【where 条件表达式】

排序可以是从小到大(升序)也可以是从大到小(降序)

order by 列名[ASC|DESC]

COUNT(*):统计表中元组的个数

COUNT([distinct]<列名>):统计本列的列值个数,distinct 选项表示去掉列的重复值后再统计

SUM(<列名>):求和,必须是数值

AVG(<列名>):求平均值,必须是数值

MAX(<列名>):求最大

MIN(<列名>):求最小

HAVING 子句用来对分组后的统计结果再进行筛选,必须与group by 连用

子查询:只能由外层向内层传递参数而不能内层向外层传递,这叫做变量的作用域原则

内连接:

(1) ANSI方式的内连接语法格式为:

FROM表1INNER JOIN 表2 ON <连接条件>

(2) Theta方式的内连接语法格式为:

FROM表1,表2 WHERE <连接条件> 
带EXISTS谓词的子查询

EXISTS代表存在量词⺕。使用带EXISTS谓词的子查询可以进行存在性测试,其基本使用形式为:

WHERE [NOT] EXISTS (子查询)

带EXISTS谓词的子查询不返回查询的数据,只产生逻辑真值或假值。
 EXISTS的含义是:当子查询中有满足条件的数据时,返回真值;否则返回假值。
. NOT EXISTS的含义是:当子查询中有满足条件的数据时,返回假值;否则返回
SQL同时也提供了与关系代数中集合运算并、交和关和差对应的谓词为:
UNION、INTERSECT和EXCEPT

定义视图的SQL语句为CREATE VIEW,其一般格式如下:

CREATE VIEW <视图名>[(列名[ ,..n]) ]
AS
SELECT语句
在定义视图时注意以下几点:
(1) SELECT 语句中通常不包含ORDER BY和DISTINCT子旬.
(2)在定义视图时要么指定视图的全部列名,要么全部省略
修改视图 修改视图定义的 SQL 语句为 ALTER VIEW,其语法格式如下:

 ALTER VIEW <视图名>[(飞列名>[,…n])] AS SELECT 语句 

例4.70修改上个例题创建的视图,使其包含学生的年龄信息。

 ALTER VIEW V_Grade_CS AS SELECT S. Sno, Sname, YEAR(GETDATE())-YEAR(Sbirthday)Sage, C. Cno, Cname, Grade FROM Student S, SC, Course C WHERE S. Sno=SC. Sno AND SC. Cno=C. Cno AND Sdept='计算机系'
删除视图:

drop view <视图名>

例:drop view teach

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值