数据表的创建

1 数据库的概述

数据库是一个按照数据结构来组织、存储和管理数据的系统。它可以让用户创建、读取、更新和删除数据的记录。

数据库管理系统(DBMS)是用来管理数据库的计算机系统。DBMS 主要通过数据的保存格式(数据库的种类)来进行分类现阶段主要有以下 5 种类型:

  • 层次数据库(Hierarchical Database,HDB)
    最古老的数据库之一,它把数据通过层次结构(树形结构)的方式表现出来。层次数据库曾经是数据库的主流,但随着关系数据库的出现和普及,现在已经很少使用了。
  • 关系数据库(Relational Database,RDB)
    关系数据库是现在应用最广泛的数据库。关系数据库在 1969 年诞生,可谓历史悠久。和 Excel 工作表一样,它也采用由行和列组成的二维表来管理数据。同时,它还使用专门SQL(StructuredQuery Language,结构化查询语言)对数据进行操作。这种类型的 DBMS 称为关系数据库管理系统。比较具有代表性的 RDBMS 有如下 5 种:
    • Oracle Database:甲骨文公司的RDBMS
    • SQL Server:微软公司的RDBMS
    • DB2:IBM公司的RDBMS
    • PostgreSQL:开源RDBMS
    • MySQL:开源的RDBMS
  • 面向对象数据库(Object Oriented Database,OODB)
    编程语言当中有一种被称为面向对象语言的语言 。把数据以及对数据的操作集合起来以对象为单位进行管理,因此得名。面向对象数据库就是用来保存这些对象的数据库。
  • XML数据库(XML Database,XMLDB)
    最近几年,XML作为在网络上进行交互的数据的形式逐渐普及起来。XML 数据库可以对 XML 形式的大量数据进行高速处理。
  • 键值存储系统(Key-Value Store,KVS)
    这是一种单纯用来保存查询所使用的主键(Key)和值(Value)的组合的数据库。具有编程语言知识的读者可以把它想象成关联数组或者散列(hash)。

接下来要的案例和讲解均以 MySQL 为例。

2 表的创建

2.1 数据库的创建

在创建表之前,一定要先创建存储表的数据库。

创建数据库的语法如下:

CREATE DATABASE 数据库名;

其中需要注意的是:

1.SQL 语句以分号( ; )结尾。

2.关键字不区分大小写。

3.单词之间需要用半角空格或者换行进行分割。

这里我们将数据库的名字命名为 school

CREATE DATABASE school;

2.2 表的创建

在创建表之前要切换到需要创建表的数据库中。

切换数据库的语法如下:

USE 数据库名;

创建表的语法如下:

CREATE TABLE 数据库名 (
    <列名1> <数据类型> <约束条件>,
    <列名2> <数据类型> <约束条件>,
    ...
);

这里我们将表的名字命名为 students

CREATE TABLE students (
    student_id INT NOT NULL PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    gender ENUM('Male', 'Female'),
    email VARCHAR(100),
    address VARCHAR(255)
);

在这个示例中:

  • students 是表的名称。
  • student_id 是学生表的主键,使用 INT 类型。
  • name, age, gender, email, address 是其他列,分别存储学生的姓名、年龄、性别、邮箱和地址。
  • NOT NULL 约束确保学号列不为空。
  • PRIMARY KEY 约束将 student_id 列指定为主键。
  • ENUM('Male', 'Female') 定义了 gender 列的枚举类型,只能存储 ‘Male’ 或 ‘Female’ 中的一个值。

2.3 数据类型

数据类型就是用来定义表中列,常见的有如下几个类型:

数据类型描述
INTINTEGER4字节整数,范围为-2147483648到2147483647(有符号),0到4294967295(无符号)
FLOAT单精度浮点数
DOUBLE双精度浮点数
CHAR固定长度字符串,最多255个字符
VARCHAR可变长度字符串,最多65535个字符
TEXT长文本字符串,最多65535个字符
ENUM枚举类型,用于存储枚举值列表中的一个值
DATE日期值,格式为YYYY-MM-DD
TIME时间值,格式为HH:MM:SS
DATETIME日期和时间值,格式为YYYY-MM-DD HH:MM:SS
TIMESTAMP时间戳值,存储从1970年1月1日起的秒数
YEAR年份值,范围为1901到2155
BOOLEAN布尔值类型,MySQL中没有直接的BOOLEAN类型,通常使用TINYINT(1)来表示

2.4 约束条件

各种约束条件来确保数据的完整性、一致性和安全性。常见的有如下几个约束条件:

列级约束

约束描述
NOT NULL确保列中的值不为空
DEFAULT为列指定默认值
UNIQUE确保列中的值唯一
AUTO_INCREMENT自动增加列的值(自增)

表级约束

约束描述
PRIMARY KEY定义表的主键
FOREIGN KEY定义表的外键

这些约束条件可以组合使用,以确保数据的完整性和一致性。例如,可以将 NOT NULLUNIQUE 约束组合使用,以确保列中的值既不为空,又唯一。或者,可以使用 FOREIGN KEY 约束建立表之间的关联关系,以维护数据的引用完整性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值