openGauss
开源数据库
openGauss社区官网
开源社区
新手小白如何进行简单的数据库操作
2022-07-14新手小白如何进行简单的数据库操作
新手小白如何进行简单的数据库操作
数据库是相关数据的集合,用户可以对数据进行访问、管理和更新。数据库相关对象包括数据块、行(元组)、列、表、数据文件、表空间、模式和事务。
数据块是数据库管理的基本单元。
一行是一组相关数据。
一列是一个字段,每个字段代表一种类型的数据。
表是 由行和列组成。
一般一张表对应一个数据文件,当每张表的数据大于 1GB,则会存储到多张数据文件中。
表空间是一个目录,用于为所有的数据库对象分配存储空间。创建数据库对象时可以指定表空间。如果不指定,默认存储到 PG_DEFAULT 表空间。
模式是数据库对象集,包括逻辑结构,例如表、视图、序、存储过程、索引等。
事务是数据库管理系统执行过程中的一个逻辑单位。事务须满足 ACID 特性。
那么对于新手小白,如何快速创建数据库、表、插入数据、更新数据等。下面提供一些具体示例帮助大家快速熟悉简单的数据库命令:
创建数据库 mogdb
MogDB=# create database mogdb; CREATE DATABASE
切换到新的数据库下并创建表 test,预览表结构
MogDB=# \c mogdb Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "mogdb" as user "ommdoc". mogdb=# CREATE TABLE test ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8), Amount integer );mogdb-# mogdb(# mogdb(# mogdb(# mogdb(# mogdb(# mogdb(# CREATE TABLE mogdb=#select * from test; c_customer_sk | c_customer_id | c_first_name | c_last_name | amount ---------------+---------------+--------------+-------------+-------- (0 rows)
向表 test 中插入数据并查看
mogdb=# INSERT INTO test (c_customer_sk, c_customer_id, c_first_name,Amount) VALUES (6885, 'maps', 'Joes',2200), (4321, 'tpcds', 'Lily',3000), (9527, 'world', 'James',5000);mogdb-# mogdb-# mogdb-# INSERT 0 3 mogdb=# select * from test; c_customer_sk | c_customer_id | c_first_name | c_last_name | amount ---------------+---------------+--------------+-------------+-------- 6885 | maps | Joes | | 2200 4321 | tpcds | Lily | | 3000 9527 | world | James | | 5000 (3 rows)
更新表中 c_customer_id 值为 world 的行的 amount 数量为 4000
mogdb=# update test set amount=4000 where amount=5000; UPDATE 1 mogdb=# select * from test; c_customer_sk | c_customer_id | c_first_name | c_last_name | amount ---------------+---------------+--------------+-------------+-------- 6885 | maps | Joes | | 2200 4321 | tpcds | Lily | | 3000 9527 | world | James | | 4000 (3 rows)
删除表中 c_customer_id 值为 world 的行并查看。如果不指定 where 语句,默认删除整张表的数据。
mogdb=# DELETE FROM test WHERE c_customer_id = 'world'; DELETE 1 mogdb=# select * from test; c_customer_sk | c_customer_id | c_first_name | c_last_name | amount ---------------+---------------+--------------+-------------+-------- 6885 | maps | Joes | | 2200 4321 | tpcds | Lily | | 3000 (2 rows)
mogdb=# delete from test; DELETE 2 mogdb=# select * from test; c_customer_sk | c_customer_id | c_first_name | c_last_name | amount ---------------+---------------+--------------+-------------+-------- (0 rows)
更多操作:
查看命令帮助信息
mogdb=# \h Available help: ABORT CREATE TABLE SUBPARTITION ALTER APP WORKLOAD GROUP CREATE TABLESPACE ALTER APP WORKLOAD GROUP MAPPING CREATE TEXT SEARCH CONFIGURATION ALTER AUDIT POLICY CREATE TEXT SEARCH DICTIONARY ALTER DATA SOURCE CREATE TRIGGER ALTER DATABASE CREATE TYPE
查询所有数据库
mogdb=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+--------+----------+-------------+-------------+------------------- abce | ommdoc | UTF8 | en_US.UTF-8 | zh_CN.UTF-8 | chinese | ommdoc | UTF8 | en_US.UTF8 | en_US.UTF8 | mogdb | ommdoc | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | postgres | ommdoc | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | ommdoc | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/ommdoc + | | | | | ommdoc=CTc/ommdoc template1 | ommdoc | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/ommdoc + | | | | | ommdoc=CTc/ommdoc (6 rows)
查询当前数据库中的所有表
mogdb=# \dt List of relations Schema | Name | Type | Owner | Storage --------+------+-------+--------+---------------------------------- public | test | table | ommdoc | {orientation=row,compression=no} (1 row)
查看表结构
mogdb=# \d test Table "public.test" Column | Type | Modifiers ---------------+--------------+----------- c_customer_sk | integer | c_customer_id | character(5) | c_first_name | character(6) | c_last_name | character(8) | amount | integer |
查看所有表空间
mogdb=# select * from pg_tablespace; spcname | spcowner | spcacl | spcoptions | spcmaxsize | relative ------------+----------+--------+------------+------------+---------- pg_default | 10 | | | | f pg_global | 10 | | | | f (2 rows)