整理一套sql语言的理解(修改中)

SQL简介

SQL(结构化查询语言)是用于访问和操作数据库中的数据的标准数据库编程语言。

SQL是关系数据库系统的标准语言。所有关系数据库管理系统(RDMS),如MySQL、MS Access、Oracle、Sybase、Informix、

Postgres和SQL Server都使用SQL作为它们的标准数据库语言。

RDBMS

RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

RDBMS 中的数据存储在被称为表的数据库对象中。

表是相关的数据项的集合,它由列和行组成。

列是表中的垂直实体,其包含与表中的特定字段相关联的所有信息。

SQL标准命令

与关系数据库交互的标准SQL命令是创建、选择、插入、更新、删除和删除,简单分为以下几组:

DDL(数据定义语言)
数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象。

用于操纵表结构的数据定义语言命令有:
CREATE TABLE-- 创建(在数据库中创建新表、表视图或其他对象)
ALTER TABLE-- 更改 (修改现有的数据库对象,如表)
DROP TABLE-- 删除 (删除数据库中的整个表、表或其他对象的视图)

DML(数据操纵语言)
数据操纵语言用于检索、插入和修改数据,数据操纵语言是最常见的SQL命令。

数据操纵语言命令包括:
INSERT-- 插入 (创建记录)
DELETE-- 删除 (删除记录)
UPDATE-- 修改(修改记录)
SELECT – 检索 (从一个或多个表检索某些记录) (又称为DQL数据查询语言

DCL(数据控制语言)
数据控制语言为用户提供权限控制命令。

用于权限控制的命令有:
GRANT-- 授予权限
REVOKE-- 撤销已授予的权限

SQL 语法规则

SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。
SQL语句以分号结尾。
SQL不区分大小写,意味着update与UPDATE相同。

一些最重要的 SQL 命令

SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

SQL SELECT 语法

SELECT 语法用于从数据库中选择数据。
返回的数据存储在结果表中,称为结果集。
基本语法:SELECT和FROM
在任何SQL查询语句中都:SELECT和FROM他们必须按顺序排列。SELECT指示要查看哪些列,FROM标识它们所在的表。

SQL SELECT 语法如下所示:

SELECT a,b FROM table;
SELECT * FROM table;

SQL SELECT DISTINCT 语法

SELECT DISTINCT语法用于仅返回不同的(different)值。
在一张表内,一列通常包含许多重复的值; 有时你只想列出不同的(different)值。
SELECT DISTINCT语句用于仅返回不同的(different)值。

SQL SELECT DISTINCT语法如下所示:

SELECT DISTINCT a,b FROM table;

SQL WHERE 子句

WHERE 子句用于过滤记录。
WHERE 子句用于提取满足指定标准的记录。

SQL WHERE 语法

SELECT a,b FROM table WHERE condition;
UPDATE table SET a =1  WHERE condition;
DELETE FROM table WHERE condition;

SQL AND & OR 运算符

AND&OR运算符用于根据一个以上的条件过滤记录,即用于组合多个条件以缩小SQL语句中的数据。
WHERE子句可以与AND,OR和NOT运算符结合使用。
AND和OR运算符用于根据多个条件筛选记录:
如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
如果使用AND运算符组合N个条件。对于SQL语句执行的操作(无论是事务还是查询),所有由AND分隔的条件都必须为TRUE。
如果由OR分隔的任何条件为真,则OR运算符显示记录。
如果使用OR运算符组合N个条件。对于SQL语句执行的操作(无论是事务还是查询),OR分隔的任何一个条件都必须为TRUE。
如果条件不为TRUE,则NOT运算符显示记录。

SELECT a, b FROM table WHERE condition AND condition AND condition;
SELECT a, b FROM table WHERE condition OR condition OR condition;
SELECT a, b FROM table WHERE NOT condition;

SQL ORDER BY 关键字

ORDER BY 关键字用于按升序或降序对结果集进行排序。
ORDER BY 关键字默认情况下按升序排序记录。
如果需要按降序对记录进行排序,可以使用DESC关键字。

SQL ORDER BY 语法

SELECT a, b FROM table ORDER BY a, b ASC|DESC;
SELECT a, b FROM table ORDER BY a ASC , b DESC;

SQL INSERT INTO 语句

INSERT INTO 语句用于向表中插入新的数据行。
SQL INSERT INTO 语法
INSERT INTO 语句可以用两种形式编写。
第一个表单没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据:

INSERT INTO table(a, b, c) VALUES (a, b, c);

第二种,如果要为表中的所有列添加值,则不需要在SQL查询中指定列名称。但是,请确保值的顺序与表中的列顺序相同。INSERT INTO语法如下所示:

INSERT INTO table VALUES (a,b,c,...);

什么是SQL NULL值?

SQL 中,NULL 用于表示缺失的值。数据表中的 NULL 值表示该值所处的字段为空。
具有NULL值的字段是没有值的字段。
如果表中的字段是可选的,则可以插入新记录或更新记录而不向该字段添加值。然后,该字段将被保存为NULL值。
值为 NULL 的字段没有值。尤其要明白的是,NULL 值与 0 或者包含空白(spaces)的字段是不同的。

IS NULL语法

SELECT a FROM table WHERE a IS NULL;

IS NOT NULL语法

SELECT a FROM table WHERE a IS NOT NULL;

SQL UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。

还可以使用AND或OR运算符组合多个条件。
SQL UPDATE 语法
具有WHERE子句的UPDATE查询的基本语法如下所示:

UPDATE table SET a = value1, b = value2, ... WHERE condition;

SQL DELETE 语句

DELETE语句用于删除表中现有记录。

SQL DELETE 语法

DELETE FROM table WHERE condition;

SQL 运算符

SQL算术运算符
假设变量 a 的值是:10,变量 b 的值是:20,以下为各运算符执行结果:

运算符描述例子
+加法,执行加法运算。例子(a + b 得到 30)
-减法,执行减法运算。例子(a - b 得到 -10)
*乘法,执行乘法运算。例子(a * b 得到 200)
/用左操作数除右操作数。例子(b / a 得到 2)
%用左操作数除右操作数并返回余数。例子(b % a 得到 0)

SQL比较运算符
假设变量 a 的值是:10,变量 b 的值是:20,以下为各运算符执行结果:

运算符描述例子
=检查两个操作数的值是否相等,如果是,则条件为真(true)。(a = b) is false.
!=检查两个操作数的值是否相等,如果值不相等则条件为真(true)。(a != b) is true.
<>检查两个操作数的值是否相等,如果值不相等则条件为真(true)。(a <> b) is true.
>检查左操作数的值是否大于右操作数的值,如果是,则条件为真(true)。(a > b) is false.
<检查左操作数的值是否小于右操作数的值,如果是,则条件为真(true)。(a < b) is true.
>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真(true)。(a >= b) is false.
<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真(true)。(a <= b) is true.
!<检查左操作数的值是否不小于右操作数的值,如果是,则条件变为真(true)。(a !< b) is false.
!>检查左操作数的值是否不大于右操作数的值,如果是,则条件变为真(true)。(a !> b) is true.

SQL逻辑运算符

运算符描述
ALLALL运算符用于将值与另一个值集中的所有值进行比较。
ANDAND运算符允许在SQL语句的WHERE子句中指定多个条件。
ANYANY运算符用于根据条件将值与列表中的任何适用值进行比较。
BETWEENBETWEEN运算符用于搜索在给定最小值和最大值内的值。
EXISTSEXISTS运算符用于搜索指定表中是否存在满足特定条件的行。
ININ运算符用于将值与已指定的文字值列表进行比较。
LIKELIKE运算符用于使用通配符运算符将值与类似值进行比较。
NOTNOT运算符反转使用它的逻辑运算符的含义。 例如:NOT EXISTS, NOT BETWEEN, NOT IN等等,这是一个否定运算符。
OROR运算符用于组合SQL语句的WHERE子句中的多个条件。
IS NULLIS NULL运算符用于将值与NULL值进行比较。
UNIQUEUNIQUE运算符搜索指定表的每一行的唯一性(无重复项)。

SQL 选择数据库 USE语句

当SQL Schema中有多个数据库时,在开始操作之前,需要选择一个执行所有操作的数据库。
SQL USE语句用于选择SQL架构中的任何现有数据库。
USE语句的基本语法如下所示 :

USE tablename;

SQL LIKE 运算符

在WHERE子句中使用LIKE运算符来搜索列中的指定模式。
有两个通配符与LIKE运算符一起使用:
% - 百分号表示零个,一个或多个字符
_ - 下划线表示单个字符

SQL IN 运算符

IN运算符允许您在WHERE子句中指定多个值。
IN运算符是多个OR条件的简写。

SQL IN 语法

SELECT * FROM table WHERE a IN (value1, value2, ...);
SELECT * FROM table WHERE a IN (SELECT STATEMENT);

SQL BETWEEN 运算符

BETWEEN运算符用于选取介于两个值之间的数据范围内的值。
BETWEEN运算符选择给定范围内的值。值可以是数字,文本或日期。
BETWEEN运算符是包含性的:包括开始和结束值,且开始值需小于结束值。

SQL BETWEEN 语法

SELECT * FROM table WHERE a BETWEEN value1 AND value2;
SELECT * FROM table WHERE a NOT BETWEEN value1 AND value2;

SQL INNER JOIN 关键字(内部连接)

内部链接INNER JOIN关键字选择两个表中具有匹配值的记录。
INNER JOIN 与 JOIN 是相同的。
SQL INNER JOIN 语法 (取交集)

SELECT column_name(s)  FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;

SQL 左连接 LEFT JOIN 关键字

SQL左链接LEFT JOIN关键字返回左表(表1)中的所有行,即使在右表(表2)中没有匹配。如果在正确的表中没有匹配,结果是NULL。
在一些数据库中,LEFT JOIN称为LEFT OUT ER JOIN。
SQL LEFT JOIN 语法(取左)

SELECT column_name(s) 
FROM table1 
LEFT JOIN table2 
ON table1.column_name=table2.column_name;               

SQL右连接 RIGHT JOIN 关键字

SQL右链接 RIGHT JOIN 关键字返回右表(table2)的所有行,即使在左表(table1)上没有匹配。如果左表没有匹配,则结果为NULL。
在一些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN。
SQL RIGHT JOIN 语法(取右)

SELECT column_name(s)
FROM table1
RIGHT JOIN table2 
ON table1.column_name = table2.column_name;

SQL FULL OUTER JOIN 关键字

当左(表1)或右(表2)表记录匹配时,FULL OUTER JOIN关键字将返回所有记录。
注意: FULL OUTER JOIN可能会返回非常大的结果集!
SQL FULL OUTER JOIN 语法

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 
ON table1.column_name = table2.column_name;

SQL自连接

自联接是一种常规联接,但表本身是连接的。
Self JOIN语法

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;

???
有时间再整。。。。。。。。。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值