柳林网站建设,crm客户管理系统的功能,国内国际时事心得体会,iis添加网站主机名一#xff1a;MySQL数据库基础
1.MySQL数据库介绍
MySQL是一个[关系型数据库管理系统]#xff0c;由瑞典MySQL AB 公司开发#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一#xff0c;在 WEB 应用方面#xff0c;MySQL是最好的 RDBMS (Rela…一MySQL数据库基础
1.MySQL数据库介绍
MySQL是一个[关系型数据库管理系统]由瑞典MySQL AB 公司开发属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System关系数据库管理系统) 应用软件之一 数据库是一个存储数据的仓库按照数据结构来组织管理和存储数据并提供了增、删、改、查的功能。
2.数据库的主要特点
实现数据共享 数据共享包含所有用户可同时存取数据库中的数据也包括用户可以用各种方式通过接口使用数据库。 减少数据的冗余度 同文件系统相比由于数据库实现了数据共享从而避免了用户各自建立应用文件。 数据的独立性 数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立也包括数据物理结构的变化不影响数据的逻辑结构。 数据实现集中控制 文件管理方式中数据处于一种分散的状态不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理并通过数据模型表示各种数据的组织以及数据间的联系。 数据一致性可维护性以确保数据的安全性和可靠性 安全性控制以防止数据丢失、错误更新和越权使用完整性控制保证数据的正确性、有效性和相容性并发控制使在同一时间周期内允许对数据实现多路存取又能防止用户之间的不正常交互作用故障的发现和恢复由数据库管理系统提供一套方法可及时发现故障和修复故障 故障恢复 由数据库管理系统提供一套方法可及时发现故障和修复故障从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。
3.数据库的类型
关系型数据库
OracleMysqlPostgreSqlDB2Microsoft SQL serverMicroSoft Access
非关系型数据库
RedisMongodbBig Table
4.MySQL数据库安装
访问网址http://www.mysql.com具体网址:https://dev.mysql.com/downloads/windows/installer/8.0.html点击DOWNLOADS 进入Downloads 向下滑动到最低层找到MySQLcommunity (GPL) Downloads单击进入社区版对于大部分开发者就足够使用了 点击 Go to Download Page 进入 看到 MSI,单击本机版431.7M 大的进入 点击No thanks, just start my download下载时不需要登录 等待安装包下载完成后点击安装包进行安装 点击之后等待一下 选择安装方式 验证是否安装成功 以管理员的方式进入cmd命令行然后输入mysql -u root -p出现如下界面那是因为我们还没有配置环境变量。 找到我们mysql下的bin的路径默认是C:\Program Files\MySQL\MySQL Server 8.0\bin 复制这个路径右击我的电脑点击属性 点击高级系统设置点击环境变量点击Path点击编辑 点击新建粘贴路径点击确定一直点确定 ! 重新打开cmd命令行验证mysql是否安装成功下图证明已经安装成功
MySQL安装的注意事项
1、严格按照步骤走 2、可能存在的环境问题 2.1 安装mysql是路径不要设置中文 建议直接默认安装到C盘 2.2 你当前的电脑用户名不要是中文 2.3 你的服务要记得开启 默认 不用关 出现问题再看服务 2.4 make take a long time 找博客 https://www.cnblogs.com/mobaijun/p/14437131.html 2.5 当你安装失败的时候 一定要记住 清空你的安装路径下的文件 防止紊乱 2.6 一定要记住配置环境变量 2.7 安装版本 8.0以上的 找msi文件
二MySQL数据库的基本操作
1.创建数据库
我们可以在登陆 MySQL 服务后使用命令创建数据库语法如下:
CREATE DATABASE 数据库名;
2.显示所有的数据库
show databases;3.删除数据库
使用普通用户登陆 MySQL 服务器你可能需要特定的权限来创建或者删除 MySQL 数据库所以我们这边使用 root 用户登录root 用户拥有最高权限。 在删除数据库过程中务必要十分谨慎因为在执行删除命令后所有数据将会消失。 语法如下
drop database 数据库名;4.选择数据库
在你连接到 MySQL 数据库后可能有多个可以操作的数据库所以你需要选择你要操作的数据库。 可以使用SQL命令来选择指定的数据库
use 数据库名5.MySQL数据库类型
MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL 支持多种类型大致可以分为三类数值、日期/时间和字符串(字符)类型。
1数值类型
下面的表显示了需要的每个整数类型的存储和范围。
2日期与时间类型 3字符串类型 char(n) 和 varchar(n) 中括号中 n 代表字符的个数并不代表字节个数比如 CHAR(30) 就可以存储 30 个字符。
6.MySQL创建数据表
创建MySQL数据表需要以下信息
表名表字段定义每个表字段
语法
CREATE TABLE table_name (column_name column_type);以下例子中我们将在数据库中创建数据表book_tbl
CREATE TABLE book_tbl(book_id INT AUTO_INCREMENT,book_title VARCHAR(100) NOT NULL,book_author VARCHAR(40) NOT NULL,book_date DATE,PRIMARY KEY ( book_id )
)CHARSETutf8;实例解析
如果你希望字段为 NULL 可以设置字段的属性为 NOT NULL 在操作数据库时如果输入该字段的数据为NULL 就会报错。AUTO_INCREMENT定义列为自增的属性一般用于主键数值会自动加1。PRIMARY KEY关键字用于定义列为主键。 可以使用多列来定义主键列间以逗号分隔。CHARSET是设置编码。
成功创建表之后可以通过命令行查看表结构
show tables; //查看所有的表
desc book_tbl; //查看book_tbl的结构7.MySQL删除数据表
MySQL中删除数据表是非常容易操作的但是我们在进行删除表操作时要非常谨慎因为执行删除命令后所有数据都会消失。 语法以下为删除mysql数据表的通用语法 DROP TABLE 表名;执行成功后可以尝试查看表会发现查询不到。
8.MySQL插入数据
MySQL 表中使用 INSERT INTO 语句来插入数据。 语法以下为向MySQL数据表插入数据通用的语法
INSERT INTO 表名 ( 字段1, 字段2,...字段N ) VALUE ( 值1, 值2,...值N );如果数据是字符型必须使用单引号或者双引号如“value”。 例如
INSERT INTO book_tbl (book_id, book_title, book_author, book_date)VALUE(1, python爬虫, 岳岳, NOW());添加完成之后可以通过查询语句进行查询
select * from book_tbl;9.MySQL更新数据
如果我们需要修改或更新 MySQL 中的数据我们可以使用 SQL UPDATE 命令来操作。 语法以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法
UPDATE 表名 SET 字段1new-value1, 字段2new-value2 [WHERE 条件];可以同时更新一个或者多个字段你可以在 WHERE 子句中指定条件
实例 修改表中book_id1的book_author字段值
UPDATE book_tbl SET book_author岳岳2 WHERE book_id1;10.MySQL删除数据
你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。 语法以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法
DELETE FROM 表名 [WHERE 条件];如果没有指定 WHERE 子句MySQL 表中的所有记录将被删除。可以在 WHERE 子句中指定条件。
实例 删除book_tbl表中book_id1的记录
DELETE FROM book_tbl WHERE book_id1;删除整个表
DELETE FROM book_tbl;三MySQL查询数据
MySQL 数据库使用SQL SELECT语句来查询数据。 语法在MySQL数据库中查询数据通用的 SELECT 语法
SELECT 字段1字段2……字段n FROM table_name [WHERE 条件] [LIMIT N]查询语句中你可以使用一个或者多个表表之间使用逗号(,)分割并使用WHERE语句来设定查询条件。SELECT 命令可以读取一条或者多条记录。可以使用星号*来代替其他字段SELECT语句会返回表的所有字段数据可以使用 WHERE 语句来包含条件。可以使用 LIMIT 属性来设定返回的记录数。
实例返回数据表 book_data 的所有记录
# 数据表
create table book_data(id int auto_increment,book_name varchar(10),book_price int,book_love varchar(5),primary key(id)
)default charsetutf8;insert into book_data(book_name, book_price, book_love) values (三国演义, 100, 男);
insert into book_data(book_name, book_price, book_love) values (红楼梦, 80, 女);
insert into book_data(book_name, book_price, book_love) values (水浒传, 110, 男);
insert into book_data(book_name, book_price, book_love) values (西游记, 150, 男);
insert into book_data(book_name, book_price, book_love) values (羊皮卷, 250, 男);
insert into book_data(book_name, book_price, book_love) values (鬼谷子, 110, 女);
insert into book_data(book_name, book_price, book_love) values (甄嬛传, 110, 女);
insert into book_data(book_name, book_price, book_love) values (三国演义2, 110, 男);
insert into book_data(book_name, book_price, book_love) values (西游记续集, 110, 男);select * from book_tbl;1.where查询
1模糊查询
在 MySQL 中LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下
select book_price from book_data where book_price like 110;
# 查询所有以110的价格select * from book_data where book_price like 1%%;参考:https://blog.csdn.net/qq_46940224/article/details/125031647
2范围查询 between
between…and…表示在一个连续的范围内查询 in…表示在一个非连续的范围内查询
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);示例语句
select * from book_data where id 3 and id 8;
select * from book_data where id between 3 and 8;
select * from book_data where not(id between 3 and 8) and book_name三国演义;
select * from book_data where id in (2,4,6);
select * from book_data where id not in (2,4,6);3空判断查询
is null 查询某个字段为空的数据
增加数据集
insert into book_data(book_name, book_price) values (老人与海, 110);
insert into book_data(book_name, book_price) values (孙子兵法, 100);
insert into book_data(book_name, book_price) values (红与黑, 90);
insert into book_data(book_name, book_price) values (鬼吹灯, 210);select * from book_data where book_love is null;
select * from book_data where book_love is not null;
2.高级查询
1分页查询—limit
limit—分页查询语法 start—表示开始行索引默认0 count—表示查询条数
select * from 表名 limit start,count;select * from book_data where book_love男 limit 0,5;
# 查询前五行sex男的数据2聚合查询
通常对表中的数据进行统和计算 count()—求指定列的总行数 max()—求指定列最大值 min()—求指定列的最小值 sum()—求指定列和 avg()—求平均数
select count(id) from book_data;select count(*) from book_data;select max(book_price) from book_data where book_love女;select sum(book_price) from book_data;
3排序—order by
升序 ---- asc 降序 ---- desc
select * from book_data order by book_price desc;select * from book_data order by book_price asc;4分组查询
group by 列名 【条件表达式】
增加数据集合
insert into book_data(book_name, book_price, book_love) values (三国演义, 200, 男);
insert into book_data(book_name, book_price, book_love) values (红楼梦, 200, 女);
insert into book_data(book_name, book_price, book_love) values (水浒传, 200, 男);
insert into book_data(book_name, book_price, book_love) values (西游记, 200, 男);select book_name,sum(book_price) from book_data group by book_name;
# 查询书名一致的书本价格总和group_concat() 统计每个分组指定字段的信息集合
select book_name,group_concat(book_price) from book_data group by book_name;5连接查询
数据集
create table book_author(id int auto_increment,name varchar(10),book_id int,primary key (id)
)default charsetutf8;insert into book_author(name, book_id) values (罗贯中,1);
insert into book_author(name, book_id) values (曹雪芹,2);
insert into book_author(name, book_id) values (施耐庵,3);
insert into book_author(name, book_id) values (吴承恩,4);1.内连接
查询两张表中符合条件的共有记录 inner join—内连接关键字一张表连接另外一张表 on—连接查询条件
select book_data.book_name,book_author.name from book_data inner join book_author on book_data.id book_author.book_id;# 查询两张表id值相同的name和book_name2.左连接
查询左边所有记录和右表符合条件的记录 left join
insert into book_author(name, book_id) values (孙 武,11);
insert into book_author(name, book_id) values (海明威,10);select book_data.book_name,book_author.name from book_data left join book_author on book_data.id book_author.book_id;
# 根据左表id查询右表相同数据,右表不存在即为null3.右连接
查询右表所有记录和左表符合条件的记录 right join
select book_author.name,book_data.book_name from book_author right join book_data on book_author.book_id book_data.id;
# 根据右表id查询左表相同数据,左表不存在即为null四pymysql操作MySQL数据库
1.python操作数据库流程
创建连接—获取游标—执行命令—关闭游标—关闭连接 图解:
2.代码实现
第三方模块的安装 pip install pymysql import pymysql# 创建链接
db pymysql.Connect(host127.0.0.1,port3306,userroot,password123456,dbxiangxue
)
# 创建游标用于传递python给MySQL的命令和MySQL返回的内容
cursor db.cursor()# SQL插入语句
sql insert into book_tbl(book_id, book_title, book_author,book_date) values (4,python基础,岳岳3,NOW())
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()3.sv文件写入MySQL数据库
import csv
import pymysqlconn pymysql.Connect(host127.0.0.1,port3306,userroot,password123456,dbxiangxue
)cursor conn.cursor()with open(douban.csv, r, encodingutf-8) as file:reader csv.reader(file)data [row for row in reader]print(data)
sql INSERT INTO douban(title, grade, link,quote) VALUES (%s, %s, %s,%s)for row in data:cursor.execute(sql, row)
conn.commit()
cursor.close()
conn.close()
注意 本文并未包含MySQL数据库的全部知识点只是为后续的爬虫知识做准备