首页 > 数据库 >初识MySQL

初识MySQL

时间:2022-11-22 19:58:46浏览次数:59  
标签:set 数据库 SQL 初识 sec mysql MySQL 0.00

目录

mysql

数据存取演变史

1.文本文件
	基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。
	如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。
	但是事实上它会存在许多问题:
		·文件路劲不一致 C:\a.txt D:\aaa\b.txt E:\ccc.txt
		·数据格式不一致 jason|123 tony$123 kevin@123
2.软件开发目录规范
	规定了数据文件的大致位置:db文件夹
	针对数据格式还是没有完全统一,比如统一json文件但是内部键值对不同
3.数据库服务
	统一了存取位置,也统一了数据格式(完全统一)

数据库软件应用史

1.单机游戏
	不同计算机上的相同程序,数据无法共享
		数据库服务全部在本地完成
2.网络游戏
	不同计算机的相同程序,数据可以共享
		数据库服务单独在网络上架设
"""数据库服务集群:提升数据的安全性"""

数据库的本质

'数据库' 这三个字在不同的角度下描述的意思是不一样的

1.站在底层原理的角度
	数据库指的是专用于操作数据的进程
		即:运行在内存中的代码
2.站在现实应用的角度
	数据库指的是拥有操作界面的应用程序
		即:用于操作数据进程的快捷界面
我们不做特殊说明的情况下提出的数据库其实是在指数据库软件
	我们也称数据库软件本质是一款cs架构的应用程序
		即:所有的程序员理论上都可以编写>>>:市面上已经有许多数据库软件了

数据库的分类

1.关系型数据库
	·数据的组织方式有明确的表结构
		关系型数据库存取数据的方式可以看作是表格
	·表与表之间可以建立代码层面的关系
		用户表--(有关系)--房屋表
		只要获取到用户表的一条数据,就可以获取到与之相关的其他数据
    '''
    MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、sql、server

    MySQL:开源,使用最为广泛、入门必学
    PostgreSQL:开源,支持二次开发
    MariaDB:开源,与MySQL是同一个人写的,用法极其相似
    Oracle:收费,安全性非常高,主要用于银行各大重要机关
    sqlite:小型数据库,主要用于本地色测试
    '''
2.非关系型数据库
	·数据的组织方式没有明确的表结构,是以K:V键值对的形式组织的
		{'name':'lisa'}
		{'habby':'sing、dance'}
	·数据之间无法直接建立代码层面的关系
    '''
    redis、mongoDB、memcache

    redis:目前最火,使用频率最高,是一个缓存型数据库
    mongoDB:稳定型数据库,最像关系型的非关系型,主要用于爬虫、大数据
    memcache:已经被redis淘汰
    '''

MySQL数据库简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司
MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS
(Relational Database Management System,关系数据库管理系统) 应用软件之一

1.MySQL版本问题
	5.6X:前几年使用频率最高版本
	5.7X:最近尝试迁移的版本问题
	8.0X:最新版,功能很强大,但是线上环境几乎不用(本地自己用非常好用)
    '''虽然版本上有区别,但是操作几乎没有区别,主要体现在底层运作'''
2.下载与安装
	1.访问官网
 	2.点击DOWNLOADS
 	3.点击GPL
 	4.点击community server
 	5.点击archives
	6.点击download
3.解压安装
	上述方式下载的压缩包里含有服务端和客户端 支持本地操作
4.主要文件介绍
	bin文件夹
		mysqld.exe服务端		mysql.exe客户端
 	data文件夹
		存取数据
 	my-default.ini
		默认配置文件

基本使用

1.首先切换到mysql的所在盘
	C:\Users\***>D:
2.查找mysql文件位置
	D:\>cd mysql-5.6.44-winx64\bin
3.输入mysql启动文件
	D:\mysql-5.6.44-winx64\bin>mysqld
4.再开启新的cmd窗口
	作为客户端使用,直接敲mysql回车是游客模式
5.用户密码登录
	mysql -u用户名 -p密码(mysql默认密码为空)
6.使用游客登陆和使用管理员密码登录是有区别的
	管理员用户密码登录:
		mysql> show databases;
		+--------------------+
		| Database           |
		+--------------------+
		| information_schema |
		| mysql              |
		| performance_schema |
		| test               |
		+--------------------+
		4 rows in set (0.00 sec)
	游客登录:
		mysql> show databases;
		+--------------------+
		| Database           |
		+--------------------+
		| information_schema |
		| test               |
		+--------------------+
		2 rows in set (0.00 sec)
7.退出
	exit、quit

系统服务制作

1.如何解决每次都需要切换路径查找文件的缺陷
	添加环境变量(D:\mysql-5.6.44-winx64\bin)
2.将mysql服务端制作成系统服务(随着计算机的开启而启动 关闭而结束)
	·以管理员身份打开cmd窗口
	·执行系统服务命令
		mysqld --install
		Service successfully installed.
	·启动服务端
		1.右键直接点击启动
		2.命令启动
			net start mysql
