首页 > 数据库 >MySQL 数据库与表的创建:从入门到实践

MySQL 数据库与表的创建:从入门到实践

时间:2024-10-09 15:19:11浏览次数:10  
标签:与表 入门 创建 CREATE id KEY MySQL 数据库

MySQL 数据库与表的创建:从入门到实践

在当今的信息化时代,数据库作为数据存储和管理的核心组件,扮演着举足轻重的角色。MySQL,作为一款开源的关系型数据库管理系统(RDBMS),凭借其高性能、高可靠性和易用性,成为了众多开发者的首选。本文将详细介绍如何在MySQL中创建数据库和表,并通过实际代码案例,帮助读者从理论走向实践。

一、MySQL简介

MySQL由瑞典公司MySQL AB开发,后被Sun

Microsystems收购,最终成为Oracle公司的一部分。它支持标准的SQL(结构化查询语言)语法,提供了丰富的存储引擎选择(如InnoDB、MyISAM等),适用于从简单的Web应用到复杂的企业级应用。MySQL的社区版免费且开源,拥有庞大的用户群和丰富的文档资源,是学习数据库管理的理想平台。

二、安装与配置

在开始之前,确保你的系统上已经安装了MySQL。对于Windows用户,可以通过MySQL官方网站下载安装包进行安装;Linux用户则可以通过包管理器(如apt-

get、yum)轻松安装。安装完成后,通常需要通过命令行或图形化工具(如MySQL Workbench)连接到MySQL服务器。

bash复制代码

 # Linux下启动MySQL服务    
  
 sudo service mysql start    
     
 # 登录MySQL服务器    
 mysql -u root -p  

在提示符下输入密码后,即可进入MySQL命令行界面。

三、创建数据库

创建数据库是MySQL数据管理的第一步。使用 CREATE DATABASE 语句可以创建一个新的数据库。

sql复制代码

 CREATE DATABASE my_database;  

上述命令创建了一个名为 my_database 的数据库。如果需要指定字符集和排序规则,可以在命令后添加相关参数:

sql复制代码

 CREATE DATABASE my_database    
  
 CHARACTER SET utf8mb4    
 COLLATE utf8mb4_unicode_ci;  

utf8mb4 支持完整的Unicode字符集,包括emoji等特殊字符,而 utf8mb4_unicode_ci

是一种大小写不敏感的排序规则。

四、创建表

在数据库中创建表是存储数据的关键步骤。表由行(记录)和列(字段)组成,每列都有指定的数据类型。使用 CREATE TABLE 语句可以创建表。

sql复制代码

 USE my_database;  -- 切换到目标数据库    
  
     
 CREATE TABLE users (    
     id INT AUTO_INCREMENT PRIMARY KEY,    
     username VARCHAR(50) NOT NULL,    
     email VARCHAR(100) NOT NULL UNIQUE,    
     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,    
     updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP    
 );  

上述命令在 my_database 数据库中创建了一个名为 users 的表,包含以下字段:

  • id :整型,自动递增,作为主键。
  • username :字符型,最长50字符,不允许为空。
  • email :字符型,最长100字符,不允许为空且唯一。
  • created_at :时间戳,默认值为当前时间,记录记录创建时间。
  • updated_at :时间戳,默认值为当前时间,在记录更新时自动更新。
五、数据类型与约束

MySQL支持多种数据类型,包括数值型(INT、FLOAT、DECIMAL)、字符型(CHAR、VARCHAR)、日期时间型(DATE、TIME、DATETIME、TIMESTAMP)等。此外,还可以对字段施加约束,以确保数据的完整性和准确性。

  • 主键约束(PRIMARY KEY) :唯一标识表中的每一行。
  • 唯一约束(UNIQUE) :确保字段值的唯一性。
  • 非空约束(NOT NULL) :字段不允许为空。
  • 自动递增(AUTO_INCREMENT) :通常用于主键字段,自动生成唯一的数值。
  • 默认值(DEFAULT) :为字段指定默认值。
  • 外键约束(FOREIGN KEY) :用于建立表之间的关联关系。
六、高级操作:索引与视图
  • 索引 :提高查询效率的重要工具。可以在创建表时添加,也可以在表创建后通过 CREATE INDEX 语句添加。

    sql复制代码

    CREATE INDEX idx_username ON users(username);

  • 视图 :基于SQL查询结果的虚拟表,不存储数据,只存储查询语句。通过视图可以简化复杂查询,增强数据安全性。

    sql复制代码

    CREATE VIEW active_users AS

    SELECT * FROM users WHERE updated_at >= NOW() - INTERVAL 1 DAY;

上述视图 active_users 展示了最近一天内更新过的用户记录。

七、实战案例:图书管理系统

下面是一个简单的图书管理系统数据库设计示例,包括书籍(books)、作者(authors)和借阅记录(borrow_records)三个表。

