iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL关键字详解
  • 334
分享到

SQL关键字详解

数据库mysql 2023-10-07 12:10:05 334人浏览 泡泡鱼
摘要

当前市场中,数据库在互联网整个技术链中的重要性是亘古不变的,站在实现业务功能的角度来说我们最常用的就是与数据库和缓存进行交互,而最终持久化存储最常见的依旧是关系型数据库。数据库中我们做常用的就是sql基本查询语言,甚至有些人认为数据库就是S

当前市场中,数据库互联网整个技术链中的重要性是亘古不变的,站在实现业务功能的角度来说我们最常用的就是与数据库缓存进行交互,而最终持久化存储最常见的依旧是关系型数据库。数据库中我们做常用的就是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

您可能感兴趣的文档:

--结束END--

本文标题: SQL关键字详解

本文链接: https://www.lsjlt.com/news/424455.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • SQL关键字详解
    当前市场中,数据库在互联网整个技术链中的重要性是亘古不变的,站在实现业务功能的角度来说我们最常用的就是与数据库和缓存进行交互,而最终持久化存储最常见的依旧是关系型数据库。数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是S...
    99+
    2023-10-07
    数据库 mysql
  • Java 关键字:synchronized详解
    synchronized详解 基本使用源码解析常见面试题好书推荐 基本使用 Java中的synchronized关键字用于在多线程环境下确保数据同步。它可以用来修饰方法和代码块 当一...
    99+
    2023-10-20
    java 开发语言 并发编程 JUC synchronized 原力计划
  • 详解Java关键字final
    目录一、常见问题二、final修饰类三、final修饰方法四、final方法是可以被重载的五、修饰变量六、static final七、black final八、final域重排序规则...
    99+
    2022-11-12
  • Java中super关键字详解
    目录super有什么用?super什么时候不可以省略呢?super在内存图中是如何存在的呢?super使用时的注意事项总结super有什么用? (1)当子类中构造方法第一行没有sup...
    99+
    2022-11-13
  • Java关键字之instanceof详解
    目录1、obj 必须为引用类型,不能是基本类型2、obj 为 null3、obj 为 class 类的实例对象4、obj 为 class 接口的实现类5、obj 为 class 类的...
    99+
    2022-11-12
  • Java关键字之native详解
    目录1、JNI:Java Native Interface2、用C语言编写程序本地方法一、编写带有native声明的方法的java类二、使用javac命令编译所编写的java类,生成...
    99+
    2022-11-13
  • 详解Java的static关键字
    文章目录 🎄静态方法🌺静态方法和非静态方法对比🛸静态方法实例🛸非静态方法实例 🌹static关键字⭐static变量⭐static代码块 ...
    99+
    2023-12-22
    java 开发语言 static 静态方法
  • 详解JS中continue关键字和break关键字的区别
    目录1.框架2.简单介绍3.代码演示4.演示break1.框架 <!DOCTYPE html> <html> <head> ...
    99+
    2022-11-13
    JS continue break区别 JS continue break
  • C++ const关键字分析详解
    目录C语言中修饰变量C语言中修饰指针变量C语言中修饰函数的参数C++中修饰变量C++中修饰函数的参数C++中修饰函数的返回值C++中修饰类的成员函数C++中修饰类的成员变量总结C语言...
    99+
    2022-11-12
  • C# 中的partial 关键字详解
    目录引言分部类partial 分部限制分部接口和结构分部方法this 和 partial 的区别引言 partial 关键字用于拆分一个类、一个结构、一个接口或一个方法的定义到两个或...
    99+
    2022-11-13
  • Javasuper关键字的用法详解
    目录super关键字的三种用法:1. super.成员变量2. super.成员方法3. super():调用父类中的构造方法3.1.1 隐式调用父类无参数构造方法super()3....
    99+
    2022-11-12
  • js中的this关键字详解
    this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, 复制代码 代码如下:   function test(){  ...
    99+
    2022-11-15
    js this关键字
  • Python之33个关键字详解
    一、Python所有关键字查看 import keysword keyword.kwlist ['False','None', 'True','and','as', 'assert','break', 'class','c...
    99+
    2023-01-31
    详解 关键字 Python
  • 详解java中的transient关键字
    说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是IO流中对象流(也叫序列化流)的时候会讲到!相信...
    99+
    2019-12-18
    java transient
  • Javathis关键字的引用详解
    目录为什么要有this引用?什么是this引用this引用的特性为什么要有this引用? 我们先看一段代码示例 public class Date { public in...
    99+
    2022-11-13
  • Java static关键字详细解析
    目录static目的static范围静态(static)修饰静态变量静态方法静态代码块静态类static变量存储在方法区(Method Area)static目的 java中的sta...
    99+
    2022-11-13
  • C#中的yield关键字详解
    在"C#中,什么时候用yield return"中,我们了解到:使用yield return返回集合,不是一次性加载到内存中,而是客户端每调用一次就返回一个集合元...
    99+
    2022-11-13
  • C++中的explicit关键字详解
    目录前言1. 抑制构造函数定义的隐式转换2. 为转换显式地使用构造函数3. 类型转换运算符可能产生意外结果4. 显示的类型转换运算符5. explicit练习5.1 当不使用expl...
    99+
    2022-11-13
  • 详解Java中的final关键字
    目录概述使用方式修饰类修饰方法修饰变量概述 子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种...
    99+
    2022-11-13
    Java final关键字 Java final
  • C++ new 和 delete 关键字详解
    目录前言new 和 delete 的使用newdelete为数组分配内存和释放内存malloc 和 newdelete 和 delete[]前言 最早接触到new这个关键字,是在 J...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作