当前位置: 首页 > 教程 > MariaDB >

MariaDB创建表

精华
小牛编辑
163浏览
2023-03-14

在MariaDB中,CREATE TABLE语句用于在选定的数据库中创建表。使用CREATE TABLE语句创建一个具有给定名称(tbl_name)的表。 必须具有表或数据库的CREATE权限才能创建表。

语法如下 -

CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...) [table_options    ]... [partition_options]
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)] [table_options   ]... [partition_options]
    select_statement
CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
   { LIKE old_table_name | (LIKE old_table_name) }

select_statement:
    [IGNORE | REPLACE] [AS] SELECT ...   (Some legal select statement)

在最基本的形式中,CREATE TABLE语句提供了一个表名称,后跟一列,索引和约束。 默认情况下,该表是在默认数据库中创建的。 用db_name.tbl_name指定一个数据库。 如果引用表名称,则必须分别将数据库名称和表名引用为db_name.tbl_name。 这对于CREATE TABLE ... SELECT是特别有用的,因为它允许在包含来自其他数据库的数据的数据库中创建表。

最基本的语法如下 -

CREATE TABLE table_name (column_name column_type);

也可以指定一个column_name作为主键 - primary_key,它必须是一个NOT NULL值。

示例

"testdb"数据库中创建一个"students"表。参考以下创建语句 -

USE testdb;
CREATE TABLE students(  
    student_id INT NOT NULL AUTO_INCREMENT,  
    student_name VARCHAR(100) NOT NULL,  
    student_address VARCHAR(40) NOT NULL,  
    admission_date DATE,  
    PRIMARY KEY ( student_id )
);

执行上面查询语句,结果如下 -

查询数据库中的表

您可以使用SHOW TABLES命令验证是否创建表成功了。

MariaDB [testdb]> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| students         |
+------------------+
1 row in set (0.00 sec)

MariaDB [testdb]>

在上面结果中,可以看到有创建了"students"表。查看"students"表的结构:

SHOW CREATE TABLE `testdb`.`students`;

执行上面查询语句,输出结果如下 -

CREATE TABLE `students` (
    `student_id` INT(11) NOT NULL AUTO_INCREMENT,
    `student_name` VARCHAR(100) NOT NULL,
    `student_address` VARCHAR(40) NOT NULL,
    `admission_date` DATE NULL DEFAULT NULL,
    PRIMARY KEY (`student_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

使用HeidiSQL创建表

首先启动 HeidiSQL 填入用户名,密码,服务器IP地址等,然后点击 打开 连接到MariaDB服务器,如下所示 -

在数据库列表中,选择testdb,点击右键在弹出的菜单项中选择:创建新的 -> ,如下所示 -

点击选项后,得到以下的结果 -

在以上图形界面中创建一个表:"students",并添加相关列和数据类型,如下所示 -

添加定义的所有列后,点击保存 ,如下所示 -

这样,创建一个表就完成了。

其它创建表常用的语句 -

create table if not exists test (
    a bigint auto_increment primary key,
    name varchar(128) charset utf8,
    key name (name(32))
) engine=InnoDB default charset utf8;

以下语句仅适用于MariaDB 10.2.1 以上版本。

CREATE TABLE t1(
  a int DEFAULT (1+1),
  b int DEFAULT (a+1),
  expires DATETIME DEFAULT(NOW() + INTERVAL 1 YEAR)
);