testbook

创建/删除/修改数据库:CREATE/DROP/ALTER DATABASE

创建数据库:CREATE DATABASE

CREATE DATABASE语句创建一个给定名称的数据库。在创建时,我们可以选择加上注解,指定目录和附加属性。
语法
CREATE DATABASE database_name [LOCATION hdfs_path];
举例
假设我们想要为某个股票交易平台建设一个数据库exchange_platform;
[$host]transwarp> CREATE DATABASE exchange_platform;
说明
Inceptor会为每一个数据库创建一个目录。Inceptor的默认数据库default是个例外,它没有自己的目录。Inceptor数据库的目录由hive.metastore.warehouse.dir属性指定,它的默认值是 hdfs://ns/inceptor_id/user/hive/warehouse/exchange_platform.db 。所以Inceptor为exchange_platform创建的目录是 hdfs://ns/inceptor_id/user/hive/warehouse/exchange_platform.db。如果想要自定义数据库的目录,我们可以加上LOCATION hdfs_path这个选项:
举例
[$host]transwarp> CREATE DATABASE my_db
                > LOCATION 'hdfs://ns/inceptor_id/user/hive/warehouse/my/directory';
这样,数据库our_platform的路径为hdfs://ns/inceptor_id/user/hive/warehouse/my/directory,our_platform下的表将存在此路径下。LOCATION也可以是相对路径:
[$host]transwarp> CREATE DATABASE my_db
                > LOCATION 'inceptor_id/user/hive/warehouse/my/directory';
可以使用DESCRIBE DATABASE来查看数据库的路径:
[$host]transwarp> DESCRIBE DATABASE my_db;
my_db           hdfs://ns/inceptor1/user/hive/warehouse/my/directory
删除数据库:DROP DATABASE
该语句删除一个给定名字的数据库。
语法
DROP DATABASE database_name
举例
[$host]transwarp> DROP DATABASE exchange_platform;
修改数据库:ALTER DATABASE
该语句对给定名字的数据库进行修改。用ALTER TABLE可以对数据库做出的修改只有DBPROPERTIES:
语法
ALTER DATABASE database_name SET DBPROPERTIES (property_name=property_value, ...)
举例
[$host]transwarp> ALTER DATABASE exchange_platform SET DBPROPERTIES ('creater'= 'Zhang San');
设置当前数据库:USE DATABASE
USE指令可以设置当前使用的数据库,进而调用指定数据库里的表和视图,不专门指定,Inceptor默认使用default数据库。
语法
USE database_name
举例
[$host]transwarp> USE exchange_platform;
       transwarp> SELECT * FROM user_info;
上面代码将接下来将要使用的数据库设定为exchange_platform,之后便可以直接使用位于exchange_platform下的表user_info。要回到default数据库只需要执行:
[$host]transwarp> USE default;
不改变当前使用的数据库,使用“.”可以调用不在当前数据库中的表:
[$host]transwarp> USE default:         //设置当前数据库为default
       transwarp> SELECT * FROM exchange_platform.user_info;     //查询exchange_platform下的user_info表