数据库基本操作-库、表
规则语法
注释语法:
-- 单⾏注释 // 单⾏注释 /* * 多⾏注释 */
⼤⼩写规则: 1. Hive的数据库名、表名都不区分⼤⼩写 2. 建议关键字⼤写 命名规则: 1. 名字不能使⽤数字开头 2. 不能使⽤关键字 3. 尽量不使⽤特殊符号 4. 如果表⽐较多,那么表名和字段名可以定义规则加上前缀. 快速创建库和表:
-- hive有⼀个默认的数据库default,如果不明确的说明要使⽤哪个库,则使⽤默认 数据库。 hive> create database zoo; hive> create database if not exists zoo; hive> create database if not exists qfdb comment 'this is a database of leetom';
-- 创建库的本质:在hive的warehouse⽬录下创建⼀个⽬录(库名.db命名的⽬录) -- 切换库: hive> use zoo; --创建表 hive> create table t_user(id int,name string); -- 使⽤库+表的形式创建表: hive> create table qfdb.t_user(id int,name string);
JDBC的连接配置
通过idea实现
连接驱动格式
url jdbc:hive2://mini:10000/ user: linux中安装⽤户 password: linux中安装⽤户的密码
在IDEA中如果默认⾃带的驱动如果不可以,要使⽤分发的驱动包 hive-jdbc-uber2.6.5.0-292.jar 来替换默认驱动
bin/hiveserver2 #在连接之前先启动hive服务器,注意必须在格式化的⽬录启动
如果在IDEA连接的时候,root⽤户因为为权限问题不能登录,要在 Hadoop 的 core•site.xml 加上下列部分:
<property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>
接下来就可以像操作Mysql⼀样写sql操作hive
建表语法
Hive的数据类型分为基本数据类型和复杂数据类型,下⾯是基本数据类型
基本类型 BOOLEAN true/false TRUE TINYINT 1字节的有符号整数 -128~127 1Y SMALLINT 2个字节的有符号整 数,-32768~32767 1S INT 4个字节的带符号整数 1 BIGINT 8字节带符号整数 1L FLOAT 4字节单精度浮点数 1.0 DOUBLE 8字节双精度浮点数 1.0 DEICIMAL 任意精度的带符号⼩数 1.0 STRING 字符串,变⻓ “a”,’b’ VARCHAR 变⻓字符串,要设置⻓度 “a”,’b’ CHAR 固定⻓度字符串 “a”,’b’ BINARY 字节数组 ⽆法表示 TIMESTAMP 时间戳,纳秒精度 122327493795 DATE ⽇期 ‘2016-03-29’
下⾯是⼀个常⻅的创建表的语法:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] TABLENAME [COLUMNNAME COLUMNTYPE [COMMENT 'COLUMN COMMENT'],...] [COMMENT 'TABLE COMMENT'] [PARTITIONED BY (COLUMNNAME COLUMNTYPE [COMMENT 'COLUMN COMMENT'],...)] [CLUSTERED BY (COLUMNNAME COLUMNTYPE [COMMENT 'COLUMN COMMENT'],...) [SORTED BY (COLUMNNAME [ASC|DESC])...] INTO NUM_BUCKETS BUCKETS] [ROW FORMAT ROW_FORMAT] [STORED AS FILEFORMAT] [LOCATION HDFS_PATH];
如果要看完整的创建表语法,可以参考下⾯完整创建表语句:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later) [(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 an