SQL 基本语法
来源:互联网 发布:用手指舒服吗 知乎 编辑:程序博客网 时间:2024/05/22 17:47
SQL 语法
- 一个数据库通常包含一个或多个表。
- SQL 对大小写不敏感
某些数据库系统要求在每条 SQL 命令的末端使用分号
SQL DML 和 DDL
把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)
查询和更新指令构成了 SQL 的 DML 部分:
- 1
- 2
- 3
- 4
- 5
SQL 中最重要的 DDL 语句:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
SELECT 语句
- 1
- 2
- 3
SELECT DISTINCT 语句
关键词 DISTINCT 用于返回唯一不同的值。
- 1
- 2
WHERE 子句
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
- 1
- 2
AND & OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
- 1
- 2
- 3
- 4
ORDER BY 子句
ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照升序对记录进行排序,如果希望按照降序对记录进行排序,可以使用 DESC 关键字。
- 1
- 2
INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行
- 1
- 2
也可以只在指定列插入数据,没插入数据的列留空:
- 1
- 2
UPDATE 语句
Update 语句用于修改表中的数据。
- 1
- 2
DELETE 语句
DELETE 语句用于删除表中的行
- 1
- 2
TOP 子句
TOP 子句用于规定要返回的记录的数目。
SQL Server 的语法:
- 1
- 2
MySQL 语法
- 1
- 2
LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
- 1
- 2
- 3
- 4
举例:
- 1
- 2
- 3
通配符
% 替代一个或多个字符
_ 仅替代一个字符
IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。
- 1
- 2
- 3
- 4
BETWEEN 操作符
在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
- 1
- 2
- 3
- 4
- 5
JOIN
join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
- 1
- 2
- 3
- 4
除了 INNER JOIN(内连接),我们还可以使用其他几种连接。下面列出了可以使用的 JOIN 类型,以及它们之间的差异。
- 1
- 2
- 3
- 4
- 5
UNION 和 UNION ALL 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
- 1
- 2
- 3
- 4
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL:
- 1
- 2
- 3
- 4
按列拼接两条select语句的结果
SELECT INTO 语句
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
- 1
- 2
- 3
- 4
或者只把希望的列插入新表:
- 1
- 2
- 3
- 4
CREATE DATABASE 语句
- 1
- 2
CREATE TABLE 语句
CREATE TABLE 语句用于创建数据库中的表。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
NOT NULL 约束
NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
PRIMARY KEY 约束
PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
下面的 SQL 在 “Persons” 表创建时在 “Id_P” 列创建 PRIMARY KEY 约束:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
FOREIGN KEY 约束
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
CHECK 约束
CHECK 约束用于限制列中的值的范围。
下面的 SQL 在 “Persons” 表创建时为 “Id_P” 列创建 CHECK 约束。CHECK 约束规定 “Id_P” 列必须只包含大于 0 的整数。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
DEFAULT 约束
DEFAULT 约束用于向列中插入默认值
下面的 SQL 在 “Persons” 表创建时为 “City” 列创建 DEFAULT 约束:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
CREATE INDEX 语句
CREATE INDEX 语句用于在表中创建索引。
在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
您可以在表中创建索引,以便更加快速高效地查询数据。
用户无法看到索引,它们只能被用来加速搜索/查询。
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
在表上创建一个简单的索引。允许使用重复的值:
- 1
- 2
- 3
在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。
- 1
- 2
- 3
DROP
DROP 语句,可以轻松地删除索引、表和数据库。
使用 DROP INDEX 命令删除表格中的索引。
- 1
- 2
DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除)
- 1
- 2
DROP DATABASE 语句用于删除数据库:
- 1
- 2
ALTER TABLE 语句
如需在表中添加列,请使用下列语法:
- 1
- 2
- 3
要删除表中的列,请使用下列语法
- 1
- 2
- 3
要改变表中列的数据类型,请使用下列语法:
- 1
- 2
- 3
Date 函数
NULL 值
NULL 值是遗漏的未知数据。
默认地,表的列可以存放 NULL 值。
IS NULL 和 IS NOT NULL 操作符。
SQL 服务器 - RDBMS
现代的 SQL 服务器构建在 RDBMS 之上。
- DBMS - 数据库管理系统(Database Management System)
数据库管理系统是一种可以访问数据库中数据的计算机程序。
DBMS 使我们有能力在数据库中提取、修改或者存贮信息。
不同的 DBMS 提供不同的函数供查询、提交以及修改数据。
- RDBMS - 关系数据库管理系统(Relational Database Management System)
关系数据库管理系统 (RDBMS) 也是一种数据库管理系统,其数据库是根据数据间的关系来组织和访问数据的。
20 世纪 70 年代初,IBM 公司发明了 RDBMS。
RDBMS 是 SQL 的基础,也是所有现代数据库系统诸如 Oracle、SQL Server、IBM DB2、Sybase、MySQL 以及 Microsoft Access 的基础。
SQL 函数
SQL 拥有很多可用于计数和计算的内建函数。
内建 SQL 函数的语法是:
- 1
- 2
- AVG 函数
AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
- 1
- 2
- COUNT() 函数
COUNT() 函数返回匹配指定条件的行数,NULL 不计入。
- 1
- 2
SQL COUNT(*) 语法返回表中的记录数:
- 1
- 2
COUNT(DISTINCT column_name) 语法返回指定列的不同值的数目:
- 1
- 2
- FIRST() 函数
FIRST() 函数返回指定的字段中第一个记录的值。
- 1
- 2
- LAST() 函数
LAST() 函数返回指定的字段中最后一个记录的值。
- 1
- 2
- MAX() 函数、MIN() 函数
返回一列中的最大、小值。NULL 值不包括在计算中。
- 1
- 2
- SUM() 函数
SUM 函数返回数值列的总数(总额)。
- 1
- 2
- GROUP BY 语句
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
- 1
- 2
- 3
- 4
- 5
- HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
- 1
- 2
- 3
- 4
- 5
- 6
例子:
现在我们希望查找客户 “Bush” 或 “Adams” 拥有超过 1500 的订单总金额。
- 1
- 2
- 3
- 4
- 5
- UCASE() 函数、LCASE() 函数
UCASE 函数把字段的值转换为大写。
LCASE 函数把字段的值转换为小写。
- 1
- 2
- MID() 函数
MID 函数用于从文本字段中提取字符。
- 1
- 2
- LEN() 函数
LEN 函数返回文本字段中值的长度。
- 1
- 2
- ROUND() 函数
ROUND 函数用于把数值字段舍入为指定的小数位数。
- 1
- 2
decimals规定要返回的小数位数。
- NOW() 函数
NOW 函数返回当前的日期和时间。
- 1
- 2
- FORMAT() 函数
FORMAT 函数用于对字段的显示进行格式化。
- SQL基本语法【SQl】
- 基本SQL语法
- SQL基本语法A
- sql server 基本语法
- sql 基本语法
- -----------动态SQL基本语法------------
- 动态SQL基本语法
- SQL基本语法
- 基本SQL语法
- 《SQL基本语法》
- SQL的基本语法
- sql基本语法
- SQL数据库基本语法
- SQL基本语法
- sql编程基本语法
- 基本的SQL语法
- sql动态基本语法
- Oracle SQL基本语法
- Part1-HttpClient快速入门案例
- Spring MVC概述
- RxJava和RxAndroid
- Spring Cloud Sleuth Zipkin 升级使用
- Git中文版教程
- SQL 基本语法
- Spring+MyBatis常规整合
- 分类算法应用场景实例二十则
- 记录一次参加D2前端技术论坛的杭州之行
- 流水的编程语言,铁打的 Java、C/C++
- 分享一篇关于“Android源码”下载的过程
- Python中list,tuple,dict,set的区别和用法
- Kotlin入门
- Spring-boot 简单配置