一、 Mysql介绍
• MySQL是一款开源的关系型数据库管理系统,由瑞典MySQL AB公司1995年研发
• 2008年被Sun公司收购,2009年Sun公司被Oracle公司收购.之后因担心有闭源的分险,由开发了MySQL的分支Maria DB
• MySQL6.x版本之后分为社区版和商业版
• MySQL是一种关联性数据库,将数据保存在不同的表中,而不是将所有的数据保存在一个大仓库内,增加了速度,提高了灵活度
• MySQL提供开源版本,不收取费用
• MySQL是可定制的,采用了GPL(GNV General Public Lincense)协议,可修改源代码来开发自己的MySQL
• MySQL支持大型数据库,可处理拥有上千万条的数据
• MySQL支持大数据,支持5000万条记录的数据包,32位表文件最大可支持4GB,64位支持8TB
• MySQL使用标准的SQL数据语言形式
• MySQL从5.7直接到了8.0
• 功能做出了显著的改进与增强
• 对MySQL的源代码进行了重构,对MySQL optimizer 优化器进行了改进,不仅速度提升,为用户带来更多更好的性能体验
Why choose Mysql?
MySQL是开源的,使用成本低
性能卓越,服务稳定
体积小,使用简单,并且易于维护
历史悠久,社区用户活跃,可以在其中寻求帮助
经过了时间的验证
Oracle 更适合大型的跨国公司使用,性能更加强大,更加安全:MySQL 体积小,速度快,总体来说是一款有成本低,可处理上万条记录的大型数据库,并且还是开源的.
二、下载MySQL
1、打开MySQL官网下载页面:https://dev.mysql.com/downloads/
然后点击“MySQL Installer for Windows”
2、点击“Download”下载最新版本,其他版本点击“Archives”选择对应的版本进行下载
3、这一步不需要登录或者注册,直接点击“No thanks, just start my download.”,然后选择保存地址进行下载
三、安装MySQL
1、先不要着急双击安装,需要先设置兼容模式安装,主要是为了后面安装时有“Developer Default”的选项,如果不需要用这个模式安装,此步可省略
右键点击安装文件,点击“属性”
切换到“兼容性”,依次点击“更改所有用户的设置”--“以兼容模式运行这个程序”--“确定”--“确定”
2、接着就可以双击安装程序进行安装,会弹出一个提示,大概意思是“可选的 MySQL 安装程序升级可用”,可以不用管,直接选择“No”
3、由于第一步的兼容模式运行,这一步就会出现“Developer Default”选项,根据自己的需要的选择
我选择的是默认的“Developer Default”,点击“Next”
-
“Developer Default”是开发者默认
-
“Server only”仅作为服务器安装
-
“Clientonly”仅作为客户端安装
-
“Full”是完整安装
-
“Custom”是自定义安装
4、修改安装目录,建议默认,点击“Next”
备注:如果有警告“You still have warnings with your selected paths. Are you sure you want tocontinue?”,选择“Yes”即可
5、点击“Execute”,耐心等待执行完成,然后一路点击“Next”
四、配置MySQL
1、在桌面上右键点击“此电脑”(有些是“我的电脑”),然后点击“属性”,进入系统信息设置界面,接着点击“高级系统设置”
2、切换到“高级”,点击“环境变量”
3、找到“Path”,双击打开
4、点击“新建”,输入对应的路径,如果没有修改过安装路径,就是图里显示的默认安装路径,然后点击“确定”
五、验证安装是否成功
按住Win+r ,输入“cmd”
然后输入命令行
mysql -uroot -p
接着输入MySQL密码,回车,如果出现了MySQL的版本信息即说明配置成功了。
六、使用MySQL—增删改查
数据库(database)是由表组合而成的
1、CREATE TABLE – 创建表
CREATE TABLE 语句用于创建数据库中的表。
CREATE TABLE 表名称
( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型,....);
数据类型(data_type)规定了列可容纳的数据类型。下面的表包含了SQL中最常用的数据类型:
数据类型 | 描述 |
integer(size),int(size),smallint(size),tinyint(size) | 容纳整数、在括号内规定数字的最大位数 |
decimal(size,d),numeric(size,d) | 容纳带有小数的数字、“size” 规定数字的最大位数、“d” 规定小数点右侧的最大位数 |
char(size) | 固定长度的字符串(可容纳字母、数字以及特殊字符)、在括号中规定字符串的长度 |
varchar(size) | 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)、在括号中规定字符串的最大长度 |
date(yyyymmdd) | 容纳日期 |
实例:
本例演示如何创建名为 “Persons” 的表。
该表包含 5 个列,列名分别是:“Id_P”、“LastName”、“FirstName”、“Address” 以及 “City”:
CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符
表已经创建完成了,接下来就是对库中表进行操作:
2、INSERT INTO -语句插入数据
语法:
INSERT INTO 表名称 VALUES (值1, 值2,....);
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
实例:在 “Persons” 表插入记录的两种方式:
1、插入新的行
INSERT INTO Persons VALUES (1, 'Gates', 'Bill', 'Xuanwumen 10', 'Beijing');
2、在指定的列中插入数据
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees');
3、SELECT * FROM 表名称 – 查询数据
语法:
SELECT * FROM 表名称;
SELECT 列名称 FROM 表名称;
4、DISTINCT – 去除重复值
语法:
SELECT DISTINCT 列名称 FROM 表名称;
示例:
SELECT DISTINCT LASTNAME FROM Persons;
5、WHERE – 条件过滤
语法:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;
示例:SELECT * FROM Persons WHERE City='Beijing';
6、AND & OR – 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
- 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
- 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
语法:
SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;
SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;
示例:(需要在Persons 表中插入几条数据)
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter';
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter';
结合 AND 和 OR 运算符:
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter';
7、ORDER BY 列 DESC – 排序(空值(NULL)默认排序在有值行之后)
语法:
升序:SELECT * FROM 表名称 ORDER BY 列1;
降序:SELECT * FROM 表名称 ORDER BY 列1,列2 DESC;
示例:
SELECT * FROM Persons ORDER BY ID_P,LASTNAME;
SELECT * FROM Persons ORDER BY ID_P DESC;
8、UPDATE 表名称 SET – 更新数据
语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
示例:UPDATE Persons SET FirstName = 'Fred' WHERE LastName = 'Wilson';
9、DELETE – 删除数据
语法:DELETE FROM 表名称 WHERE 列名称 = 值;
示例:DELETE FROM Persons WHERE LastName = 'Wilson';
10、 TRUNCATE TABLE – 清除表数据
语法:TRUNCATE TABLE 表名称;
11、 DROP TABLE – 删除表
语法:DROP TABLE 表名称;
12、LIKE – 查找类似值
语法:SELECT 列名/(*) FROM 表名称 WHERE 列名称 LIKE 值;
示例:
以N开始:SELECT * FROM Persons WHERE City LIKE 'N%';
包含N:SELECT * FROM Persons WHERE City LIKE '%N%';
以N结尾:SELECT * FROM Persons WHERE City LIKE '%N';
13、IN – 在.....里面
语法:SELECT 列名/(*) FROM 表名称 WHERE 列名称 IN (值1,值2,值3);
示例:SELECT * FROM Persons WHERE LastName IN ('Adams','Carter');
14、BETWEEN 值1 AND 值2 – 介于什么之间
语法:SELECT 列名/(*) FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2;
示例:SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter';
SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter';
15、AS – 别名
语法:SELECT 列名称/(*) FROM 表名称 AS 别名;
SELECT 列名称 AS 别名 FROM 表名称;
16、JOIN ON – 多表关联
语法:select 列名 from 表 A JOIN 表B ON 表A主键列 = 表B外键列;
- JOIN ON : 如果表中有至少一个匹配,则返回行
- INNER JOIN ON: 内部连接,返回两表中匹配的行
- LEFT JOIN ON: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN ON: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN ON : 只要其中一个表中存在匹配,就返回行
示例:SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p
INNER JOIN Orders o ON p.Id_P = o.Id_P ORDER BY p.LastName DESC;
17、UNION – 合并结果集
语法:SELECT 列名 FROM 表A UNION SELECT 列名 FROM 表B;
SELECT 列名 FROM 表A UNION ALL SELECT 列名 FROM 表B;
18、VIEW – 视图
语法:
CREATE VIEW 视图名 AS
SELECT 列名
FROM 表名
WHERE 查询条件;
删除视图:drop view persons_beijing;
19、SQL 常用函数学习
平均值:AVG():SELECT AVG(列名) FROM 表名;
统计:CONUT():SELECT COUNT(*) FROM 表名;
SELECT COUNT(DISTINCT 列名) FROM 表名;
SELECT COUNT(列名) FROM 表名;
最大值:MAX():SELECT MAX(列名) FROM 表名;
最小值:MIN():SELECT MIN(列名) FROM 表名;
求和:SUM():SELECT SUM(列名) FROM 表名;
分组:GROUP BY():SELECT 列A, 函数(列B) FROM 表名 WHERE 条件 GROUP BY 列名A;
HAVING :SELECT 名A, 函数(名B)FROM table_name WHERE 条件GROUP BY 列A HAVING 函数(列B) 查询条件;
大写:UCASE/UPPER():select upper(列名) from 表名;
小写:LCASE/LOWER(): select lower(列名) from 表名;
长度:LEN/LENGTH():select length(列名) from 表名;
数值取舍:ROUND():select round(列名,精度) from 表名;
当前时间:NOW/SYSDATE():select sysdate from 表名;
谢谢观看,希望对您有所帮助。