sql复制代码

 CREATE DATABASE library_system;    
  
     
 USE library_system;    
     
 CREATE TABLE authors (    
     id INT AUTO_INCREMENT PRIMARY KEY,    
     name VARCHAR(100) NOT NULL    
 );    
     
 CREATE TABLE books (    
     id INT AUTO_INCREMENT PRIMARY KEY,    
     title VARCHAR(255) NOT NULL,    
     author_id INT,    
     published_date DATE,    
     FOREIGN KEY (author_id) REFERENCES authors(id)    
 );    
     
 CREATE TABLE borrow_records (    
     id INT AUTO_INCREMENT PRIMARY KEY,    
     book_id INT,    
     borrower_name VARCHAR(100),    
     borrow_date DATE,    
     return_date DATE,    
     FOREIGN KEY (book_id) REFERENCES books(id)    
 );  
八、总结

本文详细介绍了MySQL数据库与表的创建过程,从基础到进阶,包括数据类型、约束、索引、视图以及一个实际案例的演示。通过本文的学习,读者不仅能够掌握MySQL的基本操作,还能理解如何设计高效、合理的数据库结构,为开发高质量的Web应用打下坚实的基础。MySQL作为数据库领域的佼佼者,其强大的功能和灵活的扩展性值得每一位开发者深入探索和实践。

标签:与表,入门,创建,CREATE,id,KEY,MySQL,数据库
From: https://blog.csdn.net/weixin_43275466/article/details/142736229

相关文章

  • Kingst 金思特 LA5016逻辑分析仪 简单入门使用
    前言:这里我仅简单介绍一下Kingst金思特LA5016逻辑分析仪简单入门使用这个软件的快熟上手使用,有补充的话后续在跟新。购买硬件和安装相关软件。软件直接官网下载即可连接如下:。需要说明的是不仅仅只是LA5016,软件同时也兼容其他版本。使用体验:这个Kingst金思特LA5016逻......
  • 通过MySQL Workbench 将 SQL Server 迁移到GreatSQL
    通过MySQLWorkbench将SQLServer迁移到GreatSQL一、概述MySQLWorkbench提供了可以将MicrosoftSQLServer的表结构和数据迁移到GreatSQL的功能,此次将通过MySQLWorkbench将SQLServer的数据迁移到GreatSQL。本文章只是简单演示一下单张表的迁移,如果在项目中使用请根据......
  • 【Next.js 入门教程系列】01-基础知识
    原文链接CSDN的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 基础知识本篇包括以下内容:Next.js是什么创建Next.js项目客户端组件和服务器端组件数据获取缓存静态渲染与动态渲染Next.js​Next.jsisa framework forb......
  • 专栏简介:Java 17 深入剖析:从入门到精通
    Java17深入剖析:从入门到精通专栏简介在信息技术迅猛发展的今天,Java语言凭借其跨平台的特性、强大的生态系统以及丰富的社区支持,依然稳居开发者的首选。随着Java17的发布,Java语言引入了众多创新特性和改进,使得它在现代软件开发中更具优势。本专栏将为读者提供一个深......
  • MySQL之B+树分析
    概览索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引好比一本好书的目录页,需要查询某个章节直接在目录页查找,然后打开响应页数。但索引也不是就快,如果章节少,那就直接翻开书找即可很快找到,只有章节非常多时,我们就可以利用索引快速找到。所以,如......
  • Spring Boot教学资源库:从入门到精通
    1绪论1.1研究背景目前,在网络大环境下,越来越多高校开始实行网络教学,利用网络教学方式有利于学生更好的学习。网络教学是指以计算机及网络为基础,来实现教学资源的上传、存储、传播和共享的教学手段。它是一种教学活动,必然存在着一定的学习方式,计算机网络是网络教学实现的......
  • 基于Java+SpringBoot+Mysql在线年度考核考勤管理系统功能设计与实现九
    一、前言介绍:1.1项目摘要随着计算机和网络技术的迅猛发展,学校教学和管理的信息化发展也得到了长足的进步,学校是否具有一流的信息管理、教育教学的平台已经是衡量一个学校信息化建设的重要标志之一。本文首先介绍了在线考试系统的开发背景,开发工具,结构化开发的具体步骤,然......
  • 基于Java+SpringBoot+Mysql在线年度考核考勤管理系统功能设计与实现十
    一、前言介绍:1.1项目摘要随着计算机和网络技术的迅猛发展,学校教学和管理的信息化发展也得到了长足的进步,学校是否具有一流的信息管理、教育教学的平台已经是衡量一个学校信息化建设的重要标志之一。本文首先介绍了在线考试系统的开发背景,开发工具,结构化开发的具体步骤,然......
  • SQLAlchemy入门:详细介绍SQLAlchemy的安装、配置及基本使用方法
    SQLAlchemy是一个流行的PythonSQL工具包和对象关系映射(ORM)框架,它为开发人员提供了一种高效、灵活的方式来与数据库进行交互。本文将详细介绍SQLAlchemy的安装、配置及基本使用方法,并通过代码示例和案例分析,帮助新手朋友快速上手。一、SQLAlchemy简介SQLAlchemy由MikeBa......
  • 网络安全小白入门难吗
    世上难的事情有很多,网络安全绝不是最难的那一梯队,但是也不简单。如果真的感兴趣认真学的话是一定可以学会的,但是如果只是嘴上说说不愿意付诸行动的话,那么你可能连网络安全的大门都找不到想要入门网络安全首先就是要选好方向,在这个圈子技术门类中,工作岗位主要有以下三个方......