1、数据库操作
1.1、创建数据库
#创建数据库 test 2,并指定字符集为 UTF8。obclient> CREATE DATABASE test2 DEFAULT CHARACTER SET UTF8;Query OK, 1 row affected (0.00 sec)#创建读写属性的数据库 test3。obclient> CREATE DATABASE test3 READ WRITE;Query OK, 1 row affected (0.03 sec)
1.2、查看数据库
obclient> SHOW DATABASES;
1.2、修改数据库
#修改数据库 test2 的字符集为 UTF8MB4,校对规则为 UTF8MB4_BIN,且为读写属性。obclient> ALTER DATABASE test2 DEFAULT CHARACTER SET UTF8MB4;obclient> ALTER DATABASE test2 DEFAULT COLLATE UTF8MB4_BIN;obclient> ALTER DATABASE test2 READ WRITE;
1.3、删除数据库
obclient> DROP DATABASE my_db;
2、表操作
2.1、创建表
CREATE TABLE test (c1 int primary key, c2 VARCHAR(3));
2.2、查看建表语句
show create table test;
2.3、列出表
SHOW TABLES FROM my_db;# 默认列出当前数据库中的表show tables;
2.4、查看表信息
obclient> DESCRIBE test;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| c1 | int(11) | NO | PRI | NULL | || c2 | varchar(50) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+2 rows in set (0.00 sec)
2.5、修改表
#查看信息DESCRIBE test;#把表 test 的字段 c2 改名为 c3,并同时修改其字段类型ALTER TABLE test CHANGE COLUMN c2 c3 CHAR(10);#执行以下命令,增加 c3 列。ALTER TABLE test ADD c3 int;# 执行以下命令,删除 c3 列。ALTER TABLE test DROP c3;#设置表 test 的副本数,并且增加列 c5。ALTER TABLE test SET REPLICA_NUM=2, ADD COLUMN c5 INT;
2.6、删除表
obclient> DROP TABLE test;obclient> DROP TABLE IF EXISTS test;
3、数据操作
3.1、插入数据
# 创建演示表CREATE TABLE t1(c1 int primary key, c2 int) partition BY key(c1) partitions 4;# 插入INSERT INTO t1 VALUES(1,1);# 插入多行数据INSERT t1 VALUES(3e,1),(2,default),(2+2,3*4);
3.2、删除数据
#单表删除,删除 c1=2 的行,其中 c1 列为表 t1 中的 Primary Key。DELETE FROM t1 WHERE c1 = 2;# 单表删除,删除表 t1 中按照 c2 列排序之后的第一行数据。DELETE FROM t1 ORDER BY c2 LIMIT 1;#单表删除,删除表 t2 的 p2 分区的数据。SELECT * FROM t2 PARTITION(p2); DELETE FROM t2 PARTITION(p2); # 多表删除,删除 t1、t2 表中 t1.c1 = t2.c1 的数据。DELETE t1, t2 FROM t1, t2 WHERE t1.c1 = t2.c1;
3.2、更新数据
# 将表 t1 中 t1.c1=1 对应的那一行数据的 c2 列值修改为 100。 UPDATE t1 SET t1.c2 = 100 WHERE t1.c1 = 1; #将表 t1 中按照 c2 列排序的前两行数据的 c2 列值修改为 100。 UPDATE t1 set t1.c2 = 100 ORDER BY c2 LIMIT 2; #将表 t2 中 p2 分区的数据中 t2.c1 > 2 的对应行数据的 c2 列值修改为 100。 UPDATE t2 partition(p2) SET t2.c2 = 100 WHERE t2.c1 > 2;
3.3、查询数据
SELECT name FROM a;# 去重SELECT DISTINCT name FROM a;# 从表 a 中根据筛选条件 name = 'a' ,输出对应的 id 、name 和 numSELECT id, name, num FROM a WHERE name = 'a';
4、索引操作
4.1、创建索引
CREATE INDEX test_index ON test (c1, c2);
4.2、查看索引
# 指定表名show index from test;+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+| test | 0 | PRIMARY | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES || test | 1 | test_index | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES || test | 1 | test_index | 2 | c2 | A | NULL | NULL | NULL | YES | BTREE | available | | YES |+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+3 rows in set (0.002 sec)
4.3、删除索引
DROP INDEX test_index ON test;