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作为数据库领域的佼佼者,其强大的功能和灵活的扩展性值得每一位开发者深入探索和实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/887844.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

​通用代码生成器典型应用场景​

​通用代码生成器典型应用场景​ 1. 通用代码生成器简介 通用代码生成器或称动词算子式通用代码生成器,是一系列各种语言的易用的整站式代码生成器。其根本原理是把方法分解成动词算子和域对象的笛卡儿积。根据动词算子式代码生成器的基本原理。所有方法&#xff…

网 络 安 全

网络安全是指保护网络系统及其所存储或传输的数据免遭未经授权访问、使用、揭露、破坏、修改或破坏的实践和技术措施。网络安全涉及多个方面,包括但不限于以下几个方面: 1. 数据保护:确保数据在传输和存储过程中的完整性和保密性,…

[Python] 《人生重开模拟器》游戏实现

文章目录 优化点一:多元化的天赋系统示例天赋:天赋选择代码: 优化点二:更加多样化的随机事件年龄阶段划分:随机事件代码: 优化点三:设定人生目标人生目标示例:人生目标代码&#xff…

python爬虫 - 初识requests模块

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 前言 requests 是一个用于发送 HTTP 请求的 Python 库,设计简单且功能强大&am…

如何创建虚拟环境并实现目标检测及验证能否GPU加速

创建虚拟环境: 先创建一个虚拟python环境,敲如下代码 然后再到该虚拟环境里面安装自己想要的包 激活虚拟环境 然后再聚类训练这些 验证GPU加速 阿里源 pip install torch torchvision -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mir…

B树系列解析

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

YOLO11改进|卷积篇|引入线性可变形卷积LDConv

目录 一、【LDConv】卷积1.1【LDConv】卷积介绍1.2【LDConv】核心代码 二、添加【LDConv】卷积2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【LDConv】卷积 1.1【LDConv】卷积介绍 下图是【LDCNV】的结构图,让我们简单分析…

鸿蒙HarmonyOS开发生态

1、官网 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生态 2、开发工具IDE下载及使用 https://developer.huawei.com/consumer/cn/ 3、使用帮助文档 4、发布到华为应用商店 文档中心

多模态大语言模型(MLLM)-Blip2深度解读

前言 Blip2是一个多模态大语言模型,因其提出时间较早(2023年),且效果较好,很快成为一个标杆性工作。Blip2中提出的Q-former也成为衔接多模态和文本的重要桥梁。 Blip2发表时间是2023年,现在引用已经3288了…

事件抽取(Event Extraction, EE)

一、引言 事件抽取(Event Extraction, EE)是信息抽取领域中的一个重要任务,旨在从非结构化文本中识别和抽取事件相关的信息。事件抽取通常包括识别事件触发词、事件类型以及事件中的参与者、时间、地点等元素,最终将这些信息结构…

常见的基础系统

权限管理系统支付系统搜索系统报表系统API网关系统待定。。。 Java 优质开源系统设计项目 来源:Java 优质开源系统设计项目 | JavaGuide 备注:github和gitee上可以搜索到相关项目

【含文档】基于Springboot+Android的房屋租赁App(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

【JavaEE】【多线程】进程与线程的概念

目录 进程系统管理进程系统操作进程进程控制块PCB关键属性cpu对进程的操作进程调度 线程线程与进程线程资源分配线程调度 线程与进程区别线程简单操作代码创建线程查看线程 进程 进程是操作系统对一个正在运行的程序的一种抽象,可以把进程看做程序的一次运行过程&a…

IMS添加实体按键流程 - Android14

IMS添加实体按键流程 - Android14 1、实体按键信息(Mi 9 左侧实体按键)2、硬件添加2.1 内核添加设备节点2.2 Generic.kl映射文件2.3 映射文件文件加载loadKeyMapLocked2.4 addDeviceLocked 添加设备相关对象 3、keycode对应scankode4、KeyEvent.java 添加…

京东云主机怎么用?使用京东云服务器建网站(图文教程)

京东云主机怎么用?非常简单,本文京东云服务器网jdyfwq.com使用以使用京东云服务器搭建WordPress博客网站为例,来详细说下京东云主机的使用方法。使用京东云服务器快速搭建WordPress网站教程,3分钟基于应用镜像一键搞定&#xff0c…

python之详解字符串

由字符组成的序列,可以用单引号或双引号括起来。 1、通过下标获取字符串的字符 1.1、获取单个字符 若要获取字符串中某一个字符,可以通过 字符串名[index] 索引下标的方式获取。 索引的初始值为0,最大值为字符串长度-1。 切记&#xff0…

一、图解C#教程

一、堆和栈 程序运行时,数据存储在内存中。 使用堆和栈来存储数据 1、栈 栈是一个内存数组,先进后出原则。 可以存储:某些类型变量的值;程序当前执行环境;传递给方法的参数; 入栈:把数据放…

自动驾驶-问题笔记-待解决

参考线的平滑方法 参考线平滑算法主要有三种: 离散点平滑;螺旋曲线平滑;多项式平滑; 参考链接:参考线平滑 对于平滑方法,一直不太理解平滑、拟合以及滤波三者的作用与区别; 规划的起点&#x…

计算机网络——email

pop3拉出来 超出ASCII码范围就不让传了 这样就可以传更大的文件

Ubuntu 安装 Docker Compose

安装Docker Compose # 删除现有的 docker-compose(如果存在) sudo rm -f /usr/local/bin/docker-compose ​ # 下载最新的 docker-compose 二进制文件 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-…