sql语句关键字external_数据库基础笔记-SQL
导语:如果说前端应⽤为⽹络世界搭建起了⼀座座房⼦,那么数据库数据就是住进这些房⼦的⼈。
⽹络世界(或者编程者的世界)与⼈类世界是相反的。编程世界的技术核⼼与真相,是在底层的。个⼈认为,⽆论是⽤怎样的架构部署,⽤怎样的语⾔编码或者⽅式展⽰,web应⽤和⼿机应⽤的底层,就是数据库⾥⾯的数据。在这些数据下⾯,有更底层的东西,值得我们去学习、去探索、去挖掘。或许哪天⼀不⼩⼼,我们就能挖到这个世界的真相。
思维导图:
1- 思维导图
1、数据库的定义
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是⼀个长期存储在计算机内的、有组织的、有共享的、统⼀管理的数据集合。
1、 数据库是⼀个实体,它是能够合理保管数据的“仓库”,⽤户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
2、 数据库是数据管理的新⽅法和技术,它能更合适的组织数据、更⽅便的维护数据、更严密的控制数据和更有效的利⽤数据。
2、数据库管理系统
数据库管理系统(Database Management System)是⼀种操纵和管理数据库的⼤型软件,⽤于建⽴、使⽤和维护数据库,简称DBMS。它对数据库进⾏统⼀的管理和控制,以保证数据库的安全性和完整性。⽤户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进⾏数据库的维护⼯作。它可以⽀持多个应⽤程序和⽤户⽤不同的⽅法在同时或不同时刻去建⽴,修改和询问数据库。⼤部分DBMS提供数据定义语⾔DDL(Data Definition Language)和数据操作语⾔DML(Data Manipulation Language),供⽤户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
3、数据库类型
3.1、关系型数据库
关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格⽐较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有Mysql,SqlServer等。
虽然关系型数据库有很多,但是⼤多数都遵循SQL(结构化查询语⾔,Structured Query Language)标准。 常见的操作有查询,新增,更新,删除,求和,排序等
3.2 ⾮关系型数据库(NoSQL)
NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的⽬的被设计。
⾮关系型数据库的分类:
(1)键值对存储(key-value):代表软件Redis,它的优点能够进⾏数据的快速查询,⽽缺点是需要存储数据之间的关系。
(2)列存储:代表软件Hbase,它的优点是对数据能快速查询,数据存储的扩展性强。⽽缺点是数据库的功能有局限性。
(3)⽂档数据库存储:代表软件MongoDB,它的优点是对数据结构要求不特别的严格。⽽缺点是查询性的性能不好,同时缺少⼀种统⼀查询语⾔。
(4)图形数据库存储:代表软件InfoGrid,它的优点可以⽅便的利⽤图结构相关算法进⾏计算。⽽缺点是要想得到结果必须进⾏整个图的计算,⽽且遇到不适合的数据模型时,图形数据库很难使⽤。
3.3 NoSQL 与关系型数据库的区别
⾸先⼀般⾮关系型数据库是基于CAP模型,⽽传统的关系型数据库是基于ACID模型的。
其次在 数据存储结构、可扩展性、数据⼀致性上,两者有⼀定的区别。
CAP定理:在理论计算机科学中,CAP定理(CAP theorem),⼜被称作布鲁尔定理(Brewer's theorem),它指出对于⼀个分布式计算系统来说,不可能同时满⾜以下三点:
⼀致性(Consistency)(所有节点在同⼀时间具有相同的数据)
可⽤性(Availability)(保证每个请求不管成功或者失败都有响应)
分隔容忍(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作)
ACID模型:ACID,是指数据库管理系统(DBMS)在写⼊/异动资料的过程中,为保证交易(transaction)是正确可靠的,所必须具备的四个特性:
原⼦性(Atomicity,或称不可分割性)、
⼀致性(Consistency)
隔离性(Isolation,⼜称独⽴性)
持久性(Durability)。
4、分布式数据库
所谓的分布式数据库技术,就是结合了数据库技术与分布式技术的⼀种结合。具体指的是把那些在地理意义上分散开的各个数据库节点,但在计算机系统逻辑上⼜是属于同⼀个系统的数据结合起来的⼀种数据库技术。
5、SQL定义与语法
5.1 什么是SQL
SQL 是⽤于访问和处理数据库的标准的计算机语⾔
SQL 指结构化查询语⾔
SQL 使我们有能⼒访问数据库
SQL 是⼀种 ANSI 的标准计算机语⾔
5.2 语法
SQL 对⼤⼩写不敏感。
SQL 分为两个部分:数据操作语⾔ (DML) 和 数据定义语⾔ (DDL)。DML部分:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插⼊数据
DDL部分:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
6、SQL基本语句
6.1、SELECT语句
SELECT 列名称 FROM 表名称 ;SELECT * FROM 表名称。SELECT 语句⽤于从表中选取数据。
结果被存储在⼀个结果表中(称为结果集)。
星号(*)是选取所有列的快捷⽅式。
6.2、distinct语句
关键词 DISTINCT ⽤于返回唯⼀不同的值。
SELECT DISTINCT 列名称 FROM 表名称
6.3、where语句
WHERE ⼦句⽤于规定选择的标准
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;
运算符:= <> > < >= <= BETWEEN LIKE AND OR
6.4、AND & OR语句
AND 和 OR 运算符⽤于基于⼀个以上的条件对记录进⾏过滤。
AND 和 OR 可在 WHERE ⼦语句中把两个或多个条件结合起来。
如果第⼀个条件和第⼆个条件都成⽴,则 AND 运算符显⽰⼀条记录。
如果第⼀个条件和第⼆个条件中只要有⼀个成⽴,则 OR 运算符显⽰⼀条记录。
6.5、Order By语句
ORDER BY 语句⽤于根据指定的列对结果集进⾏排序。
ORDER BY 语句默认按照升序(AES) 对记录进⾏排序。
如果您希望按照降序对记录进⾏排序,可以使⽤ DESC 关键字。
6.6、insert 语句
INSERT INTO 语句⽤于向表格中插⼊新的⾏;
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
mysql中delete语句6.7、update 语句
Update 语句⽤于修改表中的数据。
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
6.7、delete语句
DELETE 语句⽤于删除表中的⾏。
DELETE FROM 表名称 WHERE 列名称 = 值
6.8、Top⼦句
TOP ⼦句⽤于规定要返回的记录的数⽬。
注释:并⾮所有的数据库系统都⽀持 TOP ⼦句。
SQL Server 中:
SELECT TOP number|percent column_name(s) FROM table_name
MySql中:
SELECT column_name(s) FROM table_name LIMIT number
Oracle中:
SELECT column_name(s) FROM table_name WHERE ROWNUM <= number
6.9、通配符
在搜索数据库中的数据时,SQL 通配符可以替代⼀个或多个字符。
SQL 通配符必须与 LIKE 运算符⼀起使⽤。
% 替代⼀个或多个字符
_ 仅替代⼀个字符
[charlist] 字符列中的任何单⼀字符
[^charlist] 或者 [!charlist] 不在字符列中的任何单⼀字符
6.10、IN操作符
IN 操作符允许我们在 WHERE ⼦句中规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
6.11、Aliases别名
通过使⽤ SQL,可以为列名称和表名称指定别名(Alias)。
SELECT column_name AS alias_name FROM table_name
7、SQL基本数据库操作
7.1、JOIN表连接
SQL join ⽤于根据两个或多个表中的列之间的关系,从这些表中查询数据。
JOIN: 如果表中有⾄少⼀个匹配,则返回⾏
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的⾏
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的⾏
FULL JOIN: 只要其中⼀个表中存在匹配,就返回⾏
关键字语法:
SELECT column_name(s)
FROM table_name1
JOIN(或者INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN) table_name2
ON lumn_name=lumn_name
7.2、UNION合并
UNION 操作符⽤于合并两个或多个 SELECT 语句的结果集。
注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
关键字语法:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使⽤ UNION ALL。
7.3、表备份
SQL SELECT INTO 语句可⽤于创建表的备份复件。
SELECT INTO 语句从⼀个表中选取数据,然后把数据插⼊另⼀个表中。
SELECT INTO 语句常⽤于创建表的备份复件或者⽤于对记录进⾏存档。
语法:
SELECT * (或者指定列column_name(s))
INTO new_table_name [IN externaldatabase]
FROM old_tablename
注意:可以添加where⼦句,或者join连接等。
7.4、创建数据库

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。