基本使用
下载和安装
- 首先到MySQL官网上下载MySQLMySQL官网。
下载之前需要登录Oracle账号才能下载。 - 下载完成之后,需要验证MySQL是否安装成功。
测试MySQL是否安装成功有如下几种方法:
- 需要再命令行中输入
services.msc
,然后在弹出的服务列表中查看能否找到MySQL,如果可以找到就说明安装成功。否则安装失败,需要重新安装。
- Linux服务器可以输入以下命令:
mysqladmin --version
如果该命令能输出类似以下的结果,就说明安装成功。否则安装失败。
mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386
- 启动MySQL之前,需要给MySQL创建用户并且给该用户设置密码。
Linux用户安装之后使用如下命令:
mysqladmin -u root password "new_password"
Windows用户在MySQL安装的根目录下创建my.ini配置文件,该文件包含了MySQL的默认端口以及用户名密码等用户信息。例如:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
- 设置用户信息之后需要启动MySQL。
Linux用户启动:
[root@host] mysql
windows用户启动:
net start mysql
常用语句
数据库的创建与删除
CREATE DATABASE 数据库名; # 创建数据库
drop database <数据库名>; # 删除数据库
表的增删改查
CREATE TABLE table_name (column_name column_type); # 创建表
DROP TABLE table_name; # 删除表
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN ); # 插入一行
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause] # 更新某一列数据
搜索语句
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
排序语句
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
分组语句
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
表与表的连接查询
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
后端建表逻辑
-
分析需求:首先,开发人员需要与产品经理、业务分析师等相关人员沟通,了解需求和业务逻辑。他们会讨论数据的类型、关系和操作等方面的要求。
-
设计数据模型:根据需求分析的结果,开发人员会设计数据模型,即确定需要的表和表之间的关系。这通常使用概念模型、实体关系图(ER图)等工具来表示。
-
定义表结构:根据数据模型,开发人员会定义每个表的结构,包括表的字段、数据类型、约束等。这些信息通常使用数据库管理系统(如MySQL、Oracle)的建表语句来定义。
-
设计索引:为了提高数据库的查询性能,开发人员可能会设计索引。索引是一种数据结构,用于加快数据的查找速度。通常,索引会在常用的查询字段上创建。
-
设计约束:为了保证数据的完整性和一致性,开发人员会定义约束。约束可以限制某些字段的取值范围,或者定义表之间的关系。常见的约束包括主键约束、外键约束、唯一约束等。
-
创建表和约束:根据定义的表结构和约束,开发人员使用数据库管理系统提供的建表语句来创建表和约束。
-
测试和优化:在建表完成后,开发人员会进行测试,确保表的结构和约束符合预期,并且能够满足需求。如果有性能问题,可能需要进行优化,例如添加索引、调整数据类型等。
-
数据迁移:如果是在已有的数据库中新增表,开发人员可能需要进行数据迁移,将现有的数据导入到新建的表中。
主键的作用和条件
主键的作用:
- 唯一性约束:主键的值在整个表中必须是唯一的,即每一行数据都有一个唯一的标识。这样可以确保表中的每个数据行都可以被唯一地识别和访问。
- 数据完整性:主键的存在可以保证数据的完整性。通过主键,数据库可以确保每一行数据都有一个唯一标识,避免数据的重复或冗余。
- 快速访问:主键通常会被数据库系统用作索引的依据,以提高数据的检索和访问效率。数据库系统可以使用主键来加速查询操作,减少数据扫描的时间。
- 外键关联:主键可以用于建立表与表之间的关联关系。其他表可以使用主键作为外键来引用主表中的数据,实现表与表之间的关系和数据的一致性。
主键需要满足的条件如下:
- 唯一性:主键的值在整个表中必须是唯一的。
- 非空性:主键的值不能为空,即主键列的值不能为 NULL。
- 稳定性:主键的值应该是稳定的,不会频繁变动。
常见的主键类型:
- 自增长整数:使用一个自增长的整数作为主键,每次插入新记录时自动递增。这种主键类型通常用于关系型数据库中,如 MySQL 的 AUTO_INCREMENT。
- GUID(全局唯一标识符):使用一个全局唯一的标识符作为主键,通常是一个字符串,具有足够的长度和复杂性来确保唯一性。GUID 主键通常用于分布式系统或需要跨多个数据库实例的场景。
- 组合主键:使用多个列组合作为主键,这些列的值的组合必须是唯一的。组合主键通常用于需要多个列的值共同确定唯一性的情况。
- 自然主键:使用表中已经存在的某个列作为主键,例如使用身份证号码作为主键。自然主键的选择通常是基于业务需求和数据的特点。