02 MySQL数据库(简介+基本SQL语句)

02 MySQL数据库(简介+基本SQL语句)

数据库时间线

数据演变史

# 1.单独的文本文件 
	没有固定的存放位置和格式
    	文件名:user.txt userinfo.txt data.txt
        数据格式:jason|123 tony~123 kevin$123
    """程序彼此之间无法兼容"""
# 2.软件开发目录规范
	规定了文件名和存储位置
    """文件的查找变得简单了  并没有解决核心问题"""
# 3.数据库阶段
	规定了文件的存储位置和数据格式
    """目前正在使用的阶段  解决了核心问题"""

数据存储发展史

# 1.单机游戏阶段
	数据各自保存在各自的计算机上 无法实现共享

# 2.多机游戏阶段
	数据统一保存在某个固定的服务器上(计算机)  实现数据共享
    前提:必须有网络
'''为了数据的安全 还会采用集群策略来分担风险'''

数据库的本质和分类

本质

# 本质也是一款cs架构的软件
	既然数据库本质是一款cs架构的软件 也就意味着我们每个人都可以编写一个数据库软件
    在目前地球上有很多牛逼的程序员 他们都具备编写数据库软件的能力 并且目前市面上真的有很多款数据库软件
"""
数据库在狭义层面上来说
	指的是处理数据的底层程序
数据库在广义层面上来说
	指的是操作这些底层程序的便捷应用软件
其实学习数据库很多时候学习的是配套的数据库软件
"""

分类(重点)

# 市面上有很多数据库软件 但是大致就分为两类
1.关系型数据库
	MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2
    	MySQL:开源免费 使用非常规范
    	Oracle:收费 维护成本高 大型公司可能会使用
        PostgreSQL:支持二次开发
        MariaDB:MySQL的替代产品(并且有自己的特性)
        sqlite:小型数据库(django框架自带该数据库)
		
            
2.非关系型数据库
	Redis、mongoDB、memcache
    	Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
        mongoDB:文档型数据库 可以用在大数据和爬虫领域 
        memcache:已经被redis淘汰
       
"""
1.两类数据库的区别
	关系型数据库
		拥有固定的表结构 并且表与表之间可以建立代码层面的关系	
	非关系型数据库
		没有固定的表结构 数据存储采用的是K:V键值对的形式
2.这么多数据库如何学习
	两大类数据库操作逻辑基本一致
		每一类学习一个基本就可以掌握所有
			关系型学MySQL
			非关系型学redis、mongodb
"""

SQL与NoSQL的由来

数据库的服务端为了能够兼容不同类型的客户端实现数据交互
所以规定了统一的交互方式
	关系型数据库>>>:SQL语句
     非关系型数据库>>>:NoSQL语句
# NoSQL有时候也表示 非关系型数据库

重要概念介绍

库   →	 文件夹

表   →	 文件夹里面的文件

记录  →	 文件夹里面的文件里面的一行行内容

基本SQL语句

"""SQL语句的结束必须使用分号"""
# 1.如何查看所有的数据库名称
	show databases;  '''会有一个临时产生在内存的库:in...sc'''
# 2.如何查看所有的表名称
	use 库名;  '''切换库(类似于双击了文件夹)'''
    show tables;
# 3.如何查看所有的记录
	select * from 表名;
    如果内容较多展示补全出现错乱的情况 可以在语句后面加\G

针对库的SQL语句

"""辛辛苦苦一个月 换来的就是一条SQL语句"""
# 增
	create database 数据库名;
# 查
	show databases;  # 查看所有的库名
    show create database 数据库名;  # 定向查看某个库
# 改
	alter database 数据库名 charset='gbk';
# 删
	drop database 数据库名;

针对表的SQL语句

"""
要想操作表必须得先有库
	1.先创建库
		create database db1;
	2.查看当前所在的库名
		select database();
	3.切换库
		use bd1;
"""
# 增
	create table 表名(字段名1 字段类型1,字段2 字段类型2);
    create table 小婊砸(id int, name varchar(32), age int);
    alter table 表名 add(字段名 字段类型);
# 查
	show tables;  # 查看当前库下面所有的表名
    show create table 表名;  # 查看指定的表信息
    describe 表名;  # 查看表的具体信息(常用)  简写 desc 表名;
# 改
	alter table t1 rename ttt;  # 修改表名
    alter table ttt change id nid int;  # 修改字段名和类型
    alter table t1 change id(原字段名) nid(新名) int(直接写新的类型名,因为由字段名定位了)
    alter table ttt modify nid char(4);  # 修改字段类型
# 删
	drop table 表名;

针对记录SQL语句

"""
肯定得先确定库和表
"""
# 增
	insert into 表名 values(数据,数据,数据);  '''单条数据'''
    insert into 表名 values(),(),();  '''多条数据'''
# 查
	select * from 表名;  '''查询表中所有的数据'''
# 改
	update 表名 set 字段名='新数据' where 筛选条件;
# 删
	delete from 表名 where 筛选条件;

字符编码问题

# 查看MySQL内部默认的编码情况
	\s
'''MySQL 5.6版本默认的内部编码是不统一的,会造成乱码问题''' 




"""MySQL默认的配置文件>>>:mydefault.ini"""
1.拷贝默认的配置文件并且重新命名为my.ini
2.拷贝固定的配置信息
	[mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    user=root
    password=123
3.重启MySQL服务端
posted @ 2022-02-28 20:09  Panda_Xin  阅读(49)  评论(0编辑  收藏  举报