各个数据库安装配置笔记 MySql,sql server,Redis,Elasticsearch,Kibana,Mongodb,RabbitMQ
文章目录
MySQL 安装及配置 Navicat 工具
MySQL安装(压缩包)
下载
按照自己电脑下载对应的安装包
配置文件
解压后在文件夹中添加并配置 my.ini
文件(更改为自己的安装目录,data文件夹自行创建)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.24-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.24-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
配置环境变量
-
新建系统变量 :变量名:
MYSQL_HOME
,变量值:D:\mysql-8.0.24-winx64
(自己的MySQL安装路径) -
将
D:\mysql-8.0.24-winx64\bin
添加至path
变量中
初始化MySQL
初始化前,先确定data
文件夹为空
以管理员身份打开命令行工具,输入mysqld --initialize --console
等待片刻后
接下来输入的命令,必须用管理员身份运行命令行,否则无法执行
然后输入安装命令 mysqld install
安装成功后输入net start mysql
接下来登陆MySQL
数据库 mysql -u root -p
修改密码
输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '73748156';
来修改密码为73748156
配置完成
启动服务
输入指令 mysql.exe -hlocalhost -P3306 -uroot -p
然后输入密码
<big>启动成功</big>
链接 Navicat
点击连接
连接名输入127.0.0.1
输入设置好的密码,点击确定
连接成功
sql server安装与 sql 语言的学习
安装包下载
那必然去官网下载,下方是官网链接
微软下载官网
点击下载
选择这两个,再点击next~~~
先双击这个文件
一直下一步,这个功能要全选
一直下一步,完成后点开另一个文件
同样全选
安装完成
通过 sql sever 2008 建库
连接到服务器
新建数据库
输入数据库相关参数
右键数据库名称,新建表
输入列名,数据类型等参数
右键小箭头设置主键等属性
用 SQL 语句建库
新建数据库
单机新建查询,输入下方代码,点击执行,闭上眼睛默说五遍“我想要一个数据库”,然后睁开眼睛,你便拥有了一个数据库~~~~
CREATE DATABASE [2859902680] --数据库名字(名字含数字数字要用[],下同)
on primary
(
name = [2859902680_data],
filename = 'E:\goodgoodstudy\project\sql\1\2859902680_data.mdf', --数据文件路径
size=10, --初始大小/MB
maxsize=unlimited, --是否限制增长
filegrowth=1 --增量
)
LOG ON (
name = [2859902680_log],
filename = 'E:\goodgoodstudy\project\sql\1\2859902680_log.ldf', --日志文件路径
size = 5,
maxsize=unlimited,
filegrowth=1
)
建表
右键点击新建好的数据库,选择新建查询,在新的 sql 文件中输入下方代码,点击执行并呼出一口仙气
CREATE TABLE SC
(
-- 列名 约束条件(数据类型,可否为空)
S# CHAR(4),
C# CHAR(4),
SCORE SMALLINT,
PRIMARY KEY(S#,C#),--设置主键
--FOREIGN KEY(S#)REFERENCES S(S#),--设置外键
);
你就会发现一个现新建的数据表!!!
插入数据
还是右键数据库,新建查询,输入以下代码后点击执行
INSERT INTO SC
VALUES ('S1','C1',70),
('S1','C2',80),
('S1','C4',90),
('S2','C5',90),
('S4','C1',90),
('S5','C2',60),
('S5','C3',NULL),
('S5','C4',60),
('S5','C5',78),
('S6','C1',76)
记得 char 类型的数据需要加引号,int 类型不需要
然后右键这个数据表
点击 编辑前200行
即可看到刚刚输入的数据乖乖躺在表里~~~~
SQL 查询语句
还是右键数据库,新建查询,然后按照下方模板输入代码,体会查询数据带来的成就感
SELECT DISTINCT /*返回唯一不同的值*/ column, AGG_FUNC(column_or_expression), …
FROM mytable
JOIN another_table
ON mytable.column = another_table.column
WHERE constraint_expression
GROUP BY column /*结合函数对结果集进行分组*/
HAVING constraint_expression
ORDER BY column ASC/*升序排序*/ / DESC/*降序排序*/
LIMIT count/*输出数据量*/ OFFSET COUNT/*从第几个数据开始输出*/;
数据操作
– ① 检索年龄小于17岁的女学生的学号和姓名。
SELECT DISTINCT S#, SNAME
FROM S
WHERE AGE<17 AND SEX='F'
– ② 检索男学生所学课程的课程名与课程号。
SELECT DISTINCT CNAME, SC.C#
FROM SC, S, C
WHERE SC.C# = C.C#
AND S.S#=SC.S#
AND S.SEX='M'
– ③ 检索男学生所学课程的任课教师的工号和姓名。
SELECT DISTINCT T#, TNAME
FROM T WHERE T# IN(
SELECT T# FROM C WHERE C# IN(
SELECT C# FROM SC WHERE S# IN(
SELECT S# FROM S WHERE SEX = 'M'
)
)
)
– ④ 检索至少选修两门课程的学生学号。
SELECT DISTINCT S#, COUNT(C#) AS a
FROM SC
GROUP BY S#
HAVING COUNT(C#) > 2
– ⑤ 检索至少有学号S2和S4学生选修的课程的课程号。
SELECT C#
FROM C
WHERE C# IN (
SELECT x.C# FROM SC as x, SC as y
WHERE x.S# = 'S2' and y.S# ='S4' and x.C#=y.C#
)
– ⑥ 检索WANG同学不学的课程的课程号。
SELECT DISTINCT C#
FROM SC
WHERE C# NOT IN(
SELECT C# FROM SC WHERE S# IN(
SELECT S# FROM S WHERE SNAME = 'WANG'
)
)
GROUP BY C#
– ⑦ 检索全部学生都选修的课程的课程号与课程名。
SELECT C#, CNAME
FROM C
WHERE C# IN(
SELECT C# FROM SC
GROUP BY C#
HAVING COUNT (*) = (
SELECT COUNT(*) FROM S
GROUP BY S#
)
)
– ⑧ 检索选修课程包含LIU老师所授课程的学生学号。
SELECT DISTINCT SC.S#
FROM SC, C, T
WHERE SC.C# IN (
SELECT C.C# WHERE C.T# IN(
SELECT T# FROM T WHERE TNAME = 'LIU'
)
)
组合查询:
– ① 统计有学生选修的课程门数。
SELECT COUNT(DISTINCT C#) AS co
FROM SC
– ② 求选修C4课程的女学生的平均年龄。
SELECT AVG(S.AGE)AS RESULT
FROM S
WHERE S.S# IN(
SELECT SC.S# FROM SC WHERE SC.C#='C4'
)
AND S.SEX='F'
– ③ 求LIU老师所授课程的每门课程的平均成绩。
SELECT C#,AVG(SC.SCORE) AS AVG_SCO
FROM SC
WHERE SC.C# IN(
SELECT C# FROM C WHERE T# IN(
SELECT T# FROM T WHERE TNAME='LIU'
)
)
GROUP BY C#
– ④ 统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数。
SELECT SC.C#, COUNT(*) AS NUM
FROM SC
GROUP BY SC.C#
HAVING COUNT(*)>10
– ⑤ 检索学号比WANG同学大,而年龄比他小的学生姓名。
SELECT SNAME FROM S
WHERE S#>(
SELECT S# FROM S WHERE SNAME = 'WANG'
)
AND AGE<(
SELECT AGE FROM S WHERE SNAME = 'WANG'
)
– ⑥ 在表SC中检索成绩为空值的学生学号和课程号。
SELECT S#, C#
FROM SC
WHERE SCORE IS NULL
– ⑦ 检索姓名以L打头的所有学生的姓名和年龄。
SELECT SNAME,AGE FROM S
WHERE SNAME LIKE 'L%'
– ⑧ 求年龄大于女同学平均年龄的男学生姓名和年龄。
```sql
SELECT SNAME, AGE
FROM S
WHERE SEX = 'M'
AND AGE >(
SELECT AVG(AGE) FROM S WHERE SEX='F'
)
– ① 用户定义完整性:学生年龄<30。
ALTER TABLE S
ADD CONSTRAINT NL CHECK(AGE<30)
– 用实验验证当操作违反了完整性约束时,系统如何处理?
INSERT INTO S
VALUES('S11', 'HAORAN', 19, 'F')
– ② 修改SC中的约束条件,成绩在0-100之间。
– 如果约束存在则先删除
if exists(
select * from sysobjects where name= 'CJ'
)
alter table SC drop constraint CJ;
– 添加约束
ALTER TABLE SC
ADD CONSTRAINT CJ CHECK(SCORE<=100 AND SCORE >=0)
–用实验验证当操作违反了完整性约束时,系统如何处理?
INSERT INTO SC
VALUES('S1', 'C5', 150)
– ①求某门课的平均成绩,并把结果存入数据库;
CREATE TABLE L
(
C# CHAR(4) NOT NULL,
AVGGRADE SMALLINT,
PRIMARY KEY (C#),
FOREIGN KEY (C#) REFERENCES C(C#)
);
INSERT INTO L
SELECT C#, AVG(SCORE)
FROM SC
GROUP BY C#
– ②将选LIU老师所授课的全体学生的成绩置零。
UPDATE SC SET SCORE = 0
WHERE C# IN (
SELECT C# FROM C WHERE T# IN(
SELECT T# FROM T WHERE TNAME = 'LIU'
)
)
数据库与C#窗体关联
在窗体设计界面插入控件后
添加代码
新建连接对象,并传入连接指令字符串
public static string con = "server=BLACK;database=2019_3_2;uid=sa;pwd=123456";
public static SqlConnection con_connection = new SqlConnection(con);
定义查询语句
string sql = "SELECT * FROM OP WHERE OP.H_Pos = 402";
含 textbox 输入的sql语句
sql = "SELECT OP.Name,OP.O_ID,OP.Sex,OP.Num,OP.H_Pos,Age,Health_condition,N_Name FROM OP, NW WHERE OP.O_ID = "
+textBox1.Text+" AND NW.O_ID = " + textBox1.Text;
执行查询语句
SqlDataAdapter sqlLaoRen = new SqlDataAdapter(sql, con);
建立数据表对象
DataTable it = new DataTable();
将查询结果填充到数据表内
sqlLaoRen.Fill(it);
将数据表内容展示到控件中
dataGridView1.DataSource = it.DefaultView;
内容居中显示
dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
粘贴我所做的其中一个窗体的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography.X509Certificates;
namespace 三级项目
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}
public static string con = "server=BLACK;database=2019_3_2;uid=sa;pwd=123456";
public static SqlConnection con_connection = new SqlConnection(con);
//新建连接对象,并传入连接指令字符串
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string search_leixing = comboBox2.Text;
string sql ="";
if (textBox1.Text == "")//判断输入是否为空
{
MessageBox.Show("查询失败,请重新输入");
return;
}
switch (search_leixing)//判断下拉栏内容
{
case "通过老人证件号码查询老人信息":
if (textBox1.Text.Length != 3)//判断输入是否为空
{
MessageBox.Show("查询失败,请重新输入");
return;
}
sql = "SELECT OP.Name,OP.O_ID,OP.Sex,OP.Num,OP.H_Pos,Age,Health_condition,N_Name FROM OP, NW WHERE OP.O_ID = "
+textBox1.Text+" AND NW.O_ID = " + textBox1.Text;
break;
case "通过护工工号查询护工信息":
if (textBox1.Text.Length != 12)//判断输入是否为空
{
MessageBox.Show("查询失败,请重新输入");
return;
}
sql = "SELECT N_Name,N_ID,NW.Sex,Employment_term,NW.Num,NW.O_ID,NW.H_Pos,OP.Name FROM NW, OP WHERE NW.N_ID = "
+ textBox1.Text + " AND OP.O_ID = NW.O_ID;";
break;
case "通过管理人员编号查询管理人员信息":
if (textBox1.Text.Length != 6)//判断输入是否为空
{
MessageBox.Show("查询失败,请重新输入");
return;
}
sql = "SELECT M_Name, MA.H_Pos AS 所属养老院, NW.N_NAME AS 护工名字, NW.N_ID, NW.SEX AS 护工性别 FROM MA, Manage, NW WHERE MA.M_ID = "
+textBox1.Text+" AND MA.M_ID = Manage.M_ID AND Manage.N_ID = NW.N_ID";
break;
default:
MessageBox.Show("查询失败,请重新输入");
return;
break;
}
SqlDataAdapter sqlLaoRen = new SqlDataAdapter(sql, con);
//传入查询命令字符串
DataTable it = new DataTable();
//建立数据表对象
sqlLaoRen.Fill(it);
//将查询结果填充到数据表内
dataGridView1.DataSource = it.DefaultView;
//将数据表内容展示到控件中
dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
//内容居中显示
}
private void button2_Click(object sender, EventArgs e)
{
new Form1().Show();
this.Close();
}
}
}
配上好看的窗体界面设计
Redis 安装及配置笔记
Redis下载
下载地址:Releases · microsoftarchive/redis · GitHub
Redis 配置
解压压缩包
将路径添加至环境变量
在当前路径下按shift + 鼠标右键
,点击打开PowerShell
后
输入命令 redis-server.exe redis.windows.conf
常用命令
安装服务:redis-server --service-install
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
服务端启动时重命名:redis-server --service-start --service-name Redis1
Elasticsearch与Kibana的安装与配置
安装 Elasticsearch
下载链接:Elasticsearch 7.6.2 | Elastic
下载后解压
- 进入
bin
目录运行elasticsearch.bat
如遇到
则在elasticsearch.yml
中末尾添加xpack.ml.enabled: false
即可
打印了一堆看不懂的东西。。。
看见了started,掐指一算一定是启动完成了
打开 http://localhost:9200 出现 这样一团东西,就成功啦!
安装 Kibana
解压后运行bin目录下的kibana.bat
,启动Kibana
访问Kibana的用户界面,访问地址:http://localhost:5601
MongoDB与Robo 3T
下载安装MongoDB
下载地址:https://www.mongodb.com/download-center/community
下载后双击运行
选择自定义安装,选择安装路径
非必须,为了避免安装过慢,取消MongoDB Compass的安装选项,需要可自行安装
双击运行bin目录下的mongo.exe
下载客户端工具Robo 3T
下载地址:https://robomongo.org/download
解压后双击robo3t.exe
即可启动
创建一个连接
点击Save
之后点击Connect
即可
RabbitMQ安装与配置
安装Erlang
下载地址:http://erlang.org/download/otp_win64_21.3.exe
下载后双击运行
安装RabbitMQ
下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14.exe
下载后双击运行
进入安装目录下的sbin目录,shift+鼠标右键打开PowerShell
运行 .\rabbitmq-plugins enable rabbitmq_management
访问地址查看是否安装成功:http://localhost:15672/
账户密码为 guest
与 guest
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效