本文主要是介绍MySQL数据库与SQL语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据库
数据储存演化史
1.文本文件
文件路径:D:\a.txt D:\aaa.txt C:\c.txt
数据格式不一致:barry|123 harry$123 [email protected]
2.软件开发目录规范
规定将文件分类储存到不同的文件夹中,而储存数据的文件位置就是:db文件夹
对文件格式依旧不一致
3.数据库服务
规定文件的储存位置
规定了数据格式
数据库软件应历史
1.单机游戏
不同计算机上的相同程序,数据无法共享,数据库服务全部在本地完成
2.网络游戏
不同计算机上的相同程序,数据可以共享,数据库服务单独在网络假设,也就是远程数据库服务
'''
远程数据库服务
数据库集群
1.数据安全性问题
2.服务器负载问题
让许多服务器运行相同的数据库服务
'''
数据库本质
1.从底层原理的角度
数据库指的是专用用于操作数据的进程(运行在内存中的代码)
2.从现实应用的角度
数据库指的是拥有操作界面的应用程序(用于操作进程的界面)
3.我们不做特殊说明的情况下,默认说的是数据库软件
4.我们也称数据库软件本质上是一款cs架构的应用程序
也就是说所有程序员都可以编写
数据库的分类
1.关系型数据库
1.1数据的组织方式有明显的表结构(可以看成是表格)
id name password
1.2表与表之间可以建立数据库层面的关系
eg:用户表 房屋表
只要获得用户表的一条数据,就可以获得与之相关的其他表数据
1.3MySQL、MariaDB、Oracle、sqlite、db2、sql server
MySQL:开源,使用最为广泛,支持二次开发
PostgreSQL:开源,支持二次开发
MariaDB:开源,与MySQL是同一个作者,用法也极为相似
Oracle:收费,安全性极高,主要用于银行及各大重要机关
sqlite:小型数据库,主要用于本地测试(django框架自带该数据库)
2.非关系型数据库
2.1数据的组织方法没有明确的表结构,是以k:v键值对的形式组织的
{'name': 'barry'}
{'name': 'barry', 'pwd': 123}
2.数据之间无法直接建立数据库层面的关系
3.redis、mongoDB、memcache
redis:目前最火,使用频率最高的缓存型数据库
mongoDB:稳定型数据库,最像关系型的非关系型,主要用于爬虫、大数据
memcache:已经被redis淘汰
MySQL
MySQL简介
1.数据库软件虽然很多,但是底层几乎一样,学会一个其他都可以快速上手
2.MySQL版本问题
5.6X:前几年使用频率最高的版本
5.7X:最近尝试迁移的版本(频率+)
8.0X:最新版,功能很强大,但是线上环境几乎不用(本地自己用非常好用)
'不同版本在操作上几乎没有区别,主要体现在底层运作'
3.下载与安装
'''
1.进入官网
2.点击上方DOWNLOADS
3.点击MySQL Community(GPL) Downloads>>
4.点击MySQL Community Server
5.点击archives
6.在Product Version:选择版本
7.点击Download
'''
上述方法下载的安装包里含有服务端和客户端,支持本地操作
4.主要文件介绍
bin文件夹
mysqlb.exe服务端 mysql.exe客户端
data文件夹 存取数据
my-default.ini 默认配置文件
MySQL基本使用
1.先启动服务器
可能会报错:拷贝代码去百度
2.操作mysqld文件位置
mysqld(cmd窗口就是服务端,不要关闭)
3.再次打开一个新的cmd窗口
mysql(直接登录会以游客模式进入,功能很少
4.用户名密码登录
mysql -u用户名 -p密码
mysql默认管理员账号,用户名时root,密码是空
5.退出
exit
quit
系统服务制作
1.如何解决每次都需要切换路径查找文件的缺陷
添加环境变量
2.将mysql服务端制作成系统服务(随着计算机的开启而启动,关闭而结束)
2.1以管理员身份打开cmd窗口
2.2执行系统服务命令
mysqld --install
2.3启动服务端
在系统服务窗口右键右键MySQL直接启动
命令启动:net start mysql
'''
1.查看系统服务的命令
services.msc
2.关闭mysql服务端
net stop mysql
3.移除系统服务
先确保服务已经关闭
执行移除命令
mysqld --remove
'''
密码相关操作
1.修改密码
mysqladmin命令
通用方式: # 直接写在cmd中
mysqladmin -u用户名 -p原密码 password 新密码
第一次修改
ymsqladmin -uroot -p password 123
第二次修改
ymsqladmin -uroot -p123 password 321
偏门方法(有些版本无法使用): # 需要先登录
set password=PASSWORD(新密码);
2.忘记密码
2.1直接重装
2.2拷贝对应文件
先关闭服务端,然后以不需要效验用户身份的方式启动,在修改安装正确方式启动
1net stop mydql 关闭服务
2mysq --skip-grant-tables 跳过授权表(不需要密码登录)
3mysql -uroot -p 登录
4update mysql.user set password=passwoed(123) where Host='localhost' and User='root'; 修改数据
5net stop mysql 结束服务
6net start mysql 以正常的方式启动
SQL与NoSQL
1.数据库的服务端支持各种语言充当客户端
ps:以MySQL服务端为例
MySQL客户端、python代码编写的客户端、java代码编写的客户端
为例能够兼容所有类型的客户端,有两种策略
1.1服务端兼容
不合理,消耗数据库服务端资源
1.2制定统一标准
SQL语句、NoSQL语句
2.SQL与NoSQL
2.1SQL语句的意思是操作关系型数据库的语法
2.2NoSQL语句的意思是操作非关系型数据库的语句
2.3SQL有时候也用来表示关系型数据库,NoSQL也用来表示非关系型数据库
3.SQL语句语句结束符是分号;
取消SQL语句语句的执行\c
数据库重要概念
'下述概念只是为了更好理解,并不完全准确'
库 文件夹
表 文件夹里的文件
记录 文件里的数据
'''
show databases;查看所有数据库
show tables;查看所有的表
select * form mysql.user;查看user表里面所有的记录
'''
对数据库的基本SQL语句
1.增
create darabase 库名;
2.查
show databases;
show create database 库名;
3.改
alter database 库名 charset='gbk';
4.删
drop database 库名;
对表的基本SQL语句
'''
查看当前所在库名
select database();
如果没有切换指定的库那么默认为NULL
use 库名;
'''
1.增
create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型);
2.查
show tables;
show create table 表名;
describe 表名;
desc 表名;
3.改
alter table 旧表名 rename 新表名; # 改表名
4.删
drop table 表名;
对记录的基本SQL语句
'想操作记录,就要先有库和表'
1.增
insert into 表名 values(数据,数据);
insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
2.查
select * from 表名; # *表示查看所有字段
select 字段1,字段2 from 表名;
ps:如果表中字段较多出现了错乱,可以结尾写\c
3.改
update 表名 set 字段名=新数据 where 筛选条件;
4.删
delete from 表名; # 删除表中所有的数据
delete from 表名 where 筛选条件 # 按照条件删除数据
这篇关于MySQL数据库与SQL语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!