0
点赞
收藏
分享

微信扫一扫

基础SQL学习

zhoulujun 2022-02-19 阅读 123

SQL---结构化查询语言,目前是关系数据库中的标准语言。其主要由DDL,DML,完整性,VIEW,事务控制,嵌入式SQL,动态SQL以及GRANT部分组成。

SQL标准:SQL-92,SQL-99,SQL-2003

DDL:

关系模式

属性的值域

完整性约束

每个关系的安全性和权限信息

磁盘上每个关系的物理存储结构

基本域类型:char,varchar,int,smallint,numeric,real,float,double,float....

create table:

create table r(A1D1,A2D2,......,AnDn)<完整性约束1>,......,<完整性约束n>,其中r为关系,Ai为关系的一个属性,Di为属性Ai的值域。

完整性约束很多,比如主码primary key(A1,A2,......Am).主码的唯一性和非空性

insert into table r values(A1,A2,......,An)

删除元组---delete from table r (只删除数据)

drop table r不只删除数据还删除DDL

alter table r add A D添加属性

alter table r drop A 删除属性

查询:

select -----project

from------笛卡尔积

where------谓词选择

select A1,A2,......,An from r1,r2,......,rn where P

去重distinct 比如select distinct A from r ,不去重 select all A from r

select * 表示所有属性,效率很低

where中可以逻辑连词and or not 比如select A from r where p1 and p2

更名:

oldname as newname

比如select A1,A2,A3 as N1,N2,N3 from r where P1 or P2

元组变量:as可以重命名元组变量,这个可以进行视觉区分,比较方便。

字符串运算:

%匹配任意字符串

_匹配任意一个字符

like 可以表达模式,比如select A1 from r where A1 like %KK_%

escape 可以定义转移字符,字符串处理有很多函数比如upper,lower等具体可查手册。

order by 让查询结果按排列顺序 desc降序,asc升序

集合运算:

union

intersect

except

聚集函数:

avg/min/max/sum/count

count(*)中不能使用distinct

having子句。如果同一个查询中同时存在where子句和having子句,SQL首先应用where子句中的谓词,满足where谓词的元组通过group by子句形成分组,having子句作用于每一个分组,符合having子句谓词的留下,不符合的丢弃。

空值:

可以用null测试,is null/is not null

is unknown/is not unknown

嵌套子查询

子查询是嵌套在另一个查询中的select-from-where表达式。in/not in

集合比较:

<some/<all等

exists测试是否存在,not exists

unique测试是否存在重复元组 not unique

复杂查询:

select-from-where 带着group by having等

with子句:可以使查询逻辑上更加清晰

视图:

隐藏那个数据的逻辑模型,只提供有限的数据能力。

create view as (SQL 复合语句)

物化视图:允许视图关系被存储,如果定义视图的实际关系改变,视图也相应修改。

视图维护:保证视图一直是最新的过程。

用其他视图定义视图

视图展开

数据库修改:

delete from r where p

insert into

转存insert into t1 select * from t2

update:

批量、单条

可更新视图:

from子句中只有一个数据库关系

select 子句中只包含关系的属性名,不包含任何表达式,聚集或distinct声明

任何没有出现在select子句中的属性可以取空值

查询中不包含有group by子句和having子句

事务:

commit/rollback

连接关系:

inner join  on

left outer join   on

natural inner join  on

natural right join on

连接条件using

full outer join

cross join

union join

举报

相关推荐

SQL基础学习-DCL

【SQL基础学习】----基础篇(2)

SQL基础学习-DML和DQL

【MySQL学习之基础篇】SQL

SQL语句学习+牛客基础39SQL

SQL基础

0 条评论