SQL 总结
SQL(Structured Query Language)是一种用于管理关系型数据库管理系统(RDBMS)的标准化查询语言。以下是SQL的一些主要方面和功能的总结:数据查询 SELECT语句: 用于从数据库中检索数据。 SELECT column1, column2 FROM table WHERE condition; WHERE子句: 用于过滤检索的数据。 SELECT * FROM table WHERE column > 100; ORDER BY子句: 用于对结果进行排序。 SELECT column1, column2 FROM table ORDER BY column1 ASC;数据操作 INSERT语句: 用于向数据库表中插入新的行。 INSERT INTO table (column1, column2) VALUES (value1, value2); UPDATE语句: 用于更新数据库表中的数据。 UPDATE table SET column1 = value1 WHERE condition; DELETE语句: 用于从数据库表中删除行。 ...
SQL 主机
在数据库和SQL的上下文中,"主机"(host)通常指的是数据库服务器的位置或地址,即存储数据库的物理或虚拟服务器。主机名或IP地址是用于标识数据库服务器位置的关键信息。连接到数据库时,通常需要提供以下信息:1. 主机名(Host)或 IP 地址: 指定数据库服务器的位置。2. 端口号(Port): 指定数据库服务器监听连接的端口。默认情况下,SQL Server使用1433端口,MySQL使用3306端口。3. 数据库名称(Database): 指定要连接的具体数据库的名称。4. 用户名(Username): 连接数据库的用户名。5. 密码(Password): 连接数据库的用户密码。一个典型的连接字符串(Connection String)可能如下所示(具体语法可能因数据库系统而异):Server=hostname_or_ip;Port=port_number;Database=database_name;User Id=username;Password=password;具体的连接字符串语法取决于你使用的数据库系统(例如,MySQL、SQL Server、P...
SQL 快速参考
当你使用 SQL 时,以下是一些常见的 SQL 查询和操作的快速参考:查询数据选择数据SELECT column1, column2 FROM table_name;条件选择SELECT * FROM table_name WHERE condition;过滤和排序排序SELECT column1, column2 FROM table_name ORDER BY column1 ASC|DESC;过滤重复行SELECT DISTINCT column1, column2 FROM table_name;过滤和聚合聚合函数SELECT COUNT(column1), AVG(column2), SUM(column3) FROM table_name WHERE condition;分组和聚合SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;修改数据插入数据INSERT INTO table_name (column1, column2) VALUES (value1, value2);更新数据UPDATE ...
SQL FORMAT()
FORMAT() 函数是在 SQL Server 中用于格式化日期和时间的函数。它的一般语法如下:FORMAT ( expression, format [, culture ] ) expression 是待格式化的日期或时间表达式。 format 是指定输出格式的格式字符串。 culture 是可选参数,用于指定格式化时使用的文化(语言和区域设置)。以下是一个简单的例子:SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS FormattedDate;上述查询会返回当前日期和时间的格式化字符串,类似于 "2023-12-26 15:30:00"。请注意,FORMAT() 函数在 SQL Server 中引入,因此如果你使用其他数据库系统,可能需要查看相应系统的文档以确定可用的日期和时间格式化函数。
SQL NOW()
在 SQL 中,NOW() 是一个常用的日期和时间函数,用于获取当前的日期和时间。具体语法如下:SELECT NOW();这将返回一个包含当前日期和时间的结果集。例如,如果你有一个表叫做 orders,包含一个列 order_date 存储订单的日期和时间,你可以使用 NOW() 函数来插入当前的日期和时间:INSERT INTO orders (order_date, product, quantity)VALUES (NOW(), 'ProductA', 10);这将在 orders 表中插入一行数据,其中 order_date 列的值将是当前的日期和时间。请注意,NOW() 函数的返回格式可能因数据库而异。在一些数据库中,它返回日期和时间的完整字符串,而在其他数据库中,它可能返回一个包含日期和时间部分的特殊类型。如果你想要特定的日期或时间部分,你可能需要使用其他日期和时间函数进行进一步的处理。
SQL ROUND()
ROUND() 是 SQL 中的数学函数,用于将数字舍入到指定的小数位数。具体语法如下:SELECT ROUND(column_name, decimal_places) FROM table_name;其中,column_name 是包含要舍入的数字的列的名称,而 decimal_places 是指定的小数位数。你也可以直接使用一个数字来舍入一个常数。例如,如果有一个表叫做 expenses,包含一个列 amount 存储费用金额,你可以使用以下 SQL 查询来将费用金额舍入到两位小数:SELECT ROUND(amount, 2) FROM expenses;这将返回 amount 列中所有费用金额舍入到两位小数的结果。如果你想对一个常数进行舍入,可以直接在查询中使用,如下所示:SELECT ROUND(123.456, 1);这将返回 123.5,因为数字 123.456 被舍入到一位小数。
SQL LCASE()
在 SQL 中,LCASE() 通常不是标准的函数名。通常,用于将字符串转换为小写的函数是 LOWER()。具体语法如下:SELECT LOWER(column_name) FROM table_name;其中,column_name 是包含要转换的文本的列的名称,而 table_name 是包含该列的表的名称。例如,如果有一个表叫做 employees,包含一个列 last_name 存储员工的姓氏,你可以使用以下 SQL 查询来获取小写的员工姓氏:SELECT LOWER(last_name) FROM employees;这将返回 last_name 列中所有姓氏的小写版本。如果要将整个字符串转换为大写,可以使用 UPPER() 函数。
SQL UCASE()
在 SQL 中,UCASE() 函数通常不是标准的函数名。通常,用于将字符串转换为大写的函数是 UPPER()。具体语法如下:SELECT UPPER(column_name) FROM table_name;其中,column_name 是包含要转换的文本的列的名称,而 table_name 是包含该列的表的名称。例如,如果有一个表叫做 employees,包含一个列 first_name 存储员工的名字,你可以使用以下 SQL 查询来获取大写的员工名字:SELECT UPPER(first_name) FROM employees;这将返回 first_name 列中所有名字的大写版本。如果要将整个字符串转换为小写,可以使用 LOWER() 函数。
SQL EXISTS
EXISTS 是 SQL 中的关键字,用于检查子查询是否返回任何行。EXISTS 子句返回布尔值(True 或 False),指示子查询是否返回了至少一行数据。具体语法如下:SELECT column1, column2, ...FROM table_nameWHERE EXISTS (SELECT column FROM table WHERE condition);在这个语法中,table_name 是主查询的表,column1, column2, ... 是你想要选择的列,而 condition 是用于筛选子查询结果的条件。例如,假设有两个表:orders 和 customers。你想要找到所有已下订单的客户,可以使用 EXISTS 子查询:SELECT customer_id, customer_nameFROM customersWHERE EXISTS (SELECT 1 FROM orders WHERE orders.customer_id = customers.customer_id);在这个例子中,EXISTS (SELECT 1 FROM orders WHER...
SQL HAVING
HAVING 子句通常与 GROUP BY 子句一起使用,用于在已分组的结果集上进行过滤。它允许你筛选分组后的数据,类似于 WHERE 子句对原始数据的筛选。具体语法如下:SELECT column1, column2, aggregate_function(column3)FROM table_nameWHERE conditionGROUP BY column1, column2HAVING condition;其中,column1, column2 是你想要分组的列,aggregate_function 是聚合函数,table_name 是表的名称,condition 是在分组后的结果上应用的筛选条件。与 WHERE 子句不同,HAVING 子句用于过滤分组而不是单独的行。例如,假设有一个表叫做 sales,包含列 product, region, revenue 存储产品销售数据。如果你想找到每个产品总销售额大于 1000 的地区,可以使用如下的 SQL 查询:SELECT product, region, SUM(revenue) as total_revenueFROM s...
SQL GROUP BY
GROUP BY 子句用于将结果集按照一个或多个列进行分组,并对每个组应用聚合函数(如 SUM、COUNT、AVG、MAX、MIN 等)。具体语法如下:SELECT column1, column2, aggregate_function(column3)FROM table_nameWHERE conditionGROUP BY column1, column2;其中,column1, column2 是你想要分组的列,aggregate_function 是聚合函数,table_name 是表的名称,而 condition 是可选的筛选条件。例如,如果有一个表叫做 sales,包含列 product, region, revenue 存储产品销售数据,你可以使用 GROUP BY 来按产品和地区分组,并计算每个组的总销售额:SELECT product, region, SUM(revenue) as total_revenueFROM salesGROUP BY product, region;这将返回每个产品在每个地区的总销售额。GROUP BY 子句通常与聚合函数一起使用,以...
SQL SUM()
SUM() 是 SQL 中的聚合函数之一,用于计算某列的总和。具体语法如下:SELECT SUM(column_name) FROM table_name WHERE condition;其中,column_name 是你要计算总和的列的名称,table_name 是包含该列的表的名称,而 condition 是可选的筛选条件,用于指定计算总和的行。例如,如果有一个表叫做 orders,包含一个列 total_amount 存储订单金额,你可以使用以下 SQL 查询来计算订单金额的总和:SELECT SUM(total_amount) FROM orders;如果你想计算满足某些条件的订单金额的总和,可以添加 WHERE 子句,比如:SELECT SUM(total_amount) FROM orders WHERE customer_id = 123;这将返回特定客户的订单金额总和。 SUM() 函数忽略 NULL 值,即不考虑含有 NULL 值的行。
SQL MIN()
MIN() 是 SQL 中的聚合函数之一,用于找到某列的最小值。具体语法如下:SELECT MIN(column_name) FROM table_name WHERE condition;其中,column_name 是你要找最小值的列的名称,table_name 是包含该列的表的名称,而 condition 是可选的筛选条件,用于指定找最小值的行。例如,如果有一个表叫做 sales,包含一个列 revenue 存储销售收入,你可以使用以下 SQL 查询来找到最小的销售收入:SELECT MIN(revenue) FROM sales;如果你想找到满足某些条件的销售收入的最小值,可以添加 WHERE 子句,比如:SELECT MIN(revenue) FROM sales WHERE region = 'North';这将返回北部地区销售收入的最小值。 MIN() 函数忽略 NULL 值,即不考虑含有 NULL 值的行。
SQL MAX()
MAX() 是 SQL 中的聚合函数之一,用于找到某列的最大值。具体语法如下:SELECT MAX(column_name) FROM table_name WHERE condition;其中,column_name 是你要找最大值的列的名称,table_name 是包含该列的表的名称,而 condition 是可选的筛选条件,用于指定找最大值的行。例如,如果有一个表叫做 sales,包含一个列 revenue 存储销售收入,你可以使用以下 SQL 查询来找到最大的销售收入:SELECT MAX(revenue) FROM sales;如果你想找到满足某些条件的销售收入的最大值,可以添加 WHERE 子句,比如:SELECT MAX(revenue) FROM sales WHERE region = 'North';这将返回北部地区销售收入的最大值。 MAX() 函数忽略 NULL 值,即不考虑含有 NULL 值的行。
SQL COUNT()
COUNT() 是 SQL 中的聚合函数之一,用于计算满足特定条件的行数。具体语法如下:SELECT COUNT(column_name) FROM table_name WHERE condition;其中,column_name 是你要计数的列的名称,table_name 是包含该列的表的名称,而 condition 是可选的条件,用于指定计数的行的筛选条件。例如,如果有一个表叫做 customers,包含一个列 customer_id 存储客户的唯一标识符,你可以使用以下 SQL 查询来计算客户的总数:SELECT COUNT(customer_id) FROM customers;如果你只想计算满足某个条件的客户数,可以添加 WHERE 子句,比如:SELECT COUNT(customer_id) FROM customers WHERE country = 'USA';这将返回美国客户的数量。 COUNT() 函数总是返回整数值,并且忽略 NULL 值,即不计入计数。如果要计算表的总行数而不考虑特定列的值,可以使用 COUNT(*):SELECT COUNT...
SQL AVG()
AVG() 是 SQL 中的聚合函数之一,用于计算数值列的平均值。具体语法如下:SELECT AVG(column_name) FROM table_name;其中,column_name 是你想要计算平均值的列的名称,而 table_name 是包含该列的表的名称。例如,如果有一个表叫做 grades,包含一个列 score 存储学生成绩,你可以使用以下 SQL 查询来计算平均成绩:SELECT AVG(score) FROM grades;这将返回该表中所有学生成绩的平均值。 AVG() 函数忽略 NULL 值,因此如果某个行的成绩列包含 NULL,则不会影响平均值的计算。
SQL NULL 函数
在 SQL 中,NULL 函数通常不是一个特定的函数,而是用于表示缺失或未知信息的特殊值。在 SQL 中,NULL 表示一个不存在的未知值或不适用的值。在处理 NULL 值时,有一些相关的函数和操作符,例如:1. IS NULL 和 IS NOT NULL: 用于检查一个列是否为 NULL 或不为 NULL。例如: SELECT * FROM table_name WHERE column_name IS NULL;2. COALESCE 函数: 用于返回参数列表中的第一个非 NULL 表达式。如果所有表达式都是 NULL,则返回 NULL。例如: SELECT COALESCE(column1, column2, 'DefaultValue') FROM table_name;3. IFNULL 和 NVL 函数: 用于返回一个非 NULL 表达式。例如: SELECT IFNULL(column_name, 'DefaultValue') FROM table_name; 或者 SELECT NVL(column_name, &#...
SQL NULL 值
在 SQL 中,NULL 是一种特殊的值,表示缺失或未知的数据。NULL 值不等于任何其他值,包括它本身。在数据库中,NULL 通常用于表示数据缺失、未知或不适用的情况。以下是一些与 NULL 值相关的重要概念和用法:1. 插入 NULL 值: 在插入数据时,可以使用 NULL 关键字表示某个列的值是未知的或不适用的。 INSERT INTO your_table (column1, column2, column3) VALUES (1, NULL, 'Some value');2. 比较 NULL 值: 使用 IS NULL 或 IS NOT NULL 来检查某个列是否包含 NULL 值。 SELECT * FROM your_table WHERE column2 IS NULL; SELECT * FROM your_table WHERE column2 IS NOT NULL;3. 使用 COALESCE 和 NULLIF 处理 NULL 值: - COALESCE 函数用于返回参数列表中的第一个非 NULL 值。...
SQL 日期
在 SQL 中,日期和时间是常见的数据类型,用于存储和操作与日期和时间相关的信息。以下是一些常见的 SQL 日期和时间函数,以及如何使用它们:1. 获取当前日期和时间: SELECT CURRENT_TIMESTAMP; 这将返回当前日期和时间。2. 获取当前日期: SELECT CURRENT_DATE; 这将返回当前日期,不包含时间部分。3. 获取当前时间: SELECT CURRENT_TIME; 这将返回当前时间,不包含日期部分。4. 格式化日期和时间: SELECT FORMAT(DATE, 'YYYY-MM-DD') AS formatted_date, FORMAT(TIME, 'HH:MI:SS') AS formatted_time FROM your_table; 这将返回格式化后的日期和时间字符串。5. 提取日期部分: SELECT DATE_PART('year', your_date_column) AS year, DATE_PART(...
SQL 视图
在 SQL 中,视图(View)是虚拟表,它基于一个或多个实际表的查询结果。视图本身并不存储数据,而是根据定义的查询生成数据。视图可以简化复杂的查询,隐藏底层表的结构,并提供一种安全的方式来访问特定列的数据。以下是创建和使用视图的基本语法:1. 创建视图: CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition; 在这个语法中,view_name 是视图的名称,table_name 是一个或多个表的名称,condition 是可选的筛选条件。2. 使用视图: 一旦视图被创建,可以像表一样使用它来执行查询。 SELECT * FROM view_name; 这将返回视图中定义的查询的结果。3. 更新视图: 视图可以被更新,但要注意的是,更新操作可能会受到视图定义中使用的条件的影响。 CREATE OR REPLACE VIEW view_name AS SELECT new_column1, new_column2, ... ...