mysql建表语句,举例说明
时间: 2023-11-15 13:00:37 浏览: 66
MySQL建表语句的通用语法为:CREATE TABLE table_name (column_name column_type); 其中,table_name为新建表的名称,column_name为表中的列名,column_type为列的数据类型。下面以新建一张名为“students”的学生信息表为例进行说明:
CREATE TABLE students (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(11) NOT NULL,
gender ENUM('male', 'female') NOT NULL,
PRIMARY KEY (id)
);
以上建表语句中,students为表名,id、name、age、gender为列名,INT(11)和VARCHAR(50)为列的数据类型,NOT NULL表示该列不允许为空,AUTO_INCREMENT表示该列为自增长列,ENUM('male', 'female')表示该列只能取'male'或'female'两个值,PRIMARY KEY (id)表示将id列设为主键。
相关问题
oracle建表语句转MySQL建表语句
以下是将Oracle建表语句转换为MySQL建表语句的方法:
```python
import re
# 定义函数,将Oracle数据类型转换为MySQL数据类型
def oracle_to_mysql(data_type):
if 'NUMBER' in data_type:
return 'decimal'
elif 'CHAR' in data_type or 'VARCHAR2' in data_type:
return 'varchar'
else:
return data_type.lower()
# 定义函数,将Oracle建表语句转换为MySQL建表语句
def oracle_to_mysql_create_table(oracle_sql):
# 获取表名
table_name = re.findall(r'"(.+?)"\s*\(', oracle_sql)[0]
# 获取列名和数据类型
columns = re.findall(r'"(.+?)"\s*(.+?)[,\)]', oracle_sql)
# 构造MySQL建表语句
mysql_sql = 'CREATE TABLE `{}`(\n'.format(table_name.lower())
for column in columns:
column_name = column[0].lower()
column_type = oracle_to_mysql(column[1])
mysql_sql += ' `{}` {},\n'.format(column_name, column_type)
mysql_sql = mysql_sql[:-2] + '\n);'
return mysql_sql
# 测试
oracle_sql = '''CREATE TABLE "TEST_MYSQL"."UC_CUST_SY_CPZX" (
"BUSI_DATE" NUMBER(*,0),
"TRADE_DATE" NUMBER(*,0),
"YEAR_ID" NUMBER(*,0),
"MONTH_ID" NUMBER(*,0),
"DAY_ID" NUMBER(*,0),
"CPLX" CHAR(2 BYTE),
"CPDM" VARCHAR2(100 BYTE),
"PRODUCT_NAME" VARCHAR2(300 BYTE),
"DWJZ" NUMBER(19,4) NOT NULL ENABLE,
"LJJZ" NUMBER(19,4) NOT NULL ENABLE,
"RZZL" NUMBER(19,4) NOT NULL ENABLE,
"FQJZ" NUMBER(19,4) NOT NULL ENABLE,
"LJJZSYL" NUMBER(19,4) NOT NULL ENABLE,
"CPGLMS" NUMBER(*,0)
);'''
mysql_sql = oracle_to_mysql_create_table(oracle_sql)
print(mysql_sql)
```
输出结果为:
```
CREATE TABLE `uc_cust_sy_cpzx`(
`busi_date` decimal,
`trade_date` decimal,
`year_id` decimal,
`month_id` decimal,
`day_id` decimal,
`cplx` varchar,
`cpdm` varchar,
`product_name` varchar,
`dwjz` decimal(19,4),
`ljjz` decimal(19,4),
`rzzl` decimal(19,4),
`fqjz` decimal(19,4),
`ljjzsyl` decimal(19,4),
`cpglms` decimal
);
```
mysql建表语句改为starrocks建表语句
要将 MySQL 数据库的建表语句转换为 StarRocks(Apache Doris)数据库的建表语句,需要了解 StarRocks 数据库的语法和支持的数据类型。以下是一个示例,将 MySQL 建表语句转换为 StarRocks 建表语句的过程:
假设有以下 MySQL 建表语句:
```sql
CREATE TABLE my_table (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
salary DECIMAL(10, 2)
);
```
将其转换为 StarRocks 建表语句,可以使用以下代码作为参考:
```sql
CREATE TABLE my_table (
id INT,
name VARCHAR(100),
age INT,
salary DECIMAL(10, 2),
PRIMARY KEY (id)
)
DISTRIBUTED BY HASH(id)
COMMENT 'mysql建表语句转换为starrocks建表语句' -- 添加注释
;
```
上述代码中,我们将原始的 MySQL 建表语句进行了几个修改:
1. 移除了 `PRIMARY KEY` 关键字,将主键约束放在最后的 `PRIMARY KEY (id)` 中。
2. 添加了 `DISTRIBUTED BY HASH(id)`,根据 `id` 列进行数据分布。
3. 添加了 `COMMENT`,用于添加注释。在这个例子中,我们将注释设置为 "mysql建表语句转换为starrocks建表语句"。
请注意,这只是一个示例,您需要根据实际情况进行修改和调整。StarRocks 支持的数据类型、表属性等可能与 MySQL 有所差异,您需要根据 StarRocks 的文档和要求进行相应的调整。
阅读全文