MySQL简介与MySQL基本语句

一、存取数据的演变史

1.文本文件存取数据

特点:文件路径不固定>>>寻找的时候不好找>>>代码的兼容性较差

​ 文件的数据格式不统一>>>对数据做处理的时候代码需要变换>>>代码的兼容性较差

2.软件开发目录规范>>>被框架替代

​ 规定了数据应该保存在db目录下>>>目录路径统一,文件的路径却不同

​ 但是,数据格式并没有统一,兼容性还不够强

3.数据库服务

专门在服务器上,基于网络,供所有人作数据的增删改查

​ 作用:(1)统一路径(2)统一数据格式(操作方式)

​ 优点:降低学习成本,提高了开发效率

程序员的重点:思考业务逻辑,编写代码

4.数据库软件的应用史

数据库服务>>数据存储于网络中,可以共享

数据库服务集群:为了防止数据丢失,做备份,提升数据的安全性

二、数据库

1.数据库的本质

(1)从底层原理来看

数据库指的是操作数据的进程:一堆代码

(2)从实际应用上来看

数据库指的是可视化操作界面:一些操作数据的软件

数据库软件本质也是CS架构的程序

2.数据库的分类

(1)关系型数据库

特征1有一个固定的表结构,并且表头(表字段)应该提前就录入好了,字段名和字段类型应该提前设定好

特征2数据之间可以建立数据库层面的关系

关系型数据库软件MySQL、 Oracle、 MariaDB 、PostgreSQL、 sql server、sqlite、db2、access

1)MySQL:开源免费,使用最广,性价比贼高

2)Oracle:收费软件,使用成本高但是安全性也最高

3)PostgreSQL:开源免费,支持二次开发,兼容性高

4)MariaDB:与MySQL是一个作者,开源免费

5)sqlite:小型数据库主要用于本地测试

(2)非关系型数据库

特征1没有固定的表结构,数据库存储采用K:V键值对的形式

特征2数据之间无法建立数据库层面的关系,需要自己编写代码建立逻辑层面的关系

缓存数据库:数据存在内存中,读取速度的快,用于数据的查询。虽然缓存数据库是基于内存做数据存取,但是拥有持久化的功能

关系型数据库做主库,做数据的持久化保存;存数据库做数据的查询

非关系型数据库软件缓存数据库):redis、mongoDB、memcache

1)redis:目前最火,使用频率最高的非关系型数据库

2)mongoDB:文档型数据库,最像关系型数据库的非关系型数据库软件,主要用于爬虫以及大数据领域

3)memcache:被redis淘汰了

三、MySQL数据库

1.简介

MySQL是一款数据库软件

(1)版本问题
8.0:最新版
5.7:使用频率较高
5.6:学习推荐使用
ps:站在开发的角度使用哪个版本学习都没有关系

(2)主要目录介绍

bin目录 -->存放启动文件:mysqld.exe 、mysql.exe

data目录 -->存放核心数据:my-default.ini 默认的配置文件

2.用管理员身份登录

直接使用mysql命令默认是游客模式 权限和功能都很少
	mysql -u用户名 -p密码

管理员默认没有密码 连续回车即可
	mysql -uroot -p

3.密码相关操作

1.修改密码
添加好环境变量后
    方式 1:mysqladmin
      cmd终端内输入:
      mysqladmin -uroot -p原密码 password 新密码
    方式 2:直接修改存储用户数据的表
    方式 3:冷门操作
      set password=password('新密码')  # 修改当前登录用户

2.忘记密码
    方式 1:重新按转mysql
    方式 2:把data目录删除,拷贝别人的data目录
    方式 3:通过命令操作
      1)关闭正常的服务端
      net stop mysql
      2)以跳过授权表的方式重启服务端(不校验密码)
      mysqld --skip-grant-table
      3)单开一个cmd以管理员身份进入修改mysql.user表数据即可
      mysql -uroot -p 进入mysql管理员
      update mysql.user set password=password('新密码') where Host='localhost' and User='root':
      4)关闭服务端以正常方式启动
      net start mysql
      

4.SQL与NoSQL

数据库服务端是可以服务多种类型的客户端的

​ 客户端可以是自己开发的,也可以是python代码编写的,或者java 代码编写,所以要统一语言

SQL语句:操作关系型数据库的语言

NoSQL语句:操作非关系型数据库的语言

ps:SQL有时候也指代关系型数据库,NoSQL也指代非关系型数据库

要想和数据库交流,就必须用数据的语言,但我们掌握增删改查功能就可以

5.数据库重要概念

(1): 相当于是 文件夹

(2): 相当于是 文件夹里面的文件

(3)记录: 相当于是 文件夹里面的文件中的一行行数据

1.查看所有的库名称
show databases

2.查看所有的表名称
use mysql  切换进入库中
show tables

3.查看所有的记录
select * from user\G

四、MySQL基本语句

1.sql语句必须以分号 ; 结尾

2.sql语句编写错误: 1)直接报错 2)\c 取消执行

1.基于库的增删改查

不要对mysql自带的库进行操作

1.创建库
  create databases 库名;
  
2.查看库
  查看所有库名称  show databases; 
  查看指定库信息  show create database 库名; 
  
3.编辑库
  alter database 库名 charset='utf8';
  
4.删除库
  drop database 库名;
  

2.基于表的增删改查

操作表之前需要先确定库

0.创建库,并指定库
  create database db1;
切换操作库
  use db1;

1.创建表
  create table 表名(字段名 字段类型,id int);
  
2.查看表

 1)查看库下面所有的表名称
  show tables;
  
 2)查看指定表信息
  show create table 表名;
  
 3)查看表结构
  describe 表名;
  desc 表名;  # 简写
  
  查看指定库中表的信息
  desc 库名 表名;
  
3.编辑表

 1)修改表名
  alter table 表名 rename 新表名;

4.删除表
  drop table 表名;

3.基于记录的增删改查

Curd?

1.插入数据
  insert into 表名 values(数据值,按照位置一一传递);
  
2.查找数据
 1)查找表中所有的数据  
  select * from 表名;
 2)查找表中指定的数据  
  select 指定数据 from 表名;

3.编辑数据
  update 表名 set 字段名='新数据' where id=1;  
  # where筛选条件 改成id 1字段中的数据
  
4.删除数据
 1)删除表中所有的数据   
  delete from 表名;
 2)删除表中指定的数据    
  delete from 表名 where 筛选条件;
 

4.在python中操作mysql

import pymysql

# 连接mysql,输入root账户和密码
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', charset='utf8')
cursor = conn.cursor()   

# 1 新增
cursor.execute("create database db4 default charset utf8 collate utf8_general_ci")
conn.commit()

# 2 查看数据库
cursor.execute("show databases")
cursor.execute("use db4")
# 查看数据表
cursor.execute("show tables")
result = cursor.fetchall()
conn.commit()

# 3 删除数据库db4
cursor.execute("drop database db4")
conn.commit()


# 4 用mysql查看其中的数据表
cursor.execute("use mysql")
cursor.execute("show tables")
res = cursor.fetchall()
print(res)  # (('columns_priv',), ('db',), ('engine_cost',), ('event',), ('func',), ('general_log',), ('gtid_executed',), ('help_category',), ('help_keyword',), ('help_relation',), ...

# 5 关闭连接
cursor.close()
conn.close()
posted @ 2022-11-22 18:16  Duosg  阅读(33)  评论(0编辑  收藏  举报