`

MySQL 建表语法

阅读更多
1、最简单的:

CREATE TABLE t1(
   id int not null,
   name char(20)
);

2、带主键的:

a:
CREATE TABLE t1(
   id int not null primary key,
   name char(20)
);

b:复合主键
CREATE TABLE t1(
   id int not null,
   name char(20),
   primary key (id,name)
);

3、带默认值的:

CREATE TABLE t1(
   id int not null default 0 primary key,
   name char(20) default '1'
);

-----------------------------------------------------------
CREATE TABLE PLAYERS
       (PLAYERNO      INTEGER NOT NULL PRIMARY KEY,
        NAME          CHAR(15) NOT NULL,
        INITIALS      CHAR(3) NOT NULL,
        BIRTH_DATE    DATE,
        SEX           CHAR(1) NOT NULL
                     CHECK(SEX IN ('M','F')),
        JOINED        SMALLINT NOT NULL
                     CHECK(JOINED > 1969) ,
        STREET        CHAR(30) NOT NULL,
        HOUSENO       CHAR(4),
        POSTCODE      CHAR(6) CHECK(POSTCODE LIKE '______'),
        TOWN          CHAR(10) NOT NULL,
        PHONENO       CHAR(13),
        LEAGUENO      CHAR(4))
;
CREATE TABLE TEAMS
       (TEAMNO        INTEGER NOT NULL PRIMARY KEY,
        PLAYERNO      INTEGER NOT NULL,
        DIVISION      CHAR(6)   NOT NULL
                     CHECK(DIVISION IN ('first','second')),
        FOREIGN KEY   (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
CREATE TABLE MATCHES
       (MATCHNO       INTEGER NOT NULL PRIMARY KEY,
        TEAMNO        INTEGER NOT NULL,
        PLAYERNO      INTEGER NOT NULL,
        WON           SMALLINT NOT NULL
                     CHECK(WON BETWEEN 0 AND 3),
        LOST          SMALLINT NOT NULL
                     CHECK(LOST BETWEEN 0 AND 3),
        FOREIGN KEY (TEAMNO) REFERENCES TEAMS (TEAMNO),
        FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
CREATE TABLE PENALTIES
       (PAYMENTNO     INTEGER NOT NULL PRIMARY KEY,
        PLAYERNO      INTEGER NOT NULL,
        PAYMENT_DATE DATE NOT NULL
                     CHECK(PAYMENT_DATE >= DATE('1969-12-31')),
        AMOUNT        DECIMAL(7,2)   NOT NULL
                     CHECK (AMOUNT > 0),
        FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
CREATE TABLE COMMITTEE_MEMBERS
       (PLAYERNO      INTEGER NOT NULL,
        BEGIN_DATE    DATE NOT NULL,
        END_DATE      DATE,
        POSITION      CHAR(20),
        PRIMARY KEY   (PLAYERNO, BEGIN_DATE),
        FOREIGN KEY   (PLAYERNO) REFERENCES PLAYERS (PLAYERNO),
        CHECK(BEGIN_DATE < END_DATE),
        CHECK(BEGIN_DATE >= DATE('1990-01-01')))
;
分享到:
评论

相关推荐

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    Excel生成MYSQL建表语句

    标题中的“Excel生成MYSQL建表语句”是指利用JAVA编程技术,通过读取预先设计好的Excel模板,自动生成对应的MySQL数据库建表语句的过程。这个过程通常涉及到数据处理、文件读写以及数据库操作等核心技能。 首先,让...

    mysql 建表语句语法及相关练习

    mysql 建表语句语法及相关练习

    java实体转mysql建表语句

    为了从Java实体类自动生成MySQL建表语句,开发者可以使用一些工具或库,如`JPA`的`Metamodel`API,或者开源项目如`MyBatis Generator`。这些工具能够解析Java源代码,从中提取实体类信息并生成相应的SQL语句。 4. ...

    Mysql转oracle工具

    MySQL和Oracle都是SQL数据库管理系统,但它们对SQL语法的实现有所不同。例如,MySQL支持的`LIMIT`在Oracle中需用`ROWNUM`或`FETCH FIRST`来实现分页;MySQL的`INFORMATION_SCHEMA`在Oracle中对应的是`DBA_`或`USER_...

    Mysql的表对象Sql语句转换单表,转换成Oracle创建表sql

    MySQL和Oracle都是广泛使用的数据库管理系统,但它们的SQL语法略有不同。当需要将MySQL的表结构迁移到Oracle数据库时,必须进行适当的语法转换。标题提到的"‘Mysql的表对象Sql语句转换单表,转换成Oracle创建表sql...

    Mysql建表语句转化为postgre语句

    总之,将MySQL的建表语句转换为PostgreSQL语句涉及到对两种数据库系统的深入理解以及对它们之间语法差异的熟悉。虽然可以自动化部分过程,但人工检查和调整通常是必不可少的,以确保数据迁移的顺利进行。在进行此类...

    mysql建表语句学习

    本篇文章将深入探讨MySQL建表语句及其相关知识点。 1. **CREATE TABLE 语句的基本语法** `CREATE TABLE`语句用于创建新的数据表。其基本语法如下: ```sql CREATE TABLE table_name ( column_name1 column_...

    mysql批量导出建表语句.zip

    首先,让我们了解一下MySQL建表语句。在SQL中,`CREATE TABLE`语句用于创建一个新的数据库表。它定义了表的结构,包括字段名、数据类型、约束等。例如: ```sql CREATE TABLE Employees ( ID INT PRIMARY KEY, ...

    在mysql建表中将日期设置为默认取得当前系统时间

    以下是对在MySQL建表过程中如何将日期设置为默认获取当前系统时间这一知识点的深入探讨。 ### 1. 使用`CURRENT_TIMESTAMP`作为默认值 在创建表结构时,可以指定某一列(通常是时间戳类型)的默认值为`CURRENT_...

    MySQL和DB2建表SQL差异

    ### MySQL与DB2建表SQL语句的主要差异 在数据库管理领域中,不同的数据库系统有着各自独特的特性与语法。MySQL和DB2作为两种广泛使用的数据库管理系统,在创建表时存在一些重要的差异。理解这些差异对于跨数据库...

    mysql语句转postgres的工具

    MySQL和PostgreSQL虽然都是关系型数据库管理系统,但它们的SQL语法在某些方面有所不同。例如,MySQL支持`ON UPDATE CURRENT_TIMESTAMP`特性,当表中的某个字段被更新时,该字段会自动设置为当前时间。而在PostgreSQL...

    MySQL建表的规范总结.pdf

    以下是对“MySQL建表的规范总结.pdf”中提到的关键点的详细解释: **设计表规范** 1. **字段非空和默认值**:创建表时,为确保数据完整性,字段应尽可能设置为非空(NOT NULL),并设定默认值。这样可以避免插入...

    mysql建表语句.docx

    首先,我们来看 `CREATE TABLE` 语句的基本语法: ```sql CREATE TABLE 表名 ( 列1 列数据类型 约束条件, 列2 列数据类型 约束条件, ... ); ``` 在上述的 `students` 表示例中,我们有以下列定义: 1. `id INT...

    mysql建表常用sql语句个人经验分享

    本文将分享一些常用的MySQL建表SQL语句,以帮助提升建表的速度和效率。建表过程中,我们经常需要执行诸如创建、删除、查询、修改等操作,而熟练掌握相应的SQL语句,将显著提高工作效率。 首先,连接MySQL服务器的...

    mysql转化成sql server sql转化成mysql工具

    2. 转换规则应用:根据SQL Server的语法特性,工具会将MySQL的SQL语句转化为相应的SQL Server语法。 3. 数据导出:将MySQL中的数据导出为SQL脚本,或者直接导入到SQL Server中。 4. 验证与调整:迁移后,需要验证...

    GuassDB与MySQL差异点.xlsx

    GuassDB与MySQL的区别以及语法差异,MySQL数据迁移GuassDB的导入导出和GuassDB的基本操作命令

    mysql sql建表脚本

    在MySQL数据库系统中,SQL(Structured Query Language)是用于创建、操作和管理数据库的...对于"mysql sql建表脚本",理解并执行"usertable"的创建过程是关键,这涉及到SQL语法、数据类型选择以及表设计的最佳实践。

    mysql建表语句

    在MySQL数据库管理中,创建表是一项基础而关键的操作,它涉及到如何定义数据结构,以便有效地存储和检索数据。本文将详细解析几个典型的`CREATE TABLE`语句,这些语句不仅展示了如何构建表的基本框架,还深入探讨了...

    mysql数据库转换成sql server

    MySQL数据库和SQL Server是两种广泛使用的数据库管理系统,它们在语法、功能和管理上存在显著差异。将MySQL数据库转换成SQL Server是一项常见的需求,特别是在企业级应用迁移或整合项目中。以下是一些关于如何进行...

Global site tag (gtag.js) - Google Analytics