openGauss学习笔记-07 openGauss 语法
发布人:shili8
发布时间:2024-11-08 05:38
阅读次数:0
**OpenGauss 学习笔记 -07 OpenGauss语法**
在本章中,我们将重点介绍OpenGauss的SQL语法。OpenGauss是基于PostgreSQL的开源数据库管理系统,支持标准SQL语法,并且提供了许多扩展功能。
###1. 基础语法####1.1 SELECT语句SELECT语句用于从表中检索数据。基本语法如下:
sqlSELECT [ALL | DISTINCT] select_expressionFROM table_name;
* `ALL` 或 `DISTINCT` 可选,用于指定是否返回重复记录。
* `select_expression` 是要检索的列或表达式。
* `table_name` 是要从中检索数据的表名。
示例:
sqlSELECT * FROM employees;
####1.2 INSERT语句INSERT语句用于向表中插入新记录。基本语法如下:
sqlINSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);
* `table_name` 是要插入数据的表名。
* `column1`, `column2`, 等是要插入的列名。
* `value1`, `value2`, 等是要插入的值。
示例:
sqlINSERT INTO employees (name, age, department)VALUES ('John Doe',30, 'Sales');
####1.3 UPDATE语句UPDATE语句用于更新表中的记录。基本语法如下:
sqlUPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;
* `table_name` 是要更新的表名。
* `column1`, `column2`, 等是要更新的列名。
* `value1`, `value2`, 等是要更新的值。
* `condition` 是用于指定要更新哪些记录的条件。
示例:
sqlUPDATE employeesSET age =31, department = 'Marketing'WHERE name = 'John Doe';
####1.4 DELETE语句DELETE语句用于从表中删除记录。基本语法如下:
sqlDELETE FROM table_nameWHERE condition;
* `table_name` 是要删除的表名。
* `condition` 是用于指定要删除哪些记录的条件。
示例:
sqlDELETE FROM employeesWHERE name = 'John Doe';
###2. SQL 函数####2.1 NOW() 函数NOW() 函数用于返回当前日期和时间。
sqlSELECT NOW();
####2.2 RAND() 函数RAND() 函数用于返回一个随机数。
sqlSELECT RAND();
###3. SQL 操作符####3.1 = 操作符= 操作符用于比较两个值是否相等。
sqlSELECT * FROM employeesWHERE age =30;
####3.2 != 操作符!= 操作符用于比较两个值是否不相等。
sqlSELECT * FROM employeesWHERE age !=30;
####3.3 > 操作符> 操作符用于比较两个值的大小,返回 true 如果第一个值大于第二个值。
sqlSELECT * FROM employeesWHERE salary >50000;
####3.4 < 操作符< 操作符用于比较两个值的大小,返回 true 如果第一个值小于第二个值。
sqlSELECT * FROM employeesWHERE age < 30;
####3.5 >= 操作符>= 操作符用于比较两个值的大小,返回 true 如果第一个值大于或等于第二个值。
sqlSELECT * FROM employeesWHERE salary >=50000;
####3.6 <= 操作符<= 操作符用于比较两个值的大小,返回 true 如果第一个值小于或等于第二个值。
sqlSELECT * FROM employeesWHERE age <=30;
###4. SQL 分组函数####4.1 COUNT() 函数COUNT() 函数用于统计表中记录的数量。
sqlSELECT COUNT(*) FROM employees;
####4.2 SUM() 函数SUM() 函数用于计算表中某一列的总和。
sqlSELECT SUM(salary) FROM employees;
####4.3 AVG() 函数AVG() 函数用于计算表中某一列的平均值。
sqlSELECT AVG(salary) FROM employees;
####4.4 MAX() 函数MAX() 函数用于找出表中某一列的最大值。
sqlSELECT MAX(salary) FROM employees;
####4.5 MIN() 函数MIN() 函数用于找出表中某一列的最小值。
sqlSELECT MIN(salary) FROM employees;
###5. SQL 分组和排序####5.1 GROUP BY 子句GROUP BY 子句用于将表中的记录分组。
sqlSELECT department, AVG(salary)FROM employeesGROUP BY department;
####5.2 ORDER BY 子句ORDER BY 子句用于对表中的记录进行排序。
sqlSELECT * FROM employeesORDER BY salary DESC;
###6. SQL 子查询####6.1 子查询子查询是嵌套在另一个SQL语句中的SELECT语句。
sqlSELECT * FROM employeesWHERE department IN ( SELECT department FROM employees GROUP BY department HAVING COUNT(*) >5);
###7. SQL 联合查询####7.1 UNION 操作符UNION 操作符用于将两个或多个SELECT语句的结果集组合起来。
sqlSELECT * FROM employeesUNIONSELECT * FROM customers;
####7.2 INTERSECT 操作符INTERSECT 操作符用于找出两个或多个SELECT语句的结果集的交集。
sqlSELECT * FROM employeesINTERSECTSELECT * FROM customers;
####7.3 EXCEPT 操作符EXCEPT 操作符用于找出两个或多个SELECT语句的结果集的差异。
sqlSELECT * FROM employeesEXCEPTSELECT * FROM customers;
###8. SQL 视图####8.1 创建视图创建视图是使用CREATE VIEW语句来定义一个虚拟表。
sqlCREATE VIEW employee_summary ASSELECT name, department, salaryFROM employees;
####8.2 使用视图使用视图是使用SELECT语句来访问视图的数据。
sqlSELECT * FROM employee_summary;
###9. SQL 索引####9.1 创建索引创建索引是使用CREATE INDEX语句来定义一个索引。
sqlCREATE INDEX idx_name ON employees (name);
####9.2 使用索引使用索引是使用SELECT语句来访问索引的数据。
sqlSELECT * FROM employeesWHERE name = 'John Doe';
###10. SQL 触发器####10.1 创建触发器创建触发器是使用CREATE TRIGGER语句来定义一个触发器。
sqlCREATE TRIGGER trig_name BEFORE INSERT ON employeesFOR EACH ROW EXECUTE PROCEDURE my_function();
####10.2 使用触发器使用触发器是使用SELECT语句来访问触发器的数据。
sqlINSERT INTO employees (name, department) VALUES ('John Doe', 'Sales');
###11. SQL 存储过程####11.1 创建存储过程创建存储过程是使用CREATE PROCEDURE语句来定义一个存储过程。
sqlCREATE PROCEDURE my_procedure() ASBEGIN SELECT * FROM employees;END;
####11.2 使用存储过程使用存储过程是使用CALL语句来访问存储过程的数据。
sqlCALL my_procedure();
###12. SQL 函数####12.1 创建函数创建函数是使用CREATE FUNCTION语句来定义一个函数。
sqlCREATE FUNCTION my_function() RETURNS INTEGER ASBEGIN RETURN5;END;
####12.2 使用函数使用函数是使用SELECT语句来访问函数的数据。
sqlSELECT my_function();
###13. SQL 视图和索引####13.1 创建视图和索引创建视图和索引是使用CREATE VIEW和CREATE INDEX语句来定义一个视图和索引。
sqlCREATE VIEW employee_summary ASSELECT name, department, salaryFROM employees; CREATE INDEX idx_name ON employees (name);
####13.2 使用视图和索引使用视图和索引是