翰高数据库语法
翰高数据库(HighGo Database)是一种关系型数据库,它兼容 PostgreSQL 语法,以下是其基本语法的详细介绍:
一、数据库操作
1. 创建数据库
- 语法:
CREATE DATABASE database_name;
- 例如:
CREATE DATABASE my_database;
创建一个名为my_database的数据库。这里database_name是要创建的数据库名称,名称要符合标识符的规则,不能包含特殊字符(除非用引号引用),并且在数据库实例中要具有唯一性。
2. 删除数据库
- 语法:
DROP DATABASE database_name;
- 注意:删除数据库是一个不可逆的操作,要谨慎使用。例如:
DROP DATABASE test_database;
将永久删除test_database,包括其中的所有表、数据等内容。
3. 连接数据库
- 一般通过数据库客户端工具,在命令行中使用语法类似于
psql -h host -p port -U user -d database
。其中-h是指定主机地址,-p是端口号,-U是用户名,-d是要连接的数据库名称。
二、表操作
1.创建表
- 语法:
CREATE TABLE table_name (
column1 data_type1 [constraint1],
column2 data_type2 [constraint2],
…
);
- 例如:
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
age INTEGER,
department VARCHAR(30)
);
- 解释:
table_name
是要创建的表的名称。column1、column2
等是表中的列名。data_type1、data_type2
是对应的列的数据类型,如VARCHAR
(可变长度字符串)、INTEGER
(整数)、DATE
(日期)等。constraint
可以是主键约束(PRIMARY KEY)
、唯一约束(UNIQUE)、非空约束(NOT NULL)
等。在上述例子中,id列是自增的主键(SERIAL类型在内部会自动创建一个序列来实现自增),name
是长度不超过 50 的字符串,age
是整数,department
是长度不超过 30 的字符串。
2.修改表
- 添加列
- 语法:
ALTER TABLE table_name ADD COLUMN new_column_name data_type [constraint];
- 例如:
ALTER TABLE employees ADD COLUMN salary DECIMAL(10,2);
在employees
表中添加了一个名为salary
的列,数据类型是小数,总长度为 10 位,其中小数部分占 2 位。
- 语法:
- 修改列的数据类型
- 语法:
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type;
- 例如:
ALTER TABLE employees ALTER COLUMN age TYPE BIGINT;
将employees
表中的age
列的数据类型从INTEGER
修改为BIGINT
。
- 语法:
- 删除列
- 语法:
ALTER TABLE table_name DROP COLUMN column_name;
- 例如:
ALTER TABLE employees DROP COLUMN department;
从employees
表中删除department
列。
- 语法:
3.删除表
- 语法:
DROP TABLE table_name;
- 例如:
DROP TABLE old_table;
将永久删除名为old_table
的表及其所有数据。
三、数据操作(DML:数据操纵语言)
1.插入数据
- 语法:
- 插入单条记录:
INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …);
- 例如:
INSERT INTO employees (name, age, department) VALUES ('John Doe', 30, 'IT');
向employees
表中插入一条记录,包含姓名John Doe
,年龄
30
,部门IT
。
- 插入单条记录:
- 插入多条记录:
INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …), (value3, value4, …), …;
例如:
INSERT INTO employees (name, age, department) VALUES ('Jane Smith', 28, 'HR'), ('Bob Johnson', 35, 'Finance');
同时插入两条记录到employees表。
2.查询数据
基本查询
- 语法:
SELECT column1, column2, … FROM table_name;
- 例如:
SELECT name, age FROM employees;
查询employees
表中的姓名和年龄列的数据。
条件查询
- 语法:
SELECT column1, column2, … FROM table_name WHERE condition;
- 例如:
SELECT name, age FROM employees WHERE age > 30;
查询employees
表中年龄大于 30 的员工的姓名和年龄。condition可以是比较运算(如>、<、=、>=、<=
)、逻辑运算(AND、OR、NOT
)等组合的表达式。
排序查询
- 语法:
SELECT column1, column2, … FROM table_name ORDER BY column_name [ASC|DESC];
- 例如:
SELECT name, age FROM employees ORDER BY age DESC;
按照年龄降序查询employees
表中的姓名和年龄列的数据。ASC
表示升序(默认),DESC
表示降序。
3.更新数据
- 语法:
UPDATE table_name SET column1 = value1, column2 = value2, … WHERE condition;
- 例如:
UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
将IT部门员工的工资提高 10%。WHERE子
句用于指定要更新的记录范围,如果省略WHERE
子句,则会更新表中的所有记录。
4.删除数据
- 语法:
DELETE FROM table_name WHERE condition;
- 例如:
DELETE FROM employees WHERE age < 25;
删除employees
表中年龄小于 25的员工记录。同样,要谨慎使用不带WHERE
子句的DELETE
语句,因为它会清空整个表的数据。
这只是翰高数据库基本语法的一部分,还有视图、索引、存储过程等高级特性的语法可以进一步深入学习和探索。