sql高级回顾
sql高级回顾
SQL SELECT TOP 子句
SQL SELECT TOP 子句用于限制返回的结果集中的行数,通常用于只需查询几行数据的情况,数据集非常大时,可以显著提高查询性能。
说明
- SELECT TOP 在 SQL Server 和 MS Access 中使用,而在 MySQL 和 PostgreSQL 中使用 LIMIT 关键字。
- Oracle 在 12c 版本之前没有直接等效的关键字,可以通过 ROWNUM 实现类似功能,但在 12c 及以上版本中引入了 FETCH FIRST。
- 当使用 TOP 或 LIMIT 时,最好结合 ORDER BY 子句,以确保返回的行是特定顺序的前几行。
SQL Server / MS Access 语法
SELECT TOP number | percent column1, column2,...
FROM table_name
number|percent:指定返回的行数或百分比。
- number:具体的行数。
- percent:数据集的百分比。
MySQL 语法
SELECT column1,column2,...
FROM table_name
LIMIT number;
Oracle语法
SELECT column1,column2,...
FROM table_name
FETCH FITST namber RPWS PMLY;
PostgeSQL语法
SELECT column1,column2,...
FROM table_name
LIMIT number;
SQL LIKE 操作符
LINE操作符用于在WHERE子句中搜索列中的指定模式
LIKE 操作符是 SQL 中用于在 WHERE 子句中进行模糊查询的关键字,它允许我们根据模式匹配来选择数据,通常与 % 和 _ 通配符一起使用。
SQL LIKE 语法
SELECT column1, column2,...
FROM table_name
WHERE column_name LIKE pettern;
参数说明:
- column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
- column:要搜索的字段名称。
- pattern:搜索模式。
SQL 通赔符
在 SQL 中,通配符与 SQL LIKE 操作符一起使用。
SQL 通配符用于搜索表中的数据。
在 SQL 中,可使用以下通配符:
%:匹配任意字符(包括零个字符)。
_:匹配单个字符。
SQL IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);
SQL BETWEEN 操作符
BETWEEN 操作符选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期。
SELECT column1,column2,....
FROM table_name
WHERE column BETWEEN value1 AND value2;
参数说明:
-
column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
-
table_name:要查询的表名称。
-
column:要查询的字段名称。
-
value1:范围的起始值。
-
value2:范围的结束值。
SQL 别名
通过使用 SQL,可以为表名称或列名称指定别名。
列的 SQL 别名语法:SELECT colummn_name AS alias_name FORM table_name;
表的 SQL 别名语法:
SELECT colummn_name(s) FORM table_name AS alias_name;
SQL UNION 操作符
SQL UNION 操作符合并两个或多个 SELECT 语句的结果。
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。它可以从多个表中选择数据,并将结果集组合成一个结果集。使用 UNION 时,每个 SELECT 语句必须具有相同数量的列,且对应列的数据类型必须相似。
SQL UNION 操作符语法:
SELECT column1, column2,..
FROM table1
UNION
SELECT column1, column2...
FROM table2;
SQL SELECT INTO 语句
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
CREATE TABLE 新表
AS
SELECT * FROM 旧表
使用注意事项
表结构:
- SELECT INTO 会创建一个新表,并且新表的结构将基于选择的列和数据类型。
- 如果新表已经存在,SELECT INTO 语句将失败。在这种情况下,可以使用 INSERT INTO ... SELECT 语句。
数据库支持:
- SELECT INTO 语句在 SQL Server 中非常常用,但在 MySQL 和 PostgreSQL 中通常使用 CREATE TABLE ... AS SELECT 语句。
SQL INSERT INTO SELECT 语句
SQL INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
SQL INSERT INTO SELECT 语法
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
或者我们可以只复制指定的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
- 两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建;insert into select from 要求目标表存在。
SQL CREATE DATABASE 语句
SQL CREATE DATABASE 语句用于创建数据库。CREATE DATABASE dbname;
SQL CREATE TABLE 语句
CREATE TABLE 语句用于创建数据库中的表,表由行和列组成,每个表都必须有个表名。CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... );
SQL 约束(Constraints)
SQL 约束用于规定表中的数据规则。SQL CREATE TABLE + CONSTRAINT 语法:
在 SQL 中,我们有如下约束:CREATE TABLE table_name ( column_name1 data_type(size) constraint_name, column_name2 data_type(size) constraint_name, column_name3 data_type(size) constraint_name, .... );
- NOT NULL - 指示某列不能存储 NULL 值。
- UNIQUE - 保证某列的每行必须有唯一的值。
- PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
- FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
- CHECK - 保证列中的值符合指定的条件。
- DEFAULT - 规定没有给列赋值时的默认值。
- INDEX - 用于快速访问数据库表中的数据。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 loekr
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
Steam卡片