oracle 建表语句
时间: 2023-09-11 15:04:44 浏览: 90
Oracle 建表语句的基本格式如下:
```sql
CREATE TABLE table_name (
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
columnN datatype [ NULL | NOT NULL ]
);
```
其中,table_name 表示表名,columnX 表示列名,datatype 表示数据类型,NULL 和 NOT NULL 分别表示该列是否允许为空。
例如,创建一个名为“employees”的表,包含“employee_id”、“first_name”、“last_name”和“hire_date”四个列,可以使用以下语句:
```sql
CREATE TABLE employees (
employee_id NUMBER(6) NOT NULL,
first_name VARCHAR2(20),
last_name VARCHAR2(25) NOT NULL,
hire_date DATE NOT NULL
);
```
在这个例子中,“employee_id”列的数据类型为“NUMBER”,长度为6,不允许为空;“first_name”列的数据类型为“VARCHAR2”,长度为20,允许为空;“last_name”列的数据类型为“VARCHAR2”,长度为25,不允许为空;“hire_date”列的数据类型为“DATE”,不允许为空。
相关问题
ORACLE 建表语句
ORACLE的建表语句可以根据需要分为简单建表语句和复杂建表语句。简单建表语句可以通过使用CREATE TABLE语句来创建表,并指定表的名称、字段名和数据类型等信息。复杂建表语句可能涉及到一些特定的约束条件、默认值和索引等。不同版本的ORACLE数据库可能会有一些差异,比如ORACLE Database 19c Enterprise Edition Release 19.0.0.0.0 - Production。
简单建表语句示例:
CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
...
);
复杂建表语句示例:
CREATE TABLE 表名 (
列1 数据类型 CONSTRAINT 约束名称,
列2 数据类型 CONSTRAINT 约束名称,
...
);
其中,数据类型可以是ORACLE数据库支持的任何数据类型,比如数字、字符、日期等。约束可以用来限制列的取值范围、确保数据完整性等。可以使用不同的约束类型,比如主键约束、外键约束、唯一约束等。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [oracle 建表语句](https://blog.csdn.net/qq_41113916/article/details/127881102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
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
);
```
阅读全文