声明式编程与命令式编程
声明式编程
• 声明式编程的核心在于告诉计算机**“做什么”**而不是“怎么做”。你只需要描述你想要的结果,具体的执行过程由编程语言的解释器或编译器来处理。这样的语言更加关注于表达力,允许程序员写出更简洁、更高层次的代码。
• 图片中提到的**SQL(用于数据库查询)和Prolog(用于逻辑编程)**都是声明式编程的例子。
命令式编程
• 相反,命令式编程关注于“怎么做”,也就是需要程序员指定程序的每一步操作。这种方式更接近机器处理的方式,给程序员提供了更高的控制度,但同时代码可能更加复杂。
• 图片中提到的Python和Scheme都是命令式编程的例子,它们要求程序员写出如何一步步执行任务的具体指令。
SQL 基本语法
Create
基本语法
CREATE TABLE [table_name] AS [select_statement];
这个语句的结构包括:
1. CREATE TABLE: 指令用于创建一个新的表。
2. [table_name]: 你想要创建的新表的名称。
3. AS: 关键字,用来指示新表的内容将来自于后面的SELECT语句的结果。
4. [select_statement]: 一个标准的SQL查询语句,其结果将用于填充新创建的表。
示例解析
这里使用了几个SELECT语句来定义表中的行,每个SELECT语句定义一行,并通过UNION命令连接每个查询,以确保所有结果合并为单个结果集。在每个SELECT语句中:
• 第一列被命名为parent,表示父母。
• 第二列被命名为child,表示孩子。
这种方式允许快速创建新表,并直接从字面量或计算结果中填充数据,非常适合于处理不需要从现有表中提取但又需要持久化的数据场景。
Select
基本语法
• SELECT: 指定要检索的列。
• FROM: 指定要查询的表。
• WHERE: 指定筛选条件,只有满足条件的行才会被包含在结果中。
• ORDER BY: 指定结果的排序方式。
示例解析
1. 查找特定父母的孩子:
这个查询从parents表中选择parent列为”ace”的所有行的child列。结果将是”ace”的所有孩子的名字。
2. 比较父母与孩子的名字:
这个查询选择了那些parent字段的字典顺序大于child字段的所有行的parent列。注意,这种类型的比较依赖于字符的字典顺序,实际应用中可能需要具体的业务逻辑来确定比较的准确性。
进阶用法
• 使用表达式:
SELECT语句中可以使用表达式来进行计算或转换数据,然后通过AS给计算结果指定一个别名。
这允许你在查询结果中包括派生列,这些列可能不直接存在于表中,而是通过计算得到。