对PostgreSQL数据库的操作
快速启动PostgreSQL并进行基本的数据库操作。
在psql外部,命令以$符号开头,在psql内部则以#符号开头。
创建/删除数据库
建立数据库
如果在psql之外执行的话
$ createdb <DB name>
如果在psql中执行的话
# create database <DB name>;
删除数据库
如果在外部进行psql操作的情况下
$ dropdb <DB name>
如果在psql内执行的话
# drop database <DB name>;
显示DB清单
如果在psql之外进行操作的话
$ psql -l
如果在psql内执行
$ \l
进入/退出/切换数据库
输入数据库
可以通过不同的指定方式进入,但至少要确保不要忘记以下两点。
#DB名のみを指定して入る
$ psql <DB name>
#DB名とユーザー名を指定して入る
$ psql -U <User name> <DB name>
DB已经离开
MySQL只有exit;命令,而PostgreSQL有两个选项。都可以使用,不需要分号。
# \q
# exit
数据库切换
在psql内进行切换。以下两个选项均可使用。不需要使用分号。
# \c <DB name>
# \connect <DB name>
动作
展示DB操作的一套行为方式
sf213471118:postgres sf213471118$ psql -l /* 最初の状態 */
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------------+----------+---------+-------+-----------------------
postgres | sf213471118 | UTF8 | C | C |
template0 | sf213471118 | UTF8 | C | C | =c/ sf213471118 +
| | | | | sf213471118=CTc/ sf213471118
template1 | sf213471118 | UTF8 | C | C | =c/ sf213471118 +
| | | | | sf213471118=CTc/sf213471118
(3 rows)
sf213471118:postgres sf213471118$ createdb hogeDB /* hogeDB作成 */
sf213471118:postgres sf213471118$ psql -U aa291336 hogeDB /* hogeDB入 */
psql (11.4)
Type "help" for help.
hogeDB=# \connect postgres /* postgresに切替 */
You are now connected to database "postgres" as user "sf213471118".
postgres=# drop database "hogeDB"; /* hogeDB削除 */
DROP DATABASE
postgres=# \q /* postgres出 */
照上述的方式进行操作。
关于在 DB 内的字符处理情况
在上述行为中,关于hogeDB删除部分,如果不用””括起来,则
postgres=# drop database hogeDB;
2019-07-19 15:32:41.280 JST [57231] ERROR: database "hogedb" does not exist
2019-07-19 15:32:41.280 JST [57231] STATEMENT: drop database hogeDB;
ERROR: database "hogedb" does not exist
出现错误消息。此错误是由于 hogeDB 包含大写字母所导致的。
由于数据库是使用双引号创建的,因此区分大小写。
因此,在引用時需要使用雙引號””進行引述。
根据这件事情可以总结出
-
- psql外(DB外)
dropdb hogeDB –> 通る
dropdb “hogeDB” –> 通る
psql内(DB内)
drop database hogeDB –> 通らない
drop database “hogeDB” –> 通る
关于createdb/ create database,两者都不需要引用,因此不需要用””括起来。