下载链接:https://dev.mysql.com/downloads/mysql/
打开如下图:
(标注一:选择操作系统版本
标注二:Installer安装方式
标注二:下载压缩包,简单配置后 可使用)
这里我们选择标注二的安装方式,点开二后:
(标注一:同上
标注二:区别是第一个相当于下载一个引导程序再下载相关资源,第二个是直接一步到位。)
这里我们选择第二个:
意思是有这个账号的可以登陆下载,也可以直接点:No thanks,just start download开始下载 。
(注:如果想选择其他历史版本:
圈部分点开:
选择后下载即可
(1)安装1,找到下载的文件,双击:选择是(会有点慢)
2,选择自定义,next
3,点击红圈的加号,出现下载版本后点击圈里面箭头
4,选择安装位置和文件存放位置
选择横线一,出现横线二,点开:
(注意:可以选择非C盘,路径不能出现中文或者空格)
若出现警告信息:点击OK,Yes,next,Excute安装完成。
点击next,直到出现:
默认即可,若安装了多个数据库,注意端口号不能再是3306
next
next,默认有一个root用户,填写密码即可:下面是添加用户,可添加,也可直接下一步:
next,Excute(打满勾就好了)
圆满成功!!!
(2) 在终端或者dos窗口中登录mysql:
添加完环境变量即可:
未配置环境变量前(cmd中可能提示找不到命令)
步骤:
(1)找到安装位置下的bin目录(安装步骤中选择的),复制路径:
(2)右键此电脑,选择属性
选择高级系统设置:
点击环境变量
选择编辑:
选择新建:
复制安装位置的路径,一路确定。
圆满成功。
重启终端或者Dos窗口:
Mysql登陆格式:
mysql -u 用户名 -h 主机名(自己电脑:127.0.0.1或者localhost)-P 端口号 -p 密码(这种不会隐藏密码,哈哈)
访问自己电脑时,-h可省略,安装多个版本mysql时,需要用-P选择端口号。
我用着这一种:
mysql -u root -p
圆满登录!!!!
(注:安装完后也可直接使用mysql自带的登录工具:
点开,输密码。)
mysql简单使用1,查看数据库
show databases;
第一次查看mysql中的数据库:包含以下四个,不熟悉不轻易动他!
2,创建数据库
create database 数据库名;
例如:创建一个学生数据库:db_student,然后再查看数据库信息:
create database db_student;
查看数据库的创建信息:
show create database db_student;
会显示:创建语句,默认编码字符集还有一些其他信息。
3,查看表
表是存在数据库的,所以要查看数据库中的表,可以:
(1)切换数据库后再查看表:
比如查看sys数据库中有哪些表:
#切换数据库:use 数据库名; use sys; #查看表:show tables; show tables;
(2)查看指定数据库下有哪些表:
#格式:show tables from databaseName; show tables from sys;
4,创建表
表存放在数据库中,创建表之前一定要先切换数据库,同一个数据库中建多张表不用切换:
比如我们首先将数据库切换到:db_student
#格式:use databaseName; use db_student;
如果忘记了我们当前使用的是哪个数据库:
方式1:
status;
方式2:
show tables;
方式3:
开始建表:由于刚开始,我们首先创建一张没有约束的表:tb_studentinfo(注意先切换数据库)
create table tb_studentinfo( sname varchar(20), Snu int, sgrade char(3), score double );
我们就创建好了一个最简单的空表,可以这样查看表结构:
#desc tableName; desc tb_studentinfo;
同样:
show create table tb_studentinfo;
查看表的创建信息:
表中面的内容之后会详细介绍:现在我们得到一个空表,需要向其中添加数据:
如何往表中插入数据:
insert into tb_studentinfo(sname,snu,sgrade,score)
values('张三',1111,'一年级',80);
现在我们就往表中插入了一条信息:
如何查询插入信息:
到此为止,我们简单的过了一遍mysql简单操作流程。详细的内容,含义,操作,后面会依次展开。我们操作的直接对象实质上是表,为了方便学习,我们先向数据库导入一些数据:
如何向数据库中导入数据:
方式一:命令行方式导入
格式: source sql文件的路径
#命令行导入数据格式: source sql文件的路径;
方式二:图像化工具 导入
图形化工具只是提供功能,本质是一样的。
常见工具:
1,Mysql Workbench(Mysql自带,去官网下载)
2,SQLyog
https://webyog.com/product/sqlyog/
3,navicat preminum;
https://navicat.com.cn/
(注:连接时出现
在终端登录mysql:
执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; #修改密码(123456是我新改的密码)
然后登录:输入新密码就可以了。
sqlyog简单使用:
登录以后:
1:是一些数据库,表等基本信息
2:可以写SQL语句,写完的SQL语句,鼠标选择后点击这个按钮就可以执行,下面会显示执行结果。
第一章:绪论
1,基本概念
数据(Data):一切描述事物的记录称为数据。是数据库中存储的基本单位。
数据库(DataBase):存放数据的仓库
特点:就是我们存储数据不能丢失,方便操作,能够共享
- 永久存储
- 有组织
- 可共享
数据库管理系统(Data Base Management System)
就是使数据库中的数据具有能简单操作,方便共享,不易丢失的一个系统软件,Mysql,SqlServer
主要功能 :
1,数据定义功能:DDL数据定义语言
2,数据控制功能:DCL数据控制语言
3,数据操作功能DML:数据操作语言
数据库系统(DatBase System)
就是一切与数据管理相关的人,数据,机器,软件的统称。
主要特征
1,数据结构化:不针对某一个应用,面向全体企业组织。数据之间是有联系。
2,数据高共享,低冗余,易拓展
3,数据独立性高
物理独立性:用户的应用程序和数据库中的数据物理存储是相互独立的,4
逻辑独立性
运算符:
算术运算符
+ - * / div % mod
主要针对数值型的数值,在Sql语言中,+没有连接的意思,在进行加法时,非数值型会自动转换为数值型(字母会被视作0,数字仍为数字,NULL参与运算,结果weiNULL)
乘除运算
坟墓为0,运算结果为NULL(DIV表示除法)
取模运算
mod(运算结果与被模数相同)
比较运算符
第一类:
#约束
mysql>
mysql> #约束的定义:
mysql> #数据完整性:准确性和可靠性
mysql> #实体完整性:同一张表不能出现完全相同的记录
mysql> #字段的完整性:(也叫域的完整性):字段有范围
mysql> #引用完整性:表中的数据一定能找到
mysql> #用户自定义完整性:用户名唯一,密码不为空等做好约束
mysql>
mysql> #约束 :是表级的强制规定!,可在创建表示 规定,也可创完以后规定约束
mysql> #约束是为了数据的完整性,一个强制的限制
mysql> 约束的分类:
-> ^C
mysql> #约束的分类
mysql> #单列约束与多列约束
mysql> #一个字段与多个字段
mysql>
mysql> #列级约束和表级约束
mysql> #作用范围不同,声明约束放在对应字段后面,成为列级约束,表中所有字段声明完以后在后面约束为表级约束
mysql>
mysql> 约束的作用和功能:
-> ^C
mysql> #约束的作用
mysql>
mysql> #非空约束:not null
mysql>
mysql>
mysql>
mysql>
mysql>
mysql> #非空约束:
mysql> #创建表时就添加约束
mysql> #查看表中的约束
mysql> #正常的查询语句就可以了
mysql> #not null
mysql> #create table (字段1 not null,字段2,not null);
mysql> #非空约束会影响赋值:如赋NULL会报错,某些字段未赋值也会报错
mysql>
mysql> #创建完以后添加
mysql> #alter table tableName modify 字段 类型 not null
mysql> #删除约束
mysql> #alter table tableName modify 字段 类型 null
基本操作语言:
语法规范:(不是强制的)
- 完整的SQL语句以‘;’或者‘/g' '/G'为结束标志(单行可以不加,但规范还是建议遵守,‘;’是最常使用的)
- 当语句复杂时建议分行
- 一般字符串,时间,日期需用单引号括起来,列的别名使用双引号括起来
- 大小写:WIndows下大小写是不区分的,Linux下大小写敏感。规范推荐:数据库名,表名,表的别名,字段名,别名等建议小写。SQL关键字,函数名等建议大写。
- 注释:#单行注释 (不能嵌套)-- (单行注释,--后有一个空格)
语法规则:(强制的)
- ##
- ##
- ##
- ##
- ##
数据导入:
- 命令行导入:在终端登录后
格式: source sql文件的路径
2.可视化工具导入:
文件柜(数据库)---文件夹(表)--文件(数据)(如何把文件存放到文件柜且容易找到)
DDL:数据定义语言
- create:创建语句
- 语法规则
- 数据库名表名不超过30字符,变量名不超过29
- 数据库不能同名,同一数据库中表不重名,同意表中字段不能重名
- 只能出现A-Z/a-z/_(63种字符)
- 字段名建议不与关键字同名
- 不同表中的相同字段要保证名字和数据类型不变
示例一:创建数据库
方式一:
create database name;(使用默认字符集)
方式二:
create database name character set 'gbk ';(指定字符集)
方式三:
create database if not exists name;(如果存在:就不创建,否则就新建一个,只与名字有关)
混合使用:
create database if not exists name character set 'utf8 ';
查看创建信息:
show create database name;
查看创建结果:
show databases;
修改数据库(一般不需要改,推荐空数据库时修改)
(1)更改字符集
alter database databasename charactere set ' utf8';
(2)改名
实质是剪切,即删除原来的,建立新的,引入表()
(3)删除数据库
drop database databasename;(不存在就会报错)
drop database if exists databasename;(存在及删除,或者就结束)
示例二:创建表
在创建之前,必须先选择数据库或者切换数据库,在一个数据库中建表不用切换。
use database name';
查看当前使用的数据库
select database() from dual;
查看指定数据库下的表:
show tables from databasename;
数据类型:
| 数据类型 | 类型实例 |
| 整数类型 | INT(INTEGER) |
| 浮点数 | double |
| 定点数 | |
| 位类型 | |
| 日期 | date |
| 字符串 | varchar |
| 枚举 | |
| 集合 | |
创表:
方式一:
create table tablename(
id int,
name varchar(10),
riqi date,
);
create table if not exists tablename(
);
查看表结构:
desc tablename;
查看创建信息
show create tablename;
方式二:基于现有表创建新表
create table tablename
as
select 字段1 ,字段2 ,字段3 from tablename;
- alter
- drop
- rename
- truncate
DML:数据操作语言
- insert
- delete
- update
- select
查询语句:
基本格式:select 字段1,2,3,4....from tablename;
查询的不是某个具体表的数据时,可利用伪表(dual)
select 字段1,2,3 from dual;
查询全部:
select * from tablename;
列别名:
把查询结果换一个名字:
三种格式均可以,也可以混合使用。
select 字段1 别名1,2 别名2,3 别名3,4 别名4 from tablename;
select 字段1 as 别名1,2 as 别名2,3 as 别名3,4 as 别名4 from tablename;
select 字段1 “别名1”,2 “别名2”,3 “别名3”,4 “别名4” from tablename;
(使用双引号是规范,’ ‘不规范)
去除重复行:
比如有很多学生,但是之分在三个班,我们查询出来的只需要班级,而不是每个学生都列出来
select distinct 字段 from tablename;
select distinct 字段1,2,3 from tablename;(没有意义)
空值(NULL)参与运算:
NULL不等同于0或其他具体的东西,等价于不知道。
NULL参与运算会影响最终结果,结果也为NULL,所以要想法出去null
解决:ifnull(字段,0)如果为null 用0 代替
着重号:··(不是单引号)
当出现字段与关键字,保留字重名,必须添加着重号
查询常数:
select ’ 常数’ 字段 from tablename;(一般该常数不存在表中)
查看表结构:
desc 表名;(显示表中字段信息)
过滤数据
只查询满足某些条件的信息。
过滤条件:where
select * from tablename where 字段满足条件;
DCL:数据控制语言
- commit
- rollback
- savepoint
- grant
- revoke
(2)配置
下载:官网社区版可免费下载



