【MySQL安装和配置使用】

一、 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 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 表名;

                                               

                                                  谢谢观看,希望对您有所帮助。


 


 


 

  • 39
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值