PostgreSQL GROUP BY
在 PostgreSQL 中,GROUP BY 子句用于将查询结果分组为一个或多个汇总行,通常与聚合函数(如 SUM、COUNT、AVG 等)一起使用。以下是 GROUP BY 子句的基本语法:SELECT column1, column2, ..., aggregate_function(column)FROM table_nameGROUP BY column1, column2, ...;其中: column1, column2, ... 是要分组的列。 aggregate_function(column) 是应用于每个组的聚合函数。以下是一些使用 GROUP BY 子句的示例:1. 单列分组:SELECT department, COUNT(*)FROM employeesGROUP BY department;在这个例子中,将员工按部门分组,并计算每个部门的员工数量。2. 多列分组:SELECT department, gender, AVG(salary)FROM employeesGROUP BY department, gender;在这个例子中,将员工按部门和性别分组...
PostgreSQL ORDER BY
在 PostgreSQL 中,ORDER BY 子句用于对查询结果进行排序。你可以指定一个或多个列,并指定升序(ASC)或降序(DESC)的排序方式。以下是 ORDER BY 子句的基本语法:SELECT column1, column2, ...FROM table_nameORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;其中: column1, column2, ... 是要检索的列。 table_name 是要从中检索数据的表格的名称。 ORDER BY 子句后面是要排序的列名,可以同时指定多个列。以下是一些使用 ORDER BY 子句的示例:1. 单列排序:SELECT * FROM employeesORDER BY last_name;在这个例子中,结果将按照姓氏升序排序。2. 多列排序:SELECT * FROM ordersORDER BY order_date DESC, customer_id;在这个例子中,首先按照订单日期降序排序,然后按照客户 ID 升序排序。3. 指定排序方式:SELECT * ...
PostgreSQL LIMIT
在 PostgreSQL 中,LIMIT 关键字用于限制 SELECT 语句返回的行数。这对于大型结果集来说是一个有用的特性,可以提高查询性能并减少网络传输的数据量。以下是一些 LIMIT 的基本用法示例:1. 限制返回的行数:SELECT * FROM employeesLIMIT 10;在这个例子中,LIMIT 10 将返回结果集的前 10 行。2. 结合 ORDER BY 进行分页:SELECT * FROM productsORDER BY price DESCLIMIT 5 OFFSET 10;在这个例子中,首先按价格降序排序产品,然后使用 LIMIT 5 OFFSET 10 来获取排序后的结果集的第 11 到 15 行,实现分页效果。3. 使用 FETCH FIRST:SELECT * FROM ordersORDER BY order_date DESCFETCH FIRST 5 ROWS ONLY;在 PostgreSQL 9.4 及更高版本中,你还可以使用 FETCH FIRST 关键字来限制返回的行数。4. 结合子查询使用 LIMIT:SELECT * FROM c...
PostgreSQL LIKE
在 PostgreSQL 中,LIKE 运算符用于在 WHERE 子句中进行模糊匹配。LIKE 可以与通配符一起使用,以实现对字符串的模糊搜索。以下是一些基本用法示例:1. 使用 % 通配符:SELECT * FROM employeesWHERE last_name LIKE 'S%';在这个例子中,LIKE 'S%' 将匹配姓氏以 'S' 开头的员工。2. 使用 _ 单字符通配符:SELECT * FROM productsWHERE product_name LIKE '_o%';在这个例子中,LIKE '_o%' 将匹配产品名称第二个字符是 'o' 的产品。3. 在任意位置使用 %:SELECT * FROM customersWHERE email LIKE '%gmail.com';在这个例子中,LIKE '%gmail.com' 将匹配邮箱地址以 'gmail.com' 结尾的客户。4. 组合多个通配符:SELECT * FROM...
PostgreSQL DELETE
在 PostgreSQL 中,DELETE 语句用于删除表格中的行。以下是 DELETE 语句的基本语法:DELETE FROM table_nameWHERE condition;其中: table_name 是要删除数据的表格的名称。 WHERE condition 是可选的,用于指定应该删除哪些行。如果省略 WHERE 子句,将删除表格中的所有行。以下是一些示例:1. 删除符合条件的行:DELETE FROM employeesWHERE department = 'HR';在这个例子中,将从 "employees" 表格中删除部门为 'HR' 的所有员工。2. 删除所有行:DELETE FROM products;在这个例子中,将删除 "products" 表格中的所有行。请小心使用这个语句,因为它会删除整个表格的数据。3. 使用子查询进行删除:DELETE FROM ordersWHERE customer_id IN (SELECT customer_id FROM customers WHERE la...
PostgreSQL UPDATE
在 PostgreSQL 中,UPDATE 语句用于修改表格中的现有行。以下是 UPDATE 语句的基本语法:UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;其中: table_name 是要更新数据的表格的名称。 column1 = value1, column2 = value2, ... 指定要更新的列及其新的值。 WHERE condition 是可选的,用于指定应该更新哪些行。如果省略 WHERE 子句,将更新表格中的所有行。以下是一些示例:1. 更新单个列的值:UPDATE employeesSET salary = 60000WHERE department = 'IT';在这个例子中,将 IT 部门的员工的薪水更新为 60000。2. 更新多个列的值:UPDATE productsSET price = price * 1.1, stock_quantity = stock_quantity - 10WHERE category = 'Elec...
PostgreSQL AND & OR
在 PostgreSQL 中,AND 和 OR 是逻辑运算符,用于连接多个条件,以构建更复杂的查询条件。这两个运算符通常与 WHERE 子句一起使用,以过滤检索的数据。使用 AND 运算符:AND 运算符用于将两个条件组合起来,要求两个条件都必须为真才能选择行。SELECT * FROM employeesWHERE department = 'IT' AND salary > 50000;在这个例子中,只有当部门为 'IT' 且薪水大于 50000 的条件同时满足时,相应的员工行才会被选择。使用 OR 运算符:OR 运算符用于将两个条件组合起来,只要其中一个条件为真,就选择行。SELECT * FROM employeesWHERE department = 'IT' OR department = 'HR';在这个例子中,只要部门为 'IT' 或 'HR' 的条件中的任何一个为真,相应的员工行就会被选择。结合 AND 和 OR:你还可以结合使用 AND 和 OR 来创建更复杂的查询...
PostgreSQL WHERE
在 PostgreSQL 中,WHERE 子句用于在 SELECT 语句中指定条件,以过滤检索的数据。WHERE 子句允许你根据指定的条件选择满足特定条件的行。以下是一些基本的 WHERE 子句的用法示例:1. 简单的条件:SELECT * FROM employeesWHERE department = 'IT';在这个例子中,WHERE department = 'IT' 用于筛选出部门为 'IT' 的员工。2. 使用比较运算符:SELECT * FROM productsWHERE price > 100;在这个例子中,WHERE price > 100 用于筛选出价格大于 100 的产品。3. 使用逻辑运算符:SELECT * FROM ordersWHERE status = 'Shipped' AND total_amount > 500;在这个例子中,WHERE status = 'Shipped' AND total_amount > 500 用于筛选出状态为 ...
PostgreSQL 表达式
在 PostgreSQL 中,表达式是由运算符、列、常量和函数组成的组合,用于产生一个单一的值。表达式可以用于 SELECT 语句的列列表、WHERE 子句、HAVING 子句以及其他需要单一值的地方。以下是一些 PostgreSQL 中常见的表达式:1. 算术表达式:SELECT salary * 1.1 AS increased_salary FROM employees;在这个例子中,salary * 1.1 是一个算术表达式,用于计算薪水的 10% 加成。2. 比较表达式:SELECT * FROM products WHERE price > 100;在这个例子中,price > 100 是一个比较表达式,用于筛选价格大于 100 的产品。3. 逻辑表达式:SELECT * FROM orders WHERE shipped_date IS NOT NULL AND total_amount > 500;在这个例子中,shipped_date IS NOT NULL AND total_amount > 500 是一个逻辑表达式,用于筛选已发货且总金额...
PostgreSQL 运算符
在 PostgreSQL 中,运算符用于执行各种操作,例如算术运算、逻辑运算、比较运算等。以下是一些常见的 PostgreSQL 运算符:1. 算术运算符: +:加法 -:减法 *:乘法 /:除法 %:取模(求余)SELECT salary + bonus FROM employees;2. 比较运算符: =:等于 != 或 <>:不等于 <:小于 >:大于 <=:小于等于 >=:大于等于SELECT * FROM products WHERE price > 100;3. 逻辑运算符: AND 或 &&:逻辑与 OR 或 ||:逻辑或 NOT 或 !:逻辑非SELECT * FROM employees WHERE department = 'IT' AND salary > 50000;4. 模糊匹配运算符: LIKE:模糊匹配(使用通配符 %) ILIKE:忽略大小写的模糊匹配SELECT * FROM customers WHERE last_name LIKE 'S%';5. IN...
PostgreSQL SELECT
在 PostgreSQL 中,SELECT 语句用于从一个或多个表中检索数据。以下是基本的 SELECT 语法:SELECT column1, column2, ...FROM table_nameWHERE condition;其中: column1, column2, ... 是要检索的列名,如果要检索所有列,可以使用 *。 table_name 是要从中检索数据的表格名称。 WHERE condition 是可选的,用于指定检索数据的条件。以下是一些示例:1. 检索所有列的数据: SELECT * FROM employees;2. 检索特定列的数据: SELECT id, name, salary FROM employees;3. 带有条件的检索: SELECT * FROM employees WHERE salary > 50000;4. 使用聚合函数(如 SUM、AVG): SELECT AVG(salary) FROM employees;5. 排序数据: SELECT * FROM employees ORDER BY salary...
PostgreSQL INSERT INTO
在 PostgreSQL 中,使用 INSERT INTO 语句向表格中插入数据。以下是基本的 INSERT INTO 语法:INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);其中: table_name 是要插入数据的表格名称。 column1, column2, column3, ... 是要插入数据的列名。 VALUES (value1, value2, value3, ...) 是要插入的实际值。例如,如果有一个名为 "employees" 的表格,包含列 "id", "name", 和 "salary",你可以使用以下语句插入一行数据:INSERT INTO employees (id, name, salary)VALUES (1, 'John Doe', 50000.00);如果你要插入所有列的值,可以省略列名:INSERT INTO emplo...
PostgreSQL 模式
在 PostgreSQL 中,模式(Schema)是一种组织和命名数据库对象(如表格、视图、函数等)的方式。模式是数据库的命名空间,允许你将数据库对象组织成逻辑组,并防止对象之间的命名冲突。每个数据库都包含一个默认模式,通常是 "public"。当你创建数据库对象时,如果没有明确指定模式,则它们将被放置在默认模式下。以下是一些有关 PostgreSQL 模式的基本操作:1. 查看所有模式:SELECT schema_nameFROM information_schema.schemata;2. 创建模式:CREATE SCHEMA schema_name;3. 切换模式:SET search_path TO schema_name;这将更改当前会话的搜索路径,使其包含指定的模式。4. 创建带有指定模式的表格:CREATE TABLE schema_name.table_name ( column1 datatype1, column2 datatype2, ...);5. 查看特定模式下的所有表格:SELECT table_nameFROM inf...
PostgreSQL 删除表格
在 PostgreSQL 中,你可以使用 DROP TABLE 语句删除一个表格。删除表格会连同其所有的数据一起删除,因此请确保在执行这个操作之前已经备份了重要的数据。基本的删除表格的语法如下:DROP TABLE table_name;其中,table_name 是你要删除的表格的名称。例如,如果要删除名为 "employees" 的表格,你可以执行以下命令:DROP TABLE employees;请小心使用这个命令,因为删除表格会永久删除所有的数据,而且无法恢复。如果你只是想删除表格中的数据而保留表格结构,可以使用 DELETE 语句,如下所示:DELETE FROM table_name;这将删除表格中的所有行,但保留表格结构。
PostgreSQL 创建表格
在 PostgreSQL 中,创建表格的基本语法如下所示:CREATE TABLE table_name ( column1 datatype1, column2 datatype2, column3 datatype3, ...);其中: CREATE TABLE 是创建表格的关键字。 table_name 是要创建的表格的名称。 column1, column2, column3 等是表格中的列名。 datatype1, datatype2, datatype3 等是列的数据类型。以下是一个示例,创建一个名为 "employees" 的表格,包含 id、name 和 salary 列:CREATE TABLE employees ( id serial PRIMARY KEY, name VARCHAR (100) NOT NULL, salary DECIMAL (10, 2));在上述示例中: id 列使用了 serial 数据类型,表示自增长的整数。 name 列使用了 VARCHAR (100) 数据类型,表示最...
PostgreSQL 删除数据库
在 PostgreSQL 中,你可以使用 DROP DATABASE 语句来删除数据库。删除数据库的语法如下:DROP DATABASE [IF EXISTS] database_name;其中,database_name 是你要删除的数据库的名称。IF EXISTS 是可选的,如果指定了它,那么当数据库不存在时,将不会发生错误。例如,如果要删除名为 "mydatabase" 的数据库,可以执行以下命令:DROP DATABASE IF EXISTS mydatabase;请注意,删除数据库会永久性地删除数据库及其所有相关数据,因此在执行此操作之前,请确保你已经备份了重要的数据或确保你真的希望删除这个数据库。在执行这个命令之前,通常你需要连接到一个不是要删除的数据库,因为不能删除当前正在使用的数据库。连接到 PostgreSQL 数据库后,可以通过 SQL 命令行或者其他 PostgreSQL 客户端工具执行上述命令。
PostgreSQL 选择数据库
在 PostgreSQL 中,要选择数据库可以使用 \c 命令,该命令的格式如下:\c [database_name] [username]其中,[database_name] 是你要连接的数据库名称,[username] 是连接数据库所需的用户名。你可以选择只提供数据库名称,系统将使用默认用户名连接,或者同时提供数据库名称和用户名。例如,如果要连接到名为 "mydatabase" 的数据库,可以这样:\c mydatabase如果连接时需要提供用户名,可以这样:\c mydatabase myusername请确保已经安装并启动了 PostgreSQL 数据库,然后通过命令行或者其他 PostgreSQL 客户端工具执行上述命令。
PostgreSQL 创建数据库
在 PostgreSQL 中,你可以使用 createdb 命令或者使用 SQL 语句来创建数据库。以下是两种方法的示例:方法一:使用 createdb 命令打开终端或命令行窗口,然后输入以下命令:createdb -U your_username -h your_host -p your_port -e your_database_name替换以下内容: your_username:你的 PostgreSQL 用户名 your_host:你的 PostgreSQL 主机地址,默认为 localhost your_port:PostgreSQL 服务器监听的端口,默认为 5432 your_database_name:要创建的数据库的名称示例:createdb -U postgres -h localhost -p 5432 -e mydatabase方法二:使用 SQL 语句1. 打开 PostgreSQL 命令行界面或通过图形工具连接到数据库。2. 执行以下 SQL 语句:CREATE DATABASE your_database_name;替换 your_database_nam...
PostgreSQL 语法
PostgreSQL 使用标准的 SQL 语法,同时也支持一些特定于 PostgreSQL 的扩展语法和功能。以下是一些常见的 PostgreSQL SQL 语法示例:1. 创建数据库:CREATE DATABASE your_database_name;2. 连接到数据库:\c your_database_name;3. 创建表:CREATE TABLE your_table_name ( id SERIAL PRIMARY KEY, name VARCHAR(255), age INT);4. 插入数据:INSERT INTO your_table_name (name, age) VALUES ('John Doe', 30);5. 查询数据:SELECT * FROM your_table_name;6. 更新数据:UPDATE your_table_name SET age = 31 WHERE name = 'John Doe';7. 删除数据:DELETE FROM your_table_name WHERE name =...
Mac OS 上安装 PostgreSQL
在 macOS 上安装 PostgreSQL 通常可以使用 Homebrew 包管理器来简化这一过程。以下是基本的步骤:使用 Homebrew 安装 PostgreSQL:1. 安装 Homebrew: 如果您尚未安装 Homebrew,可以在终端中执行以下命令来安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"2. 安装 PostgreSQL: 使用 Homebrew 安装 PostgreSQL: brew install postgresql3. 初始化数据库并启动服务: 执行以下命令初始化数据库并启动 PostgreSQL 服务: brew services start postgresql 这将使 PostgreSQL 服务在系统启动时自动启动,并启动现有的 PostgreSQL 数据库。手动安装 PostgreSQL:如果您不想使用 Homebrew,可以选择手动下载和安装 Po...