mysql+sqlyog的超详细完整安装+数据库基础知识

这篇具有很好参考价值的文章主要介绍了mysql+sqlyog的超详细完整安装+数据库基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装mysql

下载

地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads
注册或登录Oracle账户下载
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

解压添加环境变量

复制到文件路径至bin的到
此电脑——高级系统设置——高级——环境变量——
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

点下面的path
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

新建粘贴路径即可
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle一路确定

创建文件

环境配置完成后,打开文件夹,创建一个新的文件后缀名为 .ini 的 my.ini空白文件以初始化mysql数据库。
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
复制这段话贴进去(其中两个路径改一下,注意是//不是/)

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\\software_learning\\database\\mysql-8.0.30-winx64
# 设置mysql数据库的数据的存放目录
datadir = D:\\software_learning\\database\\mysql-8.0.30-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
保存退出

启动mysql

1.以管理员运行cmd窗口
切换盘符,进入mysql文件夹下的bin目录下
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
2. mysqld --initialize 初始化mysql。
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
在生成的datd文件夹下找到后缀.err文件,用记事本打开
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
2022-09-13T07:56:04.929927Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (ab8w7j6aa,J

查看初始账号、密码也就是下面:(密码是无空格的连续的,首可能是各种奇怪的符号)
账号:root
密码:(ab8w7j6aa,J

安装mysql

如果之前有安装过可以先在cmd命令窗口输入sc delete mysql 删除之前的mysql服务(非必要,可忽略)
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

接着在文件的bin目录下输入mysqld --install 命令;

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
成功后net start mysql启动
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
修改初始密码

alter user ‘root’@‘localhost’ identified with mysql_native_password by ’ 这里填写新密码 ';
例如:
alter user ‘root’@‘localhost’ identified with mysql_native_password by ’ 123456 ';

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
至此mysql安装启动完毕
如果要停止:

net stop mysql

二、sqlyog安装

上面的服务别关闭

sqlyog下载

http://ms-mcms/upload/1/editor/1576571660432.zip

更新上面链接不行了:https://github.com/webyog/sqlyog-community/wiki/Downloads
下载解压后
进入文件夹找到.exe文件,双击安装
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
后面都是选下一步
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
安装后运行,需要注册密钥,下面三选一即可

姓名(Name):cr173
序列号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c

姓名(Name):cr173
序列号(Code):59adfdfe-bcb0-4762-8267-d7fccf16beda

姓名(Name):cr173
序列号(Code):ec38d297-0543-4679-b098-4baadf91f983

新建连接
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
刚刚安装mysql的你改过的用户名密码
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle
连接即可可以看到localhost下的所有数据库
sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

三 补充

3.1 常用的数据库命令

net start mysql – 开启服务

1.连接数据库:mysql -u root -p – 回车后加密码,
2.查看数据库:show databases
3.创建数据库:create database dbname
4.切换数据库:use dbname
5.查看所有表:show tables
6.修改数据库:alter database dbname character set utf8
7.删除数据库:drop database dbname

net stop mysql # 关闭服务

sql语言中 – 是单行注释(两个-),/**/是多行注释

3.2 基本操作

3.2.1 常用的sql语言命令

1.创建表:create table tbname(id int, name varchar(20), sex char(1)); # 数字代表位数
2.查看表信息:desc tbname; – 查看表字段
3.查询数据:select * from tbname;
4.插入数据:insert into tbname (字段名) values (字段值); – insert into tbname (id, name, sex) values (1, ‘小明’, 0);
5.修改数据:update tbname set name=‘小明’, age = 2 where id = 3; – set后修改多个加逗号,指定id的,不指定所有的都要被改
6.删除数据:delete from tbname where id = 3; – 小心where的限定条件,不然全删了
7.修改表(添加字段):alter table tbname add achievement double(5, 2); – achievement 是字段名
8.修改表(改变字段):alter table tbname change name username varchar(20) – name是字段名
9.修改表(删除字段):alter table tbname drop name
10.删除表:drop table tbname

3.2.2 sql语句示例

-- 下面是一个完整的例子
CREATE TABLE students (
	id INT,
	student_name VARCHAR(20),
	sex CHAR(1),
	age INT,
	achievement DOUBLE(5, 2),
	team_id INT,
	graduation_data DATE
);

INSERT INTO students VALUES (1, 'XiaoMing',0,7,100,1,'2022-9-26');
INSERT INTO students VALUES (2, 'XiaoHong',1,0,199,1,'2022-9-26');
INSERT INTO students VALUES (3, 'XiaoLiang',0,15,60,2,'2022-9-26');
INSERT INTO students VALUES (4, 'XiaoZhang',0,10,88,2,'2022-9-26');
INSERT INTO students VALUES (5, 'XiaoLi',1,2,110.5,3,'2022-9-26');
INSERT INTO students VALUES (6, 'XiaoLiu',0,6,30,3,'2022-9-26');
INSERT INTO students VALUES (7, 'ZhangSan',0,3,NULL,4,'2022-9-26');
INSERT INTO students VALUES (8, 'Wangwu',0,6,50,4,'2022-9-26');
INSERT INTO students VALUES (9, 'XiaoMing',0,6,40,4,'2022-9-26');
INSERT INTO`students` students VALUES (10, 'XiaoEr',0,6,40,NULL,'2022-9-26');

-- select只查询数据库返回值,并不会对本身的数据库进行更改
SELECT * FROM students
SELECT id, student_name, sex FROM students; -- 只选择那几列
SELECT student_name, age+18 AS '18_years_later' FROM students; -- 给age的数值都加了18,字段名变成18_years_later,(AS可以省略)

-- 按条件查询
SELECT student_name, age FROM students WHERE age >= 3 AND age <= 15 -- where后可以简写为 BETWEEN 3 AND 15
SELECT student_name, age FROM students WHERE age <> 6  -- <>表示不等于,直接使用!=也是可以的

SELECT * FROM students WHERE achievement IS NULL;

SELECT * FROM students WHERE age = 3 OR age = 10;
SELECT * FROM students WHERE age IN (3, 15, 18); -- or 

SELECT * FROM tbname WHERE NAME LIKE '%x%';  -- 字段包含x的内容,'%x',分别是'x%'以x结尾,以x开头

-- 排序
SELECT * FROM students ORDER BY achievement; -- 通过achievement对students表数据升序排序
SELECT student_name, achievement FROM students ORDER BY achievement DESC;  -- 默认不加按照升序排列ASC,降序末尾加DESC

SELECT student_name, achievement FROM students WHERE achievement >= 60 ORDER BY achievement DESC;  -- 加了条件筛选出来再排

SELECT student_name, age, achievement FROM students ORDER BY age, achievement DESC;  -- 根据多个规则排序时,用逗号隔开,根据先后顺序排,且没加就是ASC,表示先按照age升序,按照achievement降序

3.2.3常用函数

-- 常用函数
SELECT student_name,LOWER(student_name) FROM students;  -- 把student_name的所有值转换为小写,并且显示为了LOWER(student_name)
SELECT student_name,UPPER(student_name) '转换为大写' FROM students;  -- 可以取别名,不然默认是UPPER(student_name)

SELECT SUBSTR(student_name, 5, 2) FROM students; -- substr(开始,长度)截取的字符串即 substring
SELECT student_name FROM students WHERE SUBSTR(student_name, 5, 1) = "M";  -- 截取的是M这个字符的student_name

SELECT student_name, LENGTH(student_name) FROM students;  -- 获取student_name长度,默认是student_name旁边length(student_name)显示
SELECT student_name, IFNULL(achievement, 0) FROM students; -- 获取achievement,如果是null就变为0 


-- 聚合函数
SELECT SUM(achievement) FROM students;  -- 计算总成绩
SELECT AVG(achievement) FROM students;  -- 求平均成绩
SELECT MAX(age) FROM students;  -- 求最大年龄
SELECT MIN(age) FROM students;  -- 求最小年龄
SELECT COUNT(*) FROM students;  -- 查询学生数量
SELECT COUNT(achievement) FROM students;  -- 有成绩的学员综合
SELECT COUNT(achievement) FROM students WHERE sex = 0;  -- 查询有成绩的男同学(sex=0)

SELECT DISTINCT student_name FROM students;  -- 去掉重复数据显示
SELECT COUNT(DISTINCT student_name) FROM students;  -- 统计去除重复后的总数
SELECT sex, COUNT(*) FROM students GROUP BY sex;  -- 分组,查询不同性别的人数
SELECT team_id, SUM(achievement) FROM students GROUP BY team_id;  -- 按小组计算总成绩
SELECT team_id, SUM(achievement) FROM students GROUP BY team_id HAVING SUM(achievement) > 100;  -- 筛选,总成绩大于100的小组

-- where 是直接对数据的条进行筛选,having是用在分组后进行筛选


-- limit关键字
SELECT * FROM students LIMIT 5;  -- 找到前 个学生
SELECT * FROM students LIMIT 2,8;  -- 查询第3个元素到第8个元素(即从第2个开始,取8个)
SELECT * FROM students ORDER BY achievement DESC LIMIT  5;  -- 学员表中排序成绩前五的学生

-- 顺序综合写法
SELECT 
	team_id, SUM(achievement)
FROM 
	students
WHERE
	sex = 0
GROUP BY 
	team_id
HAVING 
	SUM(achievement) > 100
ORDER BY 
	SUM(achievement) DESC
LIMIT 2;


-- 约束
CREATE TABLE teams (
	id INT,
	team_name VARCHAR(20)
)
INSERT INTO teams (id, team_name) VALUES (1, '老鹰队');
INSERT INTO teams (id) VALUES (2);
SELECT * FROM teams;
-- 查询发现第二条数据的team_name是空
-- 1.所以创建表的时候需要非空约束来保证字段的值不能为空;也就是在后面加一个not null
team_name VARCHAR(20) NOT NULL

-- 也就是
DROP TABLE teams;
CREATE TABLE teams (
	id INT,
	team_name VARCHAR(20) NOT NULL
)
INSERT INTO teams (id, team_name) VALUES (1, '老鹰队');
INSERT INTO teams (id) VALUES (2);  -- 这样插入就会报错,不会成功
SELECT * FROM teams;

-- 2.默认约束:保证字段即使字段不插入数据,也会有一个默认值
team_name VARCHAR(20) DEFAULT '无名队'

DROP TABLE teams;
CREATE TABLE teams (
	id INT,
	team_name VARCHAR(20) DEFAULT '无名队'
)
INSERT INTO teams (id, team_name) VALUES (1, '老鹰队');
INSERT INTO teams (id) VALUES (2);  -- 这样插入就不会报错,会有默认值'无名队'
SELECT * FROM teams;

-- 3.主键约束:保证数据不为空,且唯一
id INT PRIMARY KEY AUTO_INCREMENT

DROP TABLE teams;
CREATE TABLE teams (
	id INT PRIMARY KEY,  -- id变成主键约束了
	team_name VARCHAR(20)
)
INSERT INTO teams (id, team_name) VALUES (1, '老鹰队');
INSERT INTO teams (id, team_name) VALUES (1, '老虎队');  -- 就会报错了,除非1改成2
SELECT * FROM teams;

DROP TABLE teams;
CREATE TABLE teams (
	id INT PRIMARY KEY AUTO_INCREMENT,  -- id变成自增的了,注意必须要PRIMARY KEY
	team_name VARCHAR(20)
)
INSERT INTO teams (team_name) VALUES ('老鹰队');
INSERT INTO teams (team_name) VALUES ('老虎队');  -- 自动增加了
SELECT * FROM teams;



-- 4.外键约束:限制两个表的关系,一个表的外键必须为另一个表的主键,可以为空
FOREIGN KEY(team_id) REFERENCES teams(id)  -- 定义一对多关系

SELECT * FROM students
-- 如果想要students表里面的team_id和teams表里面的team_id进行一个关联,学生里面的作为外键,teams里面的作为主键
DROP TABLE students  -- 先删了之前的学生表,重新创建
CREATE TABLE students (
	id INT,
	student_name VARCHAR(20),
	sex CHAR(1),
	age INT,
	achievement DOUBLE(5, 2),
	team_id INT,  -- 仅仅是int,
	graduation_data DATE,
	FOREIGN KEY(team_id) REFERENCES teams(id) -- students表中作为外键的字段team_id,关联的主键的那个表teams的主键id
);

DESC students  -- team_id的位置Key写的是MUL,表示是外键
INSERT INTO students VALUES (1, 'XiaoMing',0,7,100,1,'2022-9-26');
INSERT INTO students VALUES (2, 'XiaoHong',1,0,199,1,'2022-9-26');
INSERT INTO students VALUES (3, 'XiaoLiang',0,15,60,2,'2022-9-26');
INSERT INTO students VALUES (4, 'XiaoZhang',0,10,88,2,'2022-9-26');

SELECT * FROM students

-- 这个时候插入下面的要报错,因为外键插入了主键不含有的值3,4(外键的约束)
INSERT INTO students VALUES (5, 'XiaoLi',1,2,110.5,3,'2022-9-26');
INSERT INTO students VALUES (6, 'XiaoLiu',0,6,30,3,'2022-9-26');

-- 所以必须要再加入值才能添加成功
INSERT INTO teams (team_name) VALUES ('老猫队');
INSERT INTO teams (team_name) VALUES ('老熊队');

INSERT INTO students VALUES (5, 'XiaoLi',1,2,110.5,3,'2022-9-26');
INSERT INTO students VALUES (6, 'XiaoLiu',0,6,30,3,'2022-9-26');
INSERT INTO students VALUES (7, 'ZhangSan',0,3,NULL,4,'2022-9-26');
INSERT INTO students VALUES (8, 'Wangwu',0,6,50,4,'2022-9-26');
INSERT INTO students VALUES (9, 'XiaoMing',0,6,40,4,'2022-9-26');
INSERT INTO students VALUES (10, 'XiaoEr',0,6,40,NULL,'2022-9-26');  -- 外键可以是null但不能是主键里没有的

SELECT * FROM students -- 外键可以是null但不能是主键没有的

-- 多对多,关联表
-- 创建学生表和教师表
CREATE TABLE teachers(
	id INT PRIMARY KEY AUTO_INCREMENT,
	teacher_name VARCHAR(20)
)
SELECT * FROM teachers;
INSERT INTO teachers (teacher_name) VALUES ("李老师");
INSERT INTO teachers (teacher_name) VALUES ("张老师");
SELECT * FROM teachers;
SELECT * FROM students;

-- 右键对students表点改变表在students表勾选id为主键,不然下面创建关系表会报错
DESC students

-- 创建关系表
CREATE TABLE teacher_to_student(
	id INT PRIMARY KEY AUTO_INCREMENT,  -- 主键
	teacher_id INT, 
	student_id INT,  -- 两个外键
	FOREIGN KEY(teacher_id) REFERENCES teachers(id),
	FOREIGN KEY(student_id) REFERENCES students(id)
)
INSERT INTO teacher_to_student (teacher_id, student_id) VALUES (1,1);

SELECT * FROM teacher_to_student


-- 多表查询

-- 多表不推荐的方式
SELECT students.`student_name`, teams.`team_name`
	FROM students, teams WHERE students.`team_id` = teams.`id`;

-- 别名	
SELECT s.`student_name`, t.`team_name`
	FROM students s, teams t WHERE students.`team_id` = t.`id`;

-- 内连接
SELECT s.`student_name`, t.`team_name`
	FROM students s 
	INNER JOIN teams t
	ON s.`team_id` = t.`id`

-- 左外连接
SELECT s.`student_name`, t.`team_name`
	FROM students s 
	LEFT JOIN teams t  -- 就这儿改成left
	ON s.`team_id` = t.`id`

-- 右外连接
SELECT s.`student_name`, t.`team_name`
	FROM students s 
	RIGHT JOIN teams t  -- 就这儿改成right
	ON s.`team_id` = t.`id`
	
	
-- 三个表关联
SELECT s.`student_name`, t.`team_name`
	FROM teacher_to_student ts
	INNER JOIN teachers t ON ts.`teacher_id` = t.`id`
	INNER JOIN students s ON ts.`student_id` = s.`id`
	
-- 子查询
SELECT student_name,achievement FROM students WHERE achievement > (
	SELECT AVG(achievement) FROM students
)

表关系分类

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

一对多

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

多对多关系

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

多表查询的推荐方式

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle

SQL语言在功能上主要分为如下3大类:

sqlyog安装教程,安装配置,mysql,mysql,数据库,oracle文章来源地址https://www.toymoban.com/news/detail-740423.html

到了这里,关于mysql+sqlyog的超详细完整安装+数据库基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库01——mysql的安装和配置(包含workbench安装,超详细)

    做大数据分析等数据行业肯定要接触数据库,Mysql是比较适合个人学习的数据库软件,本期第一章教学怎么安装和配置。 先去官网下载:MySQL :: 下载 MySQL 社区服务器  社区版就可以,选上面这个,然后下载。(他会让你注册,可以不用,点下面跳过就行) 然后放在一个路

    2024年02月03日
    浏览(42)
  • MySQL 5.7详细下载安装配置以及C# MySQL数据库操作教程

    MySQL 5.7详细下载安装配置以及C# MySQL数据库操作教程 最近有个项目使用MySQL5.7,在安装MySQL的时候会遇到很多问题,博客上其实也有很多解决问题的办法,在这里我操作记录一下,方便后续使用时查看。 以下MySQL 5.7.43 详细下载安装配置教程。 访问官方网站:https://www.mysql.co

    2024年02月09日
    浏览(51)
  • MySQL8.0数据库超详细安装教程全过程

    1、官网下载MySQL8.0地址:MySQL :: Download MySQL Installer (Archived Versions) 2、 双击安装包进行安装 3、自定义安装 4、选择MySQL Server8.0   5、创建MYSQL数据存储目录及安装目录 6、配置安装路径及数据存储目录 7、确认继续 8、选择MySQL,下一步 9、开始安装 10、第一次安装需要C++的依赖

    2024年02月08日
    浏览(74)
  • 在Windows上安装MySQL数据库(最最最详细,超级简单)

    目录 一.确认Windows是否安装MySQL 二.下载MySQL安装包  三.添加配置文件并安装MySQL 四.登录数据库,修改密码 五.配置环境变量 六.启动MySQL 1.按【Win+R】打开运行 2.输入【services.msc】打开服务  3.在服务列表中查找MySQL,如果有mysql服务则表示Windows已经安装MySQL,如果没有MySQL服务

    2024年02月13日
    浏览(58)
  • 【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

    在我们讲解SpringBootWeb基础知识(请求响应案例)的时候,我们讲到在web开发中,为了应用程序职责单一,方便维护,我们一般将web应用程序分为三层,即:Controller、Service、Dao 。 之前我们的案例中,是这样子的请求流程:浏览器发起请求,先请求Controller;Controller接收到请求之

    2024年01月25日
    浏览(67)
  • MySQL数据库完整性

    数据库的完整性是指数据的正确性和相容性。 数据的正确性是指数据符合现实世界语义,反映当前实际情况;数据的相容性是指数据库在同一对象的不同关系表中的数据是符合逻辑的。 数据的完整性:为了防止数据库中存在不和语义的数据 数据的安全性:为了保护数据库防

    2024年02月15日
    浏览(44)
  • MySQL5.7数据库、Navicat Premium1.6可视化工具安装教程【详细教程】

    MySQL: MySQL5.7.23 Navicat Premium: Navicat Premium16 NavicatCracker: NavicatCracker16.0.7.0 注:这里MySQL版本最好选择5.7.23的 1、双击打开文件mysql-installer-community-5.7.23.0.msi : 2、选择安装类型,选择自定义安装 3、选择安装的产品和功能 1、依次点开 “MySQL Servers”“MySQL Servers”“MySQL Ser

    2024年02月13日
    浏览(64)
  • 【MySQL】数据库完整性和安全性

    目录   一、完整性 1.概念 2.sql语言支持的两种约束     2.1静态约束          撤销追加约束          断言     2.3动态约束           触发器 二、安全性 用DBMS对数据库实现的两个特性  1.概念 指dbms保证的db的一种特性,在任何情况下的正确性、有效性、一致性 原理图

    2023年04月24日
    浏览(89)
  • Nodejs使用mysql2操作数据库【完整讲解】

    mysql2 是一个基于 Node.js 的 MySQL 客户端库,相比于 mysql 库,它具有以下几个优势: 性能更好:mysql2 库在性能方面进行了优化,使用了更高效的底层实现。它使用了更快的连接池管理和查询执行机制,可以处理更高的并发请求,提供更好的性能表现。 支持 Promise 和 async/await:

    2024年02月02日
    浏览(44)
  • 数据库管理系统PostgreSQL部署安装完整教程

            PostgreSQL是一个开源的关系型数据库管理系统,它支持大量的数据类型和复杂的查询语言,可以用于各种应用程序。它是一个高性能的数据库,可以处理大量的数据,并且具有良好的可扩展性和可靠性。 目录 一.Linux系统安装PostgresSQL(Centos7) 1.更新yun源 2.安装Po

    2024年02月09日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包