提示:看完本文章后包你学会MySQL。
文章目录
前言
数据库可以根据存储数据的结构进行分类。以下是一些常见的数据库分类:
关系型数据库(RDBMS):基于关系模型的数据库,使用表格和行列的结构来存储和管理数据。常见的关系型数据库有MySQL、Oracle、SQL Server等。
非关系型数据库(NoSQL):与关系型数据库相反,非关系型数据库不使用表格和行列的结构,而是使用其他数据模型存储和管理数据。常见的非关系型数据库有MongoDB、Redis、Cassandra等。
一、MySQL是什么?
我们下载的MySQL是一个数据库管理系统,在这个系统里面可以有很多的数据库。每个数据库会有很多表格,而每个表格都会有很多的列,每一列会有很多行!
二、在终端操作MySQL
2.1.登录(连接相关操作)
如下图所示:
MySQL5.7 是我在配置环境变量时将MySQL.exe重命名为MySQL5.7.exe。配置环境变量时也是MySQL5.7。
-uroot是指使用root用户登录数据库,你还可以使用其他用户登录。
-h192.168.11.16是连接到那个主机的IP。
-p后面跟你-u用户设置的密码。
2.2.数据库相关操作
1)show database;
分号一定要写,会显示当前连接中所有的数据库。
2)create database teacher;
create database teacher charset= utf8;
create database teacher character set utf8;
create database if not exists teacher character set utf8;
创建一个名为teacher的数据库,如何不存在则创建,并设置为可以写入中文。
3)drop database teacher;
删除一个teacher数据库。
4)use teacher;
连接到教师数据库。
2.3.表相关操作(列相关操作)
1)添加一个表
create table teacher (tid int not null primary key auto_increment, name varchar(20) not null default ‘张三’ ,constraint fk_name foreign key (tid) references student (sid) on delete restrict on update cascade);
添加一个teacher表,该表有两项tid和name,其中tid与表student表中的sid构成外键,当student 中的id更新时,也会更新。当student中的id被删除时时,拒绝删除。
2)删除一个表
drop table student;
删除学生表
3)显示表的列(表的结构)
describe teacher;
desc teacher;
4)修改表
alter table teacher add (n varchar(200) ,pay1 int default 200);
给teacher表中添加两列。在一个括号中,使用,隔开。
2.4.数据相关操作(行相关操作)
1)关于查询数据
-
基本查询:查询表中的所有数据或指定列的数据。
-
查询所有列的数据:
SELECT * FROM table_name;
-
查询指定列的数据:
SELECT column1, column2 FROM table_name;
-
-
条件查询:根据条件筛选数据。
- 使用
WHERE
子句进行条件查询:SELECT * FROM table_name WHERE condition;
- 使用
-
排序查询:按照指定的列对结果进行排序。
-
使用
ORDER BY
进行升序排序:SELECT * FROM table_name ORDER BY column_name ASC;
-
使用
ORDER BY
进行降序排序:SELECT * FROM table_name ORDER BY column_name DESC;
-
-
聚合函数:对数据进行统计计算。
-
求和:
SELECT SUM(column_name) FROM table_name;
-
平均值:
SELECT AVG(column_name) FROM table_name;
-
-
分组查询:按照指定列对数据进行分组。
- 使用
GROUP BY
进行分组查询:SELECT column1, SUM(column2) FROM table_name GROUP BY column1;
- 使用
-
连接查询:联合多个表进行查询。
-
内连接:
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
-
左连接:
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
-
2)关于插入和删除数据
-
插入数据:使用
INSERT INTO
语句将新数据插入到表中。-
插入完整数据:
INSERT INTO table_name (column1, column2) VALUES (value1, value2); INSERT INTO table_name VALUES (value1, value2);
-
插入部分数据:
INSERT INTO table_name (column1) VALUES (value1);
-
-
删除数据:使用
DELETE FROM
语句删除表中的数据。-
删除所有数据:
DELETE FROM table_name;
-
根据条件删除数据:
DELETE FROM table_name WHERE condition;
-
删除特定行数的数据:
DELETE FROM table_name LIMIT 5; -- 删除前5行数据
-
三.其他常用技术(了解理论即可)
3.1.事务(Transaction):
事务是指作为单个逻辑工作单元执行的一系列操作,要么全部成功执行,要么全部失败回滚,确保数据的完整性和一致性。在 MySQL 中,可以使用以下语句来管理事务:
- 开始事务:
START TRANSACTION;
- 提交事务:
COMMIT;
- 回滚事务:
ROLLBACK;
示例:
START TRANSACTION;
UPDATE table_name SET column1 = value1 WHERE condition;
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
COMMIT;
3.2.去重(Duplicate Removal):
去重是指在数据集中删除重复的数据,确保数据库中的数据不重复出现。在 MySQL 中,可以通过使用 DISTINCT
关键字或 GROUP BY
子句来进行数据去重。
-
使用
DISTINCT
关键字:SELECT DISTINCT column1, column2 FROM table_name;
-
使用
GROUP BY
子句:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
值得注意的是,去重操作一般是针对查询结果进行的,如果需要在表中删除重复数据,可以结合使用 DELETE
语句和子查询等方法来实现。
四.使用python来操作MySQL数据库
- 创建连接
connection = pymysql.connect(port=3306, user=‘root’, password=‘123456’) - 创建游标
cursor = connection.cursor() - 写并执行sql语句
sql = ‘show databases;’
cursor.execute(sql) - 从游标中获取内容
datas = cursor.fetchall()
for data in datas:
print(data[0]) - 关闭游标与连接
cursor.close()
connection.close() - 获取查询数据
fetch
fetchOne
fetchMany
fetchAll
scorll - 移动游标位置方式
relative
absolute - 执行!
cur.executemany('insert into cartoon values (%s,%s,%s) ', datas) - 记得提交与关闭连接
con.commit()
cur.close()
con.close()
五.总结
MySQL 是一种流行的关系型数据库管理系统,具有广泛的应用范围和强大的功能。以下是关于 MySQL 数据库的特点:
-
数据组织:MySQL 数据库以表(Table)的形式存储数据,每个表包含多个列(Column),每行(Row)代表一个记录。表之间可以建立关系,实现数据的关联和查询。
-
数据操作:MySQL 支持常见的数据操作,包括插入(INSERT)、查询(SELECT)、更新(UPDATE)和删除(DELETE),可以通过 SQL 语句来实现对数据的管理和操作。
-
事务支持:MySQL 支持事务(Transaction)操作,保证一系列操作的原子性,要么全部成功执行,要么全部失败回滚,确保数据的完整性和一致性。
-
索引和优化:MySQL 支持在列上创建索引(Index),加快数据检索速度;同时也提供了优化器(Optimizer)来优化查询语句,提高查询效率。
-
安全性:MySQL 提供用户权限管理功能,可以限制用户对数据库的访问权限,保障数据安全;同时也支持数据备份和恢复,防止数据丢失。
-
扩展性:MySQL 支持主从复制、分区表、分布式数据库等特性,可以应对大规模数据和高并发访问的需求,保证系统的稳定性和可扩展性。
总的来说,MySQL 是一款功能强大、性能优秀、易于使用的关系型数据库管理系统,被广泛应用于Web开发、企业应用等各个领域。通过合理的设计和优化,可以充分发挥 MySQL 数据库的潜力,实现高效可靠的数据存储和管理。