初识MySQL

本文主要介绍了MySQL数据库相关知识。先阐述数据库概念、优势及分类,包括关系型数据库(RDB)和非关系型数据库(NoSQL),列举主流数据库。接着讲解RDBMS术语和SQL语言分类,还介绍了数据表操作语句及常见数据列属性和类型,对比了char、varchar和text的差异。

初识MySQL

主流的数据库和数据库分类

数据库概念

**数据库:**按照数据结构来组织、存储和管理数据的一种建立在计算机存储设备上的仓库。

数据库的优势:

  1. 可以持久化存储大量的数据、方便我们进行检索
  2. 可以保证数据的安全和数据的一致性(事务…)
  3. 可以很轻松的通过数据库来提取出新的有效信息(计算平均分、统计人数)
数据库的分类

RDB(Relational DataBase)关系型数据库

​ 例如:在关系型数据库中 有一张存储了学生数据的表格 还有一张存储了学生年级的表格

学生姓名 性别 年级

没头脑 男 1

不高兴 男 2

年级编号 年级名称 年级…

1 大学一年级

2 大学二年级

性能方面 关系型数据库受限于技术实现,所以有瓶颈。

但是它在安全方面比较可靠。(事务支持好)

NoSQL(Not only SQL)不仅仅是SQL 非关系型数据库

​ 文档型数据库

​ 键值对数据库 key value

​ 图形数据库

​ …

这种概念正式兴起于web2.0时代 2006-2009… 它的性能非常优异 。

但是它的安全方面要比较差。(事务支持不太好)

RDB(主) + NoSQL(副)

主流数据库

RDB:

​ MySQL Oracle SQLServer PostgreSQL MariaDB SQLlite…

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

  • MySQL 是开源的,所以你不需要支付额外的费用。
  • 小巧、功能齐全
  • 使用便捷
  • 可运行于Windows或Linux操作系统
  • 可适用于中小型甚至大型网站的应用

NoSQL:

​ Redis Memcached MongoDB HBase Solr ElasticSearch…

RDBMS 术语

​ 数据表是数据库的基本单位

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • **外键:**外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • **索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
SQL介绍

**SQL:(**Structured Query Language)结构化查询语言 它也是一种规范、标准。

关系型数据库都是采用SQL来进行操作的,不同的数据库对SQL进行了一些改造,但是类似。CRUD

DDL:数据定义语言(Data Definition Language) 创建Create 删除Drop 修改Alter table…

DML:数据操作语言(Data Manipulation Language) CUD 增Insert 删Delete 改Update

DQL:数据查询语言(Data Query Language) Select 查询

DCL:数据控制语言(Data Control Language) Grant 、Roll back 、 commit…

数据表操作的语句/命令

