“数据库与SQL基础”的版本间的差异

来自小能手俱乐部
跳到导航 跳到搜索
第1行: 第1行:
= 简介 =
= '''什么是sql?''' =
SQL 是用于访问和处理数据库的标准的计算机语言。
SQL 是用于访问和处理数据库的标准的计算机语言。


虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。
我们日常工作当中,使用的是类似mySQL、oracle这类的数据库管理系统,这些数据库管理系统都遵循SQL语言。我们以来SQL语言来与数据库进行交流与沟通,对于从事变成与互联网行业的人来说,SQL语言是一个非常重要的语言。自从SQL加入了TIOBE编程语言排行榜,就一直保持在TOP10。


然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。


完全基于标准 SQL 的 RDBMS 很少,通常需要根据不同的 RDBMS 来编写特定的 SQL 语句,原则上,本课程介绍的是标准 SQL 的书写方式。
虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。完全基于标准 SQL 的 RDBMS 很少,通常需要根据不同的 RDBMS 来编写特定的 SQL 语句,原则上,本课程介绍的是标准 SQL 的书写方式。


根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类.
 
sql语言按照功能划分主要分为以下四个部分
 
DDL(data definition language):数据定义语言,我们用来定义我们的数据库对象,包括数据库、数据表、列等,通过ddl我们可以创建、删除修改数据库和表结构。
 
DML(data manipulation language):数据库操作语言,我们用它来操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。
 
DCL(data control language):数据控制语言,我们用它来定义访问权限和安全级别
 
DQL(data query language ):数据查询语言,我们用它来查询想要的记录,他是SQL语言中的重中之重,在实际使用当中也是我们用到的最多的。


== DDL ==
== DDL ==
第33行: 第41行:
* REVOKE : 取消用户的操作权限
* REVOKE : 取消用户的操作权限


= '''什么是dbms:''' =


== '''db dbs dbms:''' ==
db:database也就是数据库,数据库是存储数据得集合。


= 基础内容 =
dbms:DataBase Management System 数据库管理系统,实际上他可以对多个数据库进行管理,相当于DBMS =多个DB+管理程序。
 
=== SELECT 使用 ===
SELECT 语句用于从数据库中选取数据。
 
结果被存储在一个结果表中,称为结果集。<syntaxhighlight lang="sql" line="1">
SELECT column_name,column_name FROM table_name;
 
SELECT * FROM table_name;
 
</syntaxhighlight>
 
=== SELECT DISTINCT 使用 ===
SELECT DISTINCT 语句用于返回唯一不同的值。<syntaxhighlight lang="sql" line="1">
SELECT DISTINCT column_name FROM table_name;
 
SELECT DISTINCT column_name1,column_name2 FROM table_name; -- 多个字段效果等同于下面的语句
SELECT column_name1,column_name2 FROM TABLE_NAME GROUP BY column_name1,column_name2
</syntaxhighlight>
 
=== WHERE 使用 ===
WHERE 子句用于提取那些满足指定条件的记录。<syntaxhighlight lang="sql" line="1">
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
</syntaxhighlight>WHERE 子句中的运算符:
 
in 中间包含的数值数量不应超过1000
{| class="wikitable"
|+
|=
|等于
|-
|<>
|不等于。'''注释:'''在 SQL 的一些版本中,该操作符可被写成 !=
|-
|>
|大于
|-
|<
|小于
|-
|>=
|大于等于
|-
|<=
|小于等于
|-
|BETWEEN
|在某个范围内
|-
|LIKE
|搜索某种模式
|-
|IN
|指定针对某个列的多个可能值
|}
 
=== AND & OR 运算符 ===
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
 
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
 
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
 
=== ORDER BY ===
ORDER BY 关键字用于对结果集进行排序。
 
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。


ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
dbs database system 数据库系统,他是比数据库更大的概念,包括了数据库、数据库管理系统、以及数据库管理员(dba)


==== ORDER BY 字段 ASC ====
== '''常见dbms介绍''' ==
默认是 升序排列,可以不加asc
数据库排名:


==== ORDER BY 字段 DESC ====
https://db-engines.com/en/ranking
字段降序排列


==== ORDER BY 多个字段 ====
数据库排名图片
多个字段排序使用逗号分割<syntaxhighlight lang="sql" line="1">


SELECT * FROM Websites ORDER BY country,alexa;
从上图可以看除 使用最多的是oracle、mysql、SQL server


</syntaxhighlight>
关系型数据库(RDBMS)是建立在关系模型基础上的数据库,sql就是关系型数据库的查询语言。


=== INSERT INTO 使用 ===
相比sql,nosql泛指非关系型数据库,如上图中的key-value、Document等


INSERT INTO 语句用于向表中插入新记录。
== '''sql与nosql''' ==
NoSql分类很多,刚才提到的key-value、document、wide column、Search engine


INSERT INTO 语句可以有2种编写形式。
= '''sql如何执行''' =


