MySQL和Oracle都是常用的關系型數據庫管理系統,但是它們在建表時的語法存在一定的差異。下面分別介紹這兩種數據庫建表的語法規則。
MySQL建表語法: CREATE TABLE table_name ( column1 datatype CONSTRAINTS, column2 datatype CONSTRAINTS, ... CONSTRAINTS ) ENGINE=storage_engine; 其中, datatype是列的數據類型; CONSTRAINTS是對列的約束,包括NOT NULL,UNIQUE,PRIMARY KEY,DEFAULT等; storage_engine是數據庫的存儲引擎,如InnoDB、MyISAM等。 示例: CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age TINYINT UNSIGNED DEFAULT 18, gender ENUM('男', '女', '未知') ) ENGINE=InnoDB; 上面的示例中,student表包括了四個列,其中id為主鍵,自增類型;name為VARCHAR類型,不可為空;age為TINYINT類型,無符號且默認值為18;gender為ENUM類型,只能選擇男、女或未知三個值。
Oracle建表語法: CREATE TABLE table_name ( column1 datatype CONSTRAINTS, column2 datatype CONSTRAINTS, ... CONSTRAINTS ); 其中, datatype是列的數據類型; CONSTRAINTS是對列的約束,包括NOT NULL,UNIQUE,PRIMARY KEY,DEFAULT等; Oracle數據庫支持很多數據類型,如CHAR、VARCHAR2、NUMBER、DATE等。 示例: CREATE TABLE student ( id NUMBER(8) PRIMARY KEY, name VARCHAR2(20) NOT NULL, age NUMBER(3) DEFAULT 18, gender CHAR(2) CHECK(gender IN ('男', '女', '未知')) ); 上面的示例中,student表包括四個列,其中id為主鍵,數據類型為NUMBER,最大長度為8;name為VARCHAR2類型,不可為空;age為NUMBER類型,最大長度為3,并有默認值18;gender為CHAR類型,長度為2并設定了CHECK約束,只能選擇男、女或未知三個值。
綜上所述,MySQL和Oracle的建表語法有共同之處,也有一些不同。如果你需要使用這兩種數據庫,建議認真學習它們的語法規則,以便更好地完成數據庫的操作。