创建数据表与索引

本章节主要讲述如何使用 SequoiaDB MySQL 实例工具创建数据表和索引。在安装部署完成 SequoiaDB MySQL实例后,用户可以通过创建数据表对数据进行增删改查的操作。一般情况下,为了提高数据的检索速度,用户还需要创建索引。

使用环境

以下操作均在 SequoiaDB MySQL实例 Shell 环境下执行。

进入 MySQL 实例 Shell 环境

用户可以通过 /etc/default/sequoiasql-mysql 安装文件获取安装路径,进入 MySQL 实例 Shell 环境。

  1. $ export MYSQL_HOME=`cat /etc/default/sequoiasql-mysql|grep INSTALL_DIR|cut -d "=" -f 2`
  2. $ ${MYSQL_HOME}/bin/mysql -u root -p

创建数据库实例

用户可以使用CREATE DATABASE <DATABASE_NAME> 语句创建数据库实例。

示例:

  1. mysql> CREATE DATABASE employees;
  2. Query OK, 1 row affected (0.02 sec)
  3. mysql> use employees;
  4. Database changed

创建数据表

用户可以使用CREATE TABLE <TABLE_NAME>(<COLUMN_NAME> <COLUMN_TYPE>) 语句创建数据表。

示例:

  1. mysql> CREATE TABLE employees (
  2. -> emp_no INT NOT NULL,
  3. -> birth_date DATE NOT NULL,
  4. -> first_name VARCHAR(14) NOT NULL,
  5. -> last_name VARCHAR(16) NOT NULL,
  6. -> gender ENUM ('M','F') NOT NULL,
  7. -> hire_date DATE NOT NULL,
  8. -> PRIMARY KEY (emp_no)
  9. -> );
  10. Query OK, 0 rows affected (0.59 sec)
  11. mysql> show create table employees;
  12. +-----------+--------------+
  13. | Table | Create Table |
  14. +-----------+--------------+
  15. | employees | CREATE TABLE `employees` (
  16. `emp_no` int(11) NOT NULL,
  17. `birth_date` date NOT NULL,
  18. `first_name` varchar(14) NOT NULL,
  19. `last_name` varchar(16) NOT NULL,
  20. `gender` enum('M','F') NOT NULL,
  21. `hire_date` date NOT NULL,
  22. PRIMARY KEY (`emp_no`)
  23. ) ENGINE=SEQUOIADB DEFAULT CHARSET=utf8 |
  24. +-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. 1 row in set (0.03 sec)

创建索引

索引可以提高数据的检索速度。

用户可使用ALTER TABLE <TABLENAME> ADD INDEX <INDEXNAME>(<COLUMNNAME>)语句创建索引。

示例:

  1. mysql> alter table employees.employees add index first_name_last_name_index ( first_name(14), last_name(16) );
  2. Query OK, 0 rows affected (0.09 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> show index from employees.employees;
  5. +-----------+------------+----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  6. | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
  7. +-----------+------------+----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  8. | employees | 0 | PRIMARY | 1 | emp_no | A | NULL | NULL | NULL | | BTREE | | |
  9. | employees | 1 | first_name_last_name_index | 1 | first_name | A | NULL | NULL | NULL | | BTREE | | |
  10. | employees | 1 | first_name_last_name_index | 2 | last_name | A | NULL | NULL | NULL | | BTREE | | |
  11. +-----------+------------+----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  12. 3 rows in set (0.00 sec)

SequoiaDB MySQL实例的增删改查操作,可参考CRUD基本操作。