第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:<syntaxhighlight lang="sql" line="1">
== '''oracle中如何执行''' ==
INSERT INTO table_name VALUES (value1,value2,value3,...);
</syntaxhighlight>第二种形式需要指定列名及被插入的值:<syntaxhighlight lang="sql">
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
</syntaxhighlight>还有一种情况insert的数值来源于另外一个查询的结果集,这时候需要结果数据集的列数与所插入的表要对应。<syntaxhighlight lang="sql" line="1">
INSERT INTO table_name (column1,column2,column3,...) select value1,value2,value3,... from table2 ;
</syntaxhighlight>


=== DELETE 使用 ===
oracle sql执行图


DELETE 语句用于删除表中的记录。<syntaxhighlight lang="sql" line="1">
== '''mysql中如何执行''' ==
DELETE FROM table_name
mysql sql执行图
WHERE some_column=some_value;
</syntaxhighlight>


数据库表


删除该表所有数据<u>'''(风险操作)'''</u>:<syntaxhighlight lang="sql">
数据库分区
DELETE FROM table_name;
DELETE * FROM table_name;


TRUNCATE TABLE tablename;-- 清除后的数据无法恢复
数据库索引
</syntaxhighlight><blockquote>
delete删除大量数据时可能会导致数据库undo表空间撑满,而引发回滚。


truncate不占用undo表空间,但是无法恢复删除数据。
数据库函数


可采用分批delete数据,或者在表设计时合理划分表空间,采用truncate表空间方式清理数据。</blockquote>
数据库视图


=== UPDATE 使用 ===
数据库存储过程


Update 语句用于修改表中的数据。<syntaxhighlight lang="sql">
<blockquote>
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
</syntaxhighlight><blockquote>
'''请注意 SQL UPDATE 语句中的 WHERE 子句!'''


WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!</blockquote>
</blockquote>


= 进阶内容 =
= 进阶内容 =

2021年10月7日 (四) 02:54的版本

什么是sql?

SQL 是用于访问和处理数据库的标准的计算机语言。

我们日常工作当中,使用的是类似mySQL、oracle这类的数据库管理系统,这些数据库管理系统都遵循SQL语言。我们以来SQL语言来与数据库进行交流与沟通,对于从事变成与互联网行业的人来说,SQL语言是一个非常重要的语言。自从SQL加入了TIOBE编程语言排行榜,就一直保持在TOP10。


虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。完全基于标准 SQL 的 RDBMS 很少,通常需要根据不同的 RDBMS 来编写特定的 SQL 语句,原则上,本课程介绍的是标准 SQL 的书写方式。


sql语言按照功能划分主要分为以下四个部分

DDL(data definition language):数据定义语言,我们用来定义我们的数据库对象,包括数据库、数据表、列等,通过ddl我们可以创建、删除修改数据库和表结构。

DML(data manipulation language):数据库操作语言,我们用它来操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。

DCL(data control language):数据控制语言,我们用它来定义访问权限和安全级别

DQL(data query language ):数据查询语言,我们用它来查询想要的记录,他是SQL语言中的重中之重,在实际使用当中也是我们用到的最多的。

DDL

DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。

  • CREATE : 创建数据库和表等对象
  • DROP : 删除数据库和表等对象
  • ALTER : 修改数据库和表等对象的结构

DML

DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。

  • SELECT :查询表中的数据
  • INSERT :向表中插入新数据
  • UPDATE :更新表中的数据
  • DELETE :删除表中的数据

DCL

DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。

  • COMMIT : 确认对数据库中的数据进行的变更
  • ROLLBACK : 取消对数据库中的数据进行的变更
  • GRANT : 赋予用户操作权限
  • REVOKE : 取消用户的操作权限

什么是dbms:

db dbs dbms:

db:database也就是数据库,数据库是存储数据得集合。

dbms:DataBase Management System 数据库管理系统,实际上他可以对多个数据库进行管理,相当于DBMS =多个DB+管理程序。

dbs database system 数据库系统,他是比数据库更大的概念,包括了数据库、数据库管理系统、以及数据库管理员(dba)

常见dbms介绍

数据库排名:

https://db-engines.com/en/ranking

数据库排名图片

从上图可以看除 使用最多的是oracle、mysql、SQL server

关系型数据库(RDBMS)是建立在关系模型基础上的数据库,sql就是关系型数据库的查询语言。

相比sql,nosql泛指非关系型数据库,如上图中的key-value、Document等

sql与nosql

NoSql分类很多,刚才提到的key-value、document、wide column、Search engine

sql如何执行

oracle中如何执行

oracle sql执行图

mysql中如何执行

mysql sql执行图

数据库表

数据库分区

数据库索引

数据库函数

数据库视图

数据库存储过程

进阶内容

函数

常用函数

更多数据库函数参考数据库SQL函数

存储过程

存储过程使用

更多数据库函数参考数据库存储过程

其他学习资源

阿里的sql训练营:https://tianchi.aliyun.com/course/309/3584

菜鸟教程的sql:https://www.runoob.com/sql/sql-tutorial.html

w3c school 的sql教程:https://www.w3school.com.cn/sql/index.asp