数据库
·一、什么是数据库?(DataBase,简称DB)
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。
数据库是长期存放在计算机内、有组织、可共享的数据即可。
数据库中的数据按一定的数据模型组织、描述和储存、具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
二、什么是数据管理系统?
mysql 主要用于大型门户,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,oracle主要用于银行、铁路、飞机场大型公司。该数据库功能强大,软件费用高。
数据库服务器:运行数据库存管理软件
数据库管理软件:管理——数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
数据库存管理软件分类
数据库的本质就是一款基于网络通信的应用程序,它仅仅就是一个基于网络通信的应用程序
关系型数据库: mysql、oracle、db2、access、sql server
非关系型数据库:redis、mongodb、memcache
关系型:数据之间彼此有关系或者约束、存储数据的表现形式通常是以表格存储、每次个字段还会有 存储类型的限制,比如姓名只能存字符串,需要有表结构
非关系型:存储数据通常都是以k,v键值的形式,没有表结构
三、mysql
Mysql是一个关系型数据库管理系统,任何基于网格通信的应用程序底层用的都是socket
mysql不单支持mysql自己的客户端app还支持其他编程语言来充当客户端操作
服务端
基于socket通信
收发消息
sql语句
客户端
基于socket通信
收发消息
sql语句
1 2 3 4 5 6 7 8 9 10 | 库 》》》》 文件夹 表 》》》》 文件 记录 》》》 文件内一行行的数据 name password hobby lili 123 学习 summer 123 弹琴 表头 表格的第一行字段 字段 name、password、hobby |
1 2 3 4 5 | 服务端 mysql.exe 客户端 mysql.exe |
1 2 3 4 5 6 7 8 9 10 11 12 | 常见软件的默认端口号 mysql 3306 redis 6379 mongodb 27017 django 8000 flask 5000 Mysql 第一次以管理员身份进入是没有密码的,直接回车即可 客户端连接服务端完整命令 mysql - h 127.0 . 0.1 - p 3306 - uroot - p |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1 、mysql中的sql语句是以分号作为结束的标志 2 、基本命令 show databases;查看所有的库名 3 、连接服务端的命令可以简写 mysql - uroot - p 4 、当输入的命令不对又不想让服务端执行并返回报错信息,可以用\c取消 错误命令 \c 5 、客户端退出,退出命令加不加分号都可以执行 quit exit 6 、当你在连接服务端的时候发现只输入mysql也能连接 但是你不是以管理员身份运行的,只是一个游客模式 |
环境变量配置
每次启动mysqld需要先切到对应的文件路径下才能操作太多繁琐
将mysql所在的文件路径添加到系统环境变量中
1 2 3 4 5 6 7 8 9 10 | 将mysql服务端制作成系统服务(开机自启动) 查看当前计算机的运行进程数 services.msc 将mysql制作成系统服务 mysql - - install 移除mysql系统服务 mysql - - remove |
mysqladmin -uroot -p 原密码 password 新密码
改命令直接在终端输入即可,无需进入客户端
mysqladmin -uroot -p123 password 123456
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 忘记密码了怎么办? 可以将mysql获取用户名和密码校验的功能看成是一个装饰器 装饰在了客户端请求访问的功能上 我们如果将该装饰器移除,那么Mysql服务端就不会校验用户名和密码了 1 、先关闭当前mysql服务端 命令行的方式启动(让Mysql跳过用户名密码验证功能) mysql - - skip - grant - tables 2 、直接以无密码的方式连接 mysql - uroot - p 直接回车 3 、修改当前用户的密码 update mysql.user set password = password( 123456 ) where user = 'root' and host = 'localhost' ; 真正存储用户表的密码字段,存储的肯定是密文 只有用户自己知道明文是件么其他人不知道,这样更加的安全 密码对比也只能对比密文 4 、立刻将修改数据到硬盘 flush privileges; 5 、关闭当前服务端,然后以正常校验授予权表的形式启动 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | my_default.ini ini结尾的一般都是配置文件 程序启动会先加载配置文件中的配置之后才真正的启动 [mysql] 一旦服务端启动立刻启动加载下面的配置 sql_mode = NO_ENGINE_SUBSTITUION,STRICT_TRANS_TABLES [mysql] 一旦客户端启动立刻加载下面的配置 ... [client] 其他客户端 ... 需要你自己新建一个my.ini的配置文件 验证配置是否真的是自动加载 [mysql] print ( 'hello world' ) 修改配置文件后一定要重启服务才能生效 统一编码的配置,无需掌握真接拷贝即可 偷懒 将管理员的用户名和密码也添加到配置文件中 [mysql] character - set - server = utf8 collation - server = utf8_general_ci [client] default_character_set = utf8 [mysql] user = 'root' password = 123456 default - character - set = utf8 |
针对库的增删改查(文件夹)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #增 create database db1; create database db2 charset = 'gbk' ; #查 show databases; #查所有 show create database db1; 查单个 #改 alter database db2 charset = 'utf8' ; #删 drop database db2; |
针对表的增删改查(文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 在操作表(文件)的时候,需要指定所在的库(文件夹) 查看当前所在的库名字 select database(); 切换库 use db1; #增 create table t1( id int ,name char); #查 show tables; show create table t1; desc t; (describe t1;的缩写) #改 alter table t1 modify name char( 16 ); #删 drop table t1; create table db2.t1( id int );也可以用绝对路径的形式操作不同的库 |
针对数据的增删改查(一行行数据)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 要有库 有表才能操作记录 #增 insert into t1 values( 1 , 'jason' ); insert into t1 values( 1 , 'jason' ),( 2 , 'egon' ),( 3 , 'tank' ); #查 select * from t1; 该命令数据量特别大的时候不建议用 select name from t1; #改 update t1 set name = 'lili' where id > 1 ; #删 delete from t1 where id > 1 ; delete from t1 where name - 'json' ; #将表所有的数据清空 delete from t1; |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· 盘点!HelloGitHub 年度热门开源项目
· DeepSeek V3 两周使用总结
· 02现代计算机视觉入门之:什么是视频
· C#使用yield关键字提升迭代性能与效率
· 回顾我的软件开发经历(1)