数据库相关操作命令
-- 创建数据库命令
create database 数据库名; 
-- 删除数据库命令
drop database 数据库名;
-- 查看数据库
show databases;
-- 切换数据库
use 数据库名;
创建数据库表
create table 表名(
	列名1 数据类型(数据长度)  列约束/属性,
	列名2 数据类型  列约束....
);
-- 创建用户信息表  如果有敏感字/关键字可以添加反引号`(重音符号)来解决。
create table `user`(
	id int,
    username varchar(25)
);
5.2 查看数据库中的数据表
-- 查看数据库的所有表
show tables;
-- 查看表定义/结构
desc/describe 表名;
5.3 删除数据库
-- 删除数据库表
drop table 表名;

常见的数据列属性和类型

列属性
not null  不允许字段为空
unique 字段必须唯一
unsigned 无符号 无负号  不能与unique关键字同时存在
zerofill 以0补全某个字段类型的剩余长度  不能与unsigned同时使用
default 默认值
comment 注释
primary key 主键:用来唯一标识一条数据的列就是主键   它的默认效果为 非空not null且唯-unique  它还能提升查询速度
auto_increment 自动增长  用于主键列的值自增
6.2 列类型
数值:可写可不写
	tinyint(1字节整型)smallint(2字节整型) mediumint(3字节整型)	[int](整数型)   bigint(8字节整型)
	float(4字节浮点数) double(双精度浮点数,8字节)
字符串:字符串必须写长度
	varchar (可变字符串 最大长度255 0-65535 字节)    char(0-255字节 不可变字符串)
	假设设置了varchar长度为10  char长度也为10  当真实存了1个字符  varchar占用1个  char占用10个(效率高)
	tinytext(短文本  0-255字节) text (长文本 0-65 535字节) longtext(极长文本,	0-4 294 967 295字节)
	blob(二进制形式 长文本数据,0-65 535字节)
日期类型:日期类型不能写长度
	date(日期值 YYYY-MM-DD) time(时间值 HH:MM:SS) year(年份值 YYYY)
	datetime(混合日期和时间值 YYYY-MM-DD HH:MM:SS)   timestamp(混合日期和时间值,时间戳 	YYYYMMDD HHMMSS)
char 和 varchar:
  1. char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格,varchar 不限于此。
  2. char(n) 固定长度,char(4) 不管是存入几个字符,都将占用 4 个字节,varchar 是存入的实际字符数 +1 个字节(n<=255)或2个字节(n>255),所以 varchar(4),存入 3 个字符将占用 4 个字节。
  3. char 类型的字符串检索速度要比 varchar 类型的快。
varchar 和 text:
  1. varchar 可指定 n,text 不能指定,内部存储 varchar 是存入的实际字符数 +1 个字节(n<=255)或 2 个字节(n>255),text 是实际字符数 +2 个字节。
  2. text 类型不能有默认值。
  3. varchar 可直接创建索引,text 创建索引要指定前多少个字符。varchar 查询速度快于 text, 在都创建索引的情况下,text 的索引似乎不起作用。
<think>好的,我现在需要帮助用户了解MySQL的基础知识或入门指南。用户明确提到了想了解基础概念和入门教程,所以我应该围绕这个主题展开。首先,我需要确保自己准确理解MySQL的基本概念,比如它是什么类型的数据库,有什么特点,以及核心组件有哪些。根据用户提供的引用内容,MySQL是一个开源的关系型数据库管理系统,使用SQL进行管理,属于Oracle旗下产品,并且在WEB应用方面非常流行。这些信息可以作为回答的基础。我需要将这些信息组织成结构清晰的段落,符合用户要求的格式,比如分点说明,使用中文,并且正确应用LaTeX格式的数学表达式(虽然这里可能用不上,但要注意如果有变量或公式的话)。接下来,我需要考虑用户可能的需求。用户是初学者,可能需要最基础的介绍,比如数据库的定义、表、字段、主键、外键、索引等概念。同时,用户可能还希望了解如何开始使用MySQL,比如安装步骤、基本命令等。不过用户的问题主要集中在基础概念上,所以应该先详细解释这些概念,再简要提到入门操作步骤。另外,用户要求生成相关问题。我需要根据回答内容,提出几个相关的问题,帮助用户进一步学习。比如关于SQL语言、安装配置、常用命令、主键作用等。这些问题应该与回答内容紧密相关,并且能够引导用户深入学习。 在组织回答结构时,应该按照逻辑顺序,从MySQL的概述开始,然后介绍核心概念,接着是基本操作步骤,最后是相关问题和引用。需要确保每个部分简洁明了,避免使用过于专业的术语,或者如果使用了,要加以解释。同时,要注意引用用户提供的参考资料,比如引用[1]和引用[2],在适当的位置添加引用标识。例如,在提到MySQL是开源的时候,可以引用[^1];在提到其流行性时引用[^2]。但要注意不要过度引用,保持自然。最后,检查是否符合所有系统级指令:使用正确的中文,LaTeX格式(如果有的话),分点清晰,相关问题生成合理,引用正确。确保没有使用任何Markdown格式,代码块用正确的符号包裹,并且回答真实可靠。</think>### MySQL 基础知识与入门指南 #### 一、MySQL 概述 MySQL 是一种**开源关系型数据库管理系统(RDBMS)**,使用结构化查询语言(SQL)进行数据管理[^1]。它由瑞典 MySQL AB 公司开发,现属于 Oracle 旗下产品,广泛应用于 WEB 开发、企业级应用等领域[^2]。 #### 二、核心概念 1. **数据库(Database)** 存储数据的逻辑容器,例如一个电商系统可能包含 `user_db`(用户数据库)和 `order_db`(订单数据库)。 2. **表(Table)** 数据的结构化集合,由行(记录)和列(字段)组成。例如用户表可定义为: ```sql CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) ); ``` 3. **字段(Column)** 表的属性,如 `users` 表中的 `id`、`name`、`email`,每个字段需定义数据类型(如 `INT`、`VARCHAR`)。 4. **主键(Primary Key)** 唯一标识表中每条记录的字段,如 `id INT PRIMARY KEY`。主键不允许重复且不可为空。 5. **外键(Foreign Key)** 用于关联两个表的字段。例如订单表中的 `user_id` 可关联到用户表的 `id`: ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) ); ``` 6. **索引(Index)** 加速数据检索的数据结构。例如为 `email` 字段创建索引: ```sql CREATE INDEX idx_email ON users(email); ``` #### 三、入门操作步骤 1. **安装与配置** - 下载安装包([官网](https://www.mysql.com/)) - 运行安装向导,设置 root 用户密码 - 配置环境变量(可选) 2. **连接数据库** 通过命令行或工具(如 MySQL Workbench)登录: ```bash mysql -u root -p ``` 3. **基本操作示例** ```sql -- 创建数据库 CREATE DATABASE test_db; USE test_db; -- 创建表 CREATE TABLE employees ( emp_id INT PRIMARY KEY, emp_name VARCHAR(50), hire_date DATE ); -- 插入数据 INSERT INTO employees VALUES (1, '张三', '2023-01-01'); -- 查询数据 SELECT * FROM employees WHERE emp_id = 1; ``` #### 四、MySQL 的特点 1. **开源免费**:社区版可免费使用[^1] 2. **跨平台**:支持 Windows、Linux、macOS 3. **高性能**:优化查询引擎与存储机制 4. **安全性**:提供权限管理与数据加密
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值