我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL关键字详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL关键字详解

当前市场中,数据库在互联网整个技术链中的重要性是亘古不变的,站在实现业务功能的角度来说我们最常用的就是与数据库和缓存进行交互,而最终持久化存储最常见的依旧是关系型数据库。数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就是数据库。虽然这种观点是错误的,但是也确实从一个方面体现了这种面向结果的查询语言的重要性。

SQL语言:DDL、DML、DQL、DCL

  • 数据定义语言(DDL)

DDL全称是Data Definition Language,即数据定义语言,定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触发器等等。

数据定义语言是由SQL语言集中负责数据结构定义与数据库对象定义的语言,并且由CREATE、ALTER、DROP和TRUNCATE四个语法组成。

  • 数据操纵语言(DML)

数据操纵语言全称是Data Manipulation Language,主要是进行插入元组、删除元组、修改元组的操作。主要有insert、update、delete语法组成。

  • 数据查询语言(DQL)

数据查询语言全称是Data Query Language,所以是用来进行数据库中数据的查询的,即最常用的select语句

  • 数据控制语言(DCL)

数据控制语言:Data Control Language。用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。

比如常见的授权、取消授权、回滚、提交等等操作。

SQL语言的基本定义

(1)基本数据类型:

类型含义

char(n)

存放固定长度的字符串,用户指定长度为n。如果没有使用n个长度则会在末尾添加空格。

varchar(n)

可变长度的字符串,用户指定最大长度n。char的改进版,大多数情况下我们最好使用varchar。

int

整数类型

smallint

小整数类型

numeric(p,d)

定点数,精度由用户指定。这个数有p位数字(包括一个符号位)d位在小数点右边。

real ,double precision

浮点数和双精度浮点数。

float(n)

精度至少位n位的浮点数

(2)特殊关键字:

类型

含义

示例

primary key

主键,后面括号中是作为主键的属性

primary key(student_id)

foreign key references

外键,括号中为外键,references后为外键的表

foreign key(course_id) references Course

not null

不为空,前面为属性的定义

name varchar(10) not null

(3)SQL插入:

类型

含义

create table

创建一张表

insert into…values

向表中插入一条信息

delete from

从表中删除一条信息

update…set…where

在where的位置,更新内容为set的值

drop table

删除表

alter table…add

向表中添加某个属性

alter table…drop

将表中的某个属性删除

SQL查询:(SQL中最重要的就是查询)

(1)单关系查询:(只一张表中的内容查询有关信息,不涉及其他的表)

类型

含义

select

表示要查找出的表所含有的属性

from

表示要操作的表

where

判断条件,根据该判断条件选择信息

distinct

在select后加入关键字distinct表示将结果去重

all

在select后加入关键字all表示不去重(默认)

and

在where中使用and表示将判断条件连接起来

or

在where中使用or表示判断条件多选一

not

在where中使用not表示判断条件取反

(2)多关系查询:(多个表中通过一些操作查找出希望的信息

A,B

在from后面通过逗号连接多张表,表示将这些表进行笛卡儿积运算

natural join

将natural join关键字前后的两张表进行自然连接运算

A join B using(c)

将A和B通过c属性自然连接

A inner join B on内连接,只返回符合条件的行
A left join B on左连接,包含左边所有行,如果左边某行在右边无匹配,则结果为空(null)
A right join B on右连接,包含右边所有行,如果右边某行在左边无匹配,则结果为空(null)
A full join B on全外连接,包含full join左右两表中所有的行,如果左边某行在右边无匹配,则结果为空(null),如果右边某行在左边无匹配,则结果为空(null)
A cross join B on交叉连接,没有where子句的交叉连接将产生连接所涉及的表的笛卡尔积(笛卡尔积是第一个表行数乘以第二个表行数积的大小)

外连接(左连接、右连接、完全外连接)| outer join(left join、right join、full join)

内连接 | inner join

交叉连接 | cross join

(补充:笛卡尔积)

 

下面举例说明多关系表连接案例:

Student表                      course表

                      

 (1)A left join B on

select * from student left join course on student.ID=course.ID

 

(2)A right join B on

select * from student right join course on student.ID=course.ID

 

(3) A full join B on

select * from student full join course on student.ID=course.ID

(4) A inner join B on

select * from student inner join course on student.ID=course.ID

(5) A cross join B on

select * from student inner join course on student.ID=course.ID

(3)附加运算查询

类型

含义

as

将as前的关系起一个别名,在此语句中,可以用别名来代指这个表

*

在select中通过: “表名.*” 来表示查找出这个表中所有的属性

order by

让查询结果中的信息按照给定的属性排序(默认升序,上小下大)

desc

在order by之后的属性后使用,表示采用降序排序

asc

在order by之后的属性后使用,表示采用升序排序(默认)

between

在where中使用between表示一个数在两个数值之间取值

not between

between的反义词,在两个数之外取值

union/union all

将两个SQL语句做并运算,并且自动去重,添加all表示不去重

intersect/intersect all

将两个SQL语句做交运算,并且自动去重,添加all表示不去重

except/except all

将两个SQL语句做差运算,并且自动去重,添加all表示不去重

is null

在where中使用is null表示这个值是空值

is not null

在where中使用is not null表示这个值不是空值

(4)聚集函数运算查询

类型

含义

avg

平均值

min

最小值

max

最大值

sum

总和

count

计数

distinct

表示将distinct后的属性去重

group by

将在group by上取值相同的信息分在一个组里

having

对group by产生的分组进行筛选,可以使用聚集函数

来源地址:https://blog.csdn.net/XZB119211/article/details/128073748

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL关键字详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解Java的static关键字

文章目录 🎄静态方法🌺静态方法和非静态方法对比🛸静态方法实例🛸非静态方法实例 🌹static关键字⭐static变量⭐static代码块
详解Java的static关键字
2023-12-22

解析SQL中使用distinct关键字

SQL中distinct用法详解在SQL数据库中,我们经常会遇到需要去除重复数据的情况。此时,我们可以使用distinct关键字,它能够帮助我们去除重复数据,使得查询结果更加清晰和准确。distinct的基本使用方法非常简单,只需要在s
解析SQL中使用distinct关键字
2024-02-22

详解JS中continue关键字和break关键字的区别

在javascript中continue的作用是退出当前次循环,break的作用则是一旦当前循环有break那么直接退出整个循环。本文将通过一些示例为大家详细讲讲二者的区别,感兴趣的可以了解一下
2022-11-13

js中的this关键字详解

this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况,详细讨论this的用法,感兴趣的朋友可以了解下
2022-11-15

Python之33个关键字详解

一、Python所有关键字查看import keysword keyword.kwlist ['False','None', 'True','and','as', 'assert','break', 'class','continue'
2023-01-31

C++ Explicit关键字详细解析

以下是对C++中Explicit关键字的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
2022-11-15

详解java中的transient关键字

说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是IO流中对象流(也叫序列化流)的时候会讲到!相信很多人都是直到自己碰
详解java中的transient关键字
2019-12-18

编程热搜

目录