'''
1.查看系统服务的命令
	services.msc
2.关闭mysql服务端
	net stop mysql
3.移除系统服务
	1.先确保服务已经关闭
	2.执行移除命令
		mysqld --remove
'''

密码相关操作

1.修改密码
	mysqladmin命令
		通用方式:  # 直接在cmd中写
			mysqladmin -u用户名 -p原密码 password 新密码
			'Warning: Using a password on the command line interface can be insecure.'
      提示这个不是报错,而是提醒你=我们此时这么更改密码是不安全的,密码暴露在了外面
				第一次修改:mysqladmin -uroot -p password 123,首次修改因为mysql默认密码为空所以-p后面什么都没有
				第二次修改:mysqladmin -uroot -p123 password 321
		偏门方式(有些版本无法使用):  需要先登录,更改的是当前登录的这个账号的密码
			set password=PASSWORD('新密码');引号必须要加
2.忘记密码
	直接重装\拷贝对应文件(user.frm、user.MYD、user.MYI)
	了解知识:
		先关闭服务端 然后以不需要校验用户身份的方式启动 再修改 最后再安装正常方式启动
			1.net stop mysql
			2.mysqld --skip-grant-tables(跳过授权表,不校验用户的密码,可以直接进去)
			3.mysql -uroot -p
			4.update mysql.user set password=password(123) where Host='localhost' and User='root';
			5.net stop mysql
			6.net start mysql

SQL和NoSQL

数据库的服务端支持各种语言充当客户端
MySQL服务端仅仅是用来管理数据的,没有其他操作
    eg:以MySQL服务端为例
          MySQL客户端、python代码编写的客户端、java代码编写的客户端
        为了能够兼容所有类型的客户端 有两种策略
            1.服务端兼容
                不合理 消耗数据库服务端资源!!!
            2.制定统一标准
                 SQL语句、NoSQL语句
SQL与NoSQL
    SQL语句的意思是操作关系型数据库的语法
    NoSQL语句的意思操作非关系型数据库的语法
ps:SQL有时候也用来表示关系型数据库 NoSQL也用来表示非关系型数据库

基本SQL语句

1.SQL语句结束符是分号
	;
2.取消SQL语句的执行
	\c
3.将查询结果进行按列打印,可以使每个字段打印到单独的行
	\G
4.基本常用语句
    show databases;  查看所有的数据库
    show tables;  查看所有的表
    select * from mysql.user;  查看user表里面所有的记录

\G使用前,显示效果很差

img

\G使用后即将查到的结构旋转90度变成纵向

img

1.针对库的基本SQL语句

1.增
	create database 库名;
2.查
	show databases;
	show create database 库名;
3.改
	alter database 库名 charset='gbk';
4.删
	drop database 库名;
 

-----------------------------------客户端sql语句执行-------------------------------
mysql> create database school;
Query OK, 1 row affected (0.00 sec)

mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> show create database school;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| school   | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> alter darabase school charset='gbk';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'darabase school charset='gbk'' at line 1
    
'根据错误提示检查发现单词写错了,要学会看错误修改错误'

mysql> alter database school charset='gbk';
Query OK, 1 row affected (0.00 sec)

mysql> drop database school;
Query OK, 0 rows affected (0.03 sec)

2.针对表的基本SQL语句

"""
查看当前所在的库名
	select database();
		如果没有切换指定的库 那么默认是NULL
	use 库名;
"""
1.增
	create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型);
2.查
	show tables;
	show create table 表名;
 	describe 表名;  
 	desc 表名;
3.改
	alter table 旧表名 rename 新表名;  # 改表名
4.删
	drop table 表名;
    
-----------------------------------客户端sql语句执行-------------------------------   
'创建数据库'
mysql> create database school;
Query OK, 1 row affected (0.00 sec)
'使用数据库'
mysql> use school;
Database changed
'在当前数据库中创建表'
mysql> create table student(
    -> id int,
    -> name varchar(20),
    -> age int,
    -> habby varchar(50));
Query OK, 0 rows affected (0.05 sec)
'查看表里的信息'
mysql> select * from student;
Empty set (0.02 sec)
'展示当前数据库中的表'
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)
'展示表的数据,会告诉这个表是怎么写的,带有编码和引擎'
mysql> show create table student;
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                     |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `habby` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)
'对表的介绍'
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| habby | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.04 sec)
'修改表的名字'
mysql> alter table student rename students;
Query OK, 0 rows affected (0.03 sec)
'删除表'
mysql> drop table students;
Query OK, 0 rows affected (0.01 sec)

3.针对记录的基本SQL语句

"""
既然想操作记录 那么肯定的先有库和表
	辛辛苦苦一个月 换来的就是一条SQL语句 修改你的账户余额
"""
1.增
	insert into 表名 values(数据,数据);
	insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
2.查
	select * from 表名;  # *表示查看所有字段
 	select 字段1,字段2 from 表名;
	ps:如果表中字段较多出现了错乱 可以结尾写\G
3.改
	update 表名 set 字段名=新数据 where 筛选条件;
4.删
	delete from 表名;  # 删除表中所有的数据
  	delete from 表名 where 筛选条件  # 按照条件删除数据
    
-----------------------------------客户端sql语句执行-------------------------------   
'添加数据'
mysql> insert into student values(1,'aa',18,'eat');
Query OK, 1 row affected (0.00 sec)
'查看数据'
mysql> select * from student;
+------+------+------+-------+
| id   | name | age  | habby |
+------+------+------+-------+
|    1 | aa   |   18 | eat   |
+------+------+------+-------+
1 row in set (0.00 sec)
'指定要查询的数据'
mysql> select id, name from student;
+------+------+
| id   | name |
+------+------+
|    1 | aa   |
|    2 | bb   |
|    3 | dd   |
+------+------+
3 rows in set (0.00 sec)
'添加多条数据'
mysql> insert into student values(2,'bb',19,'sing'),(3,'cc',20,'dance');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> select * from student;
+------+------+------+-------+
| id   | name | age  | habby |
+------+------+------+-------+
|    1 | aa   |   18 | eat   |
|    2 | bb   |   19 | sing  |
|    3 | cc   |   20 | dance |
+------+------+------+-------+
3 rows in set (0.00 sec)
'修改表中的数据'
mysql> update student set name='dd' where id=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+------+------+------+-------+
| id   | name | age  | habby |
+------+------+------+-------+
|    1 | aa   |   18 | eat   |
|    2 | bb   |   19 | sing  |
|    3 | dd   |   20 | dance |
+------+------+------+-------+
3 rows in set (0.00 sec)
'删除数据'
mysql> delete from student where id=3;
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;
+------+------+------+-------+
| id   | name | age  | habby |
+------+------+------+-------+
|    1 | aa   |   18 | eat   |
|    2 | bb   |   19 | sing  |
+------+------+------+-------+
2 rows in set (0.00 sec)

标签:set,数据库,SQL,初识,sec,mysql,MySQL,0.00
From: https://www.cnblogs.com/zjl248/p/16916240.html

相关文章

  • MYSQL
    目录存取数据的演变史数据库软件应用史数据库的本质数据库的分类关系型数据库特征常见关系型数据库非关系型数据库特征常见非关系型数据库mysql简介mysql下载启动mysql系统......
  • MySQL
    目录MySQLMySQL简介MySQL基本使用系统服务的制作密码相关操作SQL与noSQL常见基本SQL造句MySQL什么是MySQL?​ MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开......
  • MySQL
    今日内容存取数据的演变史1.文本文件​ 文件路径不固定:C:\aaa.txtD:\bbb.txtE:\ccc.txt​ 数据格式不统一:jason|123 jason$123 jason1232.软件开发目录规范......
  • MySQL简介、下载、密码修改及基本使用
    目录存取数据的演变史数据库软件应用史数据库的本质数据库的分类MySQL简介MySQL基本使用系统服务的制作密码相关操作SQL与NoSQL数据库重要概念基本SQL语句存取数据的演变......
  • Mysql 基础
    一.数据库概述1.1数据描述事物的符号记录包括数字,文字,图像,图像,声音,档案记录等以"记录"形式按统一的格式进行存储1.2表将不同的记录组织在一起用来存储具体数据......
  • 数据库与MySQL
    目录数据库一.初识数据库1.存取数据的演变史1).文本文件2.软件开发目录规范3.数据库服务(重点)2.数据库软件应用史3.数据库的本质4.数据库的分类1).关系型数据库2).非关系......
  • MySQL数据库
    ***>##MySQL数据存取方式的演变1.文本文件文件路径不固定:C:\aaa.txtD:\bbb.txtE:\ccc.txt数据格式不统一:jason|123 jason$123 jason1232.软件开发目录规范......
  • [工具问题] docker.mysql8 Public Key Retrieval is not allowed
    TochangethesettingsonDbeaver:Rightclickyourconnection,choose"EditConnection"Onthe"Connectionsettings"screen(mainscreen)clickon"EditD......
  • MySQL简介与MySQL基本语句
    目录一、存取数据的演变史1.文本文件存取数据2.软件开发目录规范>>>被框架替代3.数据库服务4.数据库软件的应用史二、数据库1.数据库的本质(1)从底层原理来看(2)从实际应用上来......
  • Mysql5.6.44版本安装及基本配置
    内容概要存储数据的演变史数据库软件应用史MySQL简介MySQL下载及安装MySQL配置存储数据的演变史1.文本文件: 文件路径不固定,并且数据格式不统一2.软件开发目录规......