跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
SQL创建表
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= SQL创建表 = == 介绍 == '''SQL创建表'''是数据库设计中的基础操作,用于定义表的结构并存储数据。表是关系型数据库的核心组件,由行(记录)和列(字段)组成。通过<code>CREATE TABLE</code>语句,用户可以指定表名、列名、数据类型以及约束条件(如主键、外键、唯一性等)。本文将详细介绍如何创建表,并提供实际案例和代码示例。 == 语法 == <code>CREATE TABLE</code>的基本语法如下: <syntaxhighlight lang="sql"> CREATE TABLE table_name ( column1 datatype [constraints], column2 datatype [constraints], ... [table_constraints] ); </syntaxhighlight> 其中: * <code>table_name</code>:要创建的表的名称。 * <code>column1, column2, ...</code>:表的列名。 * <code>datatype</code>:列的数据类型(如<code>INT</code>, <code>VARCHAR</code>, <code>DATE</code>等)。 * <code>constraints</code>:可选的列级约束(如<code>PRIMARY KEY</code>, <code>NOT NULL</code>等)。 * <code>table_constraints</code>:可选的表级约束(如复合主键、外键等)。 == 数据类型 == SQL支持多种数据类型,常见的有: {| class="wikitable" |- ! 数据类型 !! 描述 |- | <code>INT</code> || 整数 |- | <code>VARCHAR(n)</code> || 可变长度字符串,最大长度为<code>n</code> |- | <code>CHAR(n)</code> || 固定长度字符串,长度为<code>n</code> |- | <code>DATE</code> || 日期(YYYY-MM-DD) |- | <code>DECIMAL(p, s)</code> || 精确小数,<code>p</code>为总位数,<code>s</code>为小数位数 |- | <code>BOOLEAN</code> || 布尔值(<code>TRUE</code>/<code>FALSE</code>) |} == 约束条件 == 约束用于确保数据的完整性和一致性,常见的约束包括: * <code>PRIMARY KEY</code>:唯一标识表中的每一行。 * <code>FOREIGN KEY</code>:确保引用其他表的列值有效。 * <code>NOT NULL</code>:列值不能为空。 * <code>UNIQUE</code>:列值必须唯一。 * <code>CHECK</code>:确保列值满足特定条件。 * <code>DEFAULT</code>:为列设置默认值。 == 示例 == === 基本表示例 === 创建一个名为<code>students</code>的表,包含学生ID、姓名、年龄和入学日期: <syntaxhighlight lang="sql"> CREATE TABLE students ( student_id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, enrollment_date DATE ); </syntaxhighlight> === 带约束的表示例 === 创建一个带外键约束的<code>courses</code>表,引用<code>students</code>表: <syntaxhighlight lang="sql"> CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(100) NOT NULL, student_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id) ); </syntaxhighlight> === 复合主键示例 === 创建一个<code>enrollments</code>表,使用复合主键: <syntaxhighlight lang="sql"> CREATE TABLE enrollments ( student_id INT, course_id INT, enrollment_date DATE, PRIMARY KEY (student_id, course_id) ); </syntaxhighlight> == 实际应用场景 == === 案例:电商数据库设计 === 假设我们需要为电商平台设计一个简单的数据库,包含<code>customers</code>、<code>products</code>和<code>orders</code>表: <syntaxhighlight lang="sql"> -- 创建customers表 CREATE TABLE customers ( customer_id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, registration_date DATE DEFAULT CURRENT_DATE ); -- 创建products表 CREATE TABLE products ( product_id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, price DECIMAL(10, 2) CHECK (price > 0), stock_quantity INT DEFAULT 0 ); -- 创建orders表 CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ); </syntaxhighlight> === 表关系图 === 使用Mermaid绘制表之间的关系: <mermaid> erDiagram customers ||--o{ orders : "places" orders ||--|{ order_items : "contains" products ||--o{ order_items : "included in" </mermaid> == 注意事项 == 1. '''命名规范''':表名和列名应具有描述性,避免使用SQL关键字。 2. '''数据类型选择''':根据实际需求选择合适的数据类型,例如<code>VARCHAR</code>适用于变长字符串,而<code>CHAR</code>适用于定长字符串。 3. '''约束使用''':合理使用约束以确保数据完整性,但避免过度约束导致性能下降。 4. '''性能优化''':对于大型表,考虑使用索引提高查询效率。 == 总结 == <code>CREATE TABLE</code>是SQL中定义表结构的基础命令。通过合理设计表、选择数据类型和添加约束,可以构建高效、可靠的数据库。本文提供了从基础到高级的示例,帮助初学者和高级用户掌握表的创建方法。 [[Category:计算机科学]] [[Category:数据库与信息系统]] [[Category:SQL基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)