数据库概念

数据库概念

  • 1.随意的存到了一个文件中 数据格式也是千差万别的
  • 2.软件开发目录规范
    • 规定了数据存放的位置
    • PS:数据都是保存在本地的
  • 3.将保存数据的部分 存到一个公共的地方 所有的用户涉及到数据相关 都必须来这个公共地方查找

数据库之MySQL

  • 本质上就是一款基于网络通信的应用软件
  • 任何基于网络通信的应用软件,底层都是用socket的

服务端

  • 基于socket通信
  • 收发消息
  • SQL语句(是一个公共的标准)

客户端

  • 基于socket通信
  • 收发消息
  • SQL语句

PS:MySQL不单单支持MySQL的客户端来操作,也支持其他编程语言直接操作(python java c++ php语法都不一样)


DBMS:数据库管理系统

关系型数据库(MySQL,oracle,sqlite,db2,sqlServer)

  • 数据与数据之间可以有关联与限制的
  • 关系型数据库通常都是表结构,也就意味着你在创建那个关系型数据库时
    • 第一步就是确定表结构
      • 字段有特定的类型
      • 存名字用字符串
      • 存密码用数字
      • 存生日用日期

非关系型数据库(redis(缓存型数据库),mongodb(文档型数据库,非常接近关系型数据库的非关系型数据库),memcache(缓存型数据库))

  • 通常都是以k,v键值的形式存储数据
  • MySQL其实可以把它看成一款支持远程操作文件的软件

>>> 文件夹

>>> 文件

记录 >>> 文件内一行行的数据叫做一条条的记录

表头 >>> 就是表格的第一行数据

字段 >>> 就是字段名+字段类型


安装MySQL

8.0好用点,推荐5.6,别下载最新版本的软件就行

下载解压,查看文件目录

  • 服务端 -mysqld
  • 客户端 -mysql

启动mysql(服务端与客户端)

  • 1.切换bin目录下
  • 2.执行mysqld或者mysql -h 127.0.0.1 -P 3306 -uroot -p

PS:

  • 做前期MySQL配置时,终端建议你用管理员身份运行,win+r启动的是普通用户,右键以管理员身份运行
  • mysql在初始登录时是没有密码的,直接回车即可
  • mysql中的SQL语句是以分号' ; '结束的,不敲分号,说明你没有输入完,客户端还会让你继续输入

在登录客户端时,直接输入mysql,则会进入访客模式,软件只会让你用测试库,所用格功能也很少

  • 客户端登陆 >>> mysql -h 127.0.0.1 -P 3306 -uroot -p
  • 客户端登陆(简写) >>> mysql -uroot -p
  • 客户端退出登录 >>> exit;或者quit;
  • 查看所有的数据库 >>> show databases;
  • 查看某个进程 >>> tasklist |findstr mysqld
  • 终止进程(依据PID码选择) >>> taskkill /F /PID

制作环境变量

  • 将启动文件所在的路径添加到系统的环境变量中

注意:配置完之后一定要重新启动mysql服务端以及cmd终端

将mysqld制作成系统服务

  • 制作系统服务,所用cmd终端一定要用管理员身份 >>> mysqld --install

修改密码

  • 没有密码的情况下 >>> mysqladmin -uroot -p password 123
  • 有密码的情况下 >>> mysqladmin -uroot -p123 password 123456
  • 当命令输入错误时可以用命令来取消前面的命令cancel >>> c

破解密码

前提:

  • 先将已启动的服务端停止
  • tasklist |findstr mysqld
  • taskkill /F /PID XXXX

具体步骤:

  • 1.跳过用户名和密码的验证功能,启动服务端
    • 重新启动服务端,跳过授权表 >>> mysqld --skip-grant-tables
  • 2.修改管理员用户对应的密码
    • update mysql.user(服务端所有用户信息的表) set password=password(123) where user='root' and host='localhost';
    • 显示Query OK >>> 请求成功
  • 3.关闭当前服务端,重新以校验用户名密码的方式启动
  • 4.正常以用户名密码的方式,连接mysql服务端

配置文件

  • 查看mysql服务端的简单配置 >>> s
  • latinl和gbk编码,解决服务端编码不一致的问题
  • 通常情况下配置文件的后缀名都是ini结尾
  • mysql自带的配置文件不能修改,但是我们可以新建一个配置文件my.ini,且mysql服务端在启动时就会自动加载这个my.ini配置文件内的配置
  • 修改完配置文件后需要先将服务端停止,再重新启动服务端才能生效

my.ini配置文件内容(解决服务端编码不一致的问题,而且可以从客户端直接以管理员身份登录)

[mysqld]
character-set-server=utf-8
collation-server=utf-8_general_ci
[client]
default-character-set=utf-8
[mysql]
user='root'
password=123
default-charactre-set=utf-8

注意:修改了配置文件一定要重新启动!!!


数据库的基本操作

增删改查

库(文件夹)

增

create databases db1;

查

show databases;查所有
show create databases db1;查单个

改

alter databases db1 charset='gbk';修改编码

删

drop databases db1;删库

 

表(field就是字段的意思;type就是字段类型的意思)

# 在创建表的时候,需要先指定库
# 指定库: user 库名
# 查看当前所在的库: select databases();

增

create table userinfo(id int,name char(4));

查

show tables; 查看某个库下面的所有的表
show created table userinfo;
desc userinfo;等价于describle userinfo;

改

alter table userinfo modify name char(32);

删

drop table userinfo;

记录

# 先创建一个库或者指定一个已经存在的库,切换到改库下创建表,然后再操作记录

create databases db1;
create table userinfo(id int,name char(32),password int);

增

insert into userinfo values(1,'jason',123); 插入单条数据
insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多条数据

查

select * from userinfo; 查看表中所有内容
select name from userinfo; 查用户表中所有用户的用户名
select id,name from userinfo where id=1 or name=tank; 根据索引查看详细内容

改

update userinfo set name='kevin' where id=1; 修改数据的一个字段
update userinfo set name='tank', password=666 where id=1; 修改数据的多个字段

删

delete from userinfo where id=1; 指定删除符合条件的数据
delete from userinfo; 将表中的数据全部删除
原文地址:https://www.cnblogs.com/zhukaijian/p/11364859.html