首页 > 数据库 >Mysql基础

Mysql基础

时间:2022-11-22 17:33:23浏览次数:34  
标签:set jia 数据库 Mysql 基础 rows sec mysql

Mysql基础

一、存取数据的演变史

1.文本文件
   文件路径不固定,格式不统一
2.软件开发目录规范
   数据保存在db目录下(路径偏向统一),数据格式还没有得到统一(文本,json格式,对象)
3.数据库服务
   统一了路径,统一操作方式
    降低学习成本,提高开发效率

二、数据库软件应用史

1.单击游戏
  数据存储在计算机的本地,无法共享
2.网络游戏
  数据存储在网络中,可以共享(数据库服务)
# 远程数据库服务
# 数据库集群:
    1.数据安全性问题
    2.服务器负载问题
解决:让多台服务器运行相同的数据库服务

三、数据库的本质

没有特殊说明的情况下,将数据库是指数据库软件
我们称数据库软件是一款cs架构的应用程序
'''意味着所有的程序员其实都有资格编写一款数据库软件,市面上已经有很多的数据库软件'''
1.站在底层原理的角度
  数据库是指操作数据的进程(一堆代码)
2.站在实际应用的角度
  数据库指的是可视化操作界面(一些软件)

四、数据库的分类

1.关系型数据库

特征1:数据的组织方式有明确的表结构,关系型数据库存取数据的方式可以看成表格
特征2:表与表之间可以建立数据库层面的关系
常见的关系型数据库软件:
MySQL,PostgreSQL,MariaDB,Oracle,sqlite,db2,sql,server
详解:
1.MySQL:开源免费,使用最广,性价比高,数据库学习必备
2.Oracle:收费,成本较高但是安全性较高,用于银行及只要机关
3.ostgreSQL:开源免费,支持二次开发,兼容性极高
4.MariaDB:开源免费
5.sqlite:小型数据库,只要用于本地测试

2.非关系型数据库

特征1:数据的组织方式没有固定明确的表结构,是以k:v键值对的形式组织的
     {'username':'kevin','pwd':123}
特征2:数据之间无法建立数据库层面的关系
常见的非关系型数据库软件:
redis,mongoDB,memcache
详解:
1.redis:目前最火的,使用频率最高的非关系型数据库(缓存数据库)
2.mongoDB:文档型数据库 最像关系型数据库的非关系型数据库(主要用于爬虫以及大数据领域)
3.memcache:已经被redis淘汰了

五、MySQL简介

1.MySQL版本问题
    5.6X:前几年使用频率最高的版本
    5.7x:最近尝试迁移的版本(频率+)
    8.0x:最新版,功能很强大,但是线上环境(上线产品)几乎不用,稳定型不高(本地自己用非常好用)。
'''虽然版本有区别,但是操作几乎没有区别,主要提现在底层运作'''

2.下载与安装
    2.1访问官网:https://www.mysql.com/
    2.2点击DOWNLOADS
    2.3点击community server
    2.4点击archives
    2.5选择版本几点download

3.解压安装
	上述下载的压缩包里含有服务端和客户端,支持本地操作。

4.主要文件介绍
    bin文件夹:
        mysqld.exe服务端
        mysql.exe客户端
    data文件夹:存储数据
    my-default.ini:默认配置文件

六、Mysql基本安装

cmd建议你使用管理员身份打开

1.切换到mysql的bin目录下先启动服务端
	在终端敲mysqld
2.保持窗口不关闭 重新打开一个新的cmd窗口 输入mysql -u用户名 -p密码
3.切换到mysql的bin目录下启动客户端
1.先把bin目录添加到环境变量 
     复制bin的路径,到高级系统设置中添加环境变量
	清空之前打开的cmd窗口 一定要把之前用cmd启动的服务端关闭(ctrl+c)
2.将mysql添加到系统服务中
	1.如何查看系统服务
    	鼠标右键任务栏选择服务
     	cmd输入services.msc回车	
 	2.以管理员身份打开cmd窗口
    	mysqld --install
3.首次添加不会自动启动 需要人为操作一下
	1.鼠标右键点击启动
 	2.命令行启动
    	net start mysql
"""
如果想卸载重新按照
	1.先关闭服务端
		net stop mysql	
	2.移除系统服务
		mysqld --remove
"""
1.修改密码
	方式1:mysqladmin 
		#    mysqladmin -u用户名 -p原密码 password 新密码
	方式2:直接修改存储用户数据的表
	方式3:冷门操作 有些版本可能还不支持 
       修改当前登录用户的密码  ----->set password=password('新密码')     
2.忘记密码
	方式1:卸载重新装
  	方式2:把data目录删除 拷贝同桌的目录
 	方式3:小把戏操作
		1.关闭正常的服务端
   		2.以跳过授权表的方式重启服务端(不校验密码)
    	3.以管理员身份进入然后修改mysql.user表数据即可
   			net stop mysql
          mysqld --skip-grant-table
          mysql -uroot -p
          update mysql.user set password=password('123') where Host='localhost' and User='root';
  		4.关闭服务端 然后以正常方式启动即可

七、SQL与NoSQL

数据库服务端是可以服务多种类型的客户端
客户端可以是自己开发的 也可以是python代码编写 也可以是java代码编写
SQL:操作关系型数据库的语言
NoSQL:操作非关系型数据库的语言
# SQL有时候也指代关系型数据库,NoSQL有时候也指代非关系型数据库

八、数据库重要概念

'''以下概念仅仅视为了小白更快的理解,并不是完全准确'''
库      ------->>>     文件夹
表      ------->>>     文件夹里的文件
记录    ------->>>     文件里一行一行的数据
注:
1.sql语句的结束符: ->  ;
2.取消sql语句的执行:  ->  \c

九、基本的SQL语句

1.基于库的增删改查

1.增
# create database 库名;
mysql> create database jia;
Query OK, 1 row affected (0.00 sec)
2.查
# show create database 库名  或者  show databases 
mysql> show create database jia;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| jia      | CREATE DATABASE `jia` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
3.改
# alter database 库名 charset='编码';
mysql> alter database jia charset='utf8';
Query OK, 1 row affected (0.01 sec)

mysql> show create database jia;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| jia      | CREATE DATABASE `jia` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)
4.删
# drop database 库名
mysql> drop database jia;
Query OK, 0 rows affected (0.04 sec)

2.基于表的增删改查

1.增
# create table 表名(字段1 字段类型,字段2 字段类型,字段3 字段类型);
# 操作表之前先确定库,再操作表
mysql> create database jia;
Query OK, 1 row affected (0.00 sec)

mysql> use jia;
Database changed
mysql> create table student(id int,name varchar(12),age int);
Query OK, 0 rows affected (0.02 sec)
mysql> create table student(id int,name varchar(12),age int);
Query OK, 0 rows affected (0.02 sec)
2.查
# show tables;
# show create table 表名;
# describe 表名 / desc 表名
mysql> show tables;
+---------------+
| Tables_in_jia |
+---------------+
| student       |
| teacher       |
+---------------+
2 rows in set (0.00 sec)

mysql> describe student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(12) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> desc teacher;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
3.改
# alter table 旧表名 rename 新表名;
mysql> alter table teacher rename teach;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+---------------+
| Tables_in_jia |
+---------------+
| student       |
| teach         |
+---------------+
2 rows in set (0.00 sec)
4.删
# drop table 表名
mysql> drop table teach;
Query OK, 0 rows affected (0.04 sec)

3.基于记录的增删改查

1.增
# insert into 表名 values(数据1,数据2);
mysql> insert into student values(1,'jason',18),(2,'jia',20);
Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0
2.查
# select * from 表名
mysql> select * from student;
+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | jason |   18 |
|    2 | jia   |   20 |
+------+-------+------+
2 rows in set (0.00 sec)
3.改
# update 表名 set 字段名 = '新数据' where 条件;
mysql> update student set name = 'xin' where id = 2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | jason |   18 |
|    2 | xin   |   20 |
+------+-------+------+
2 rows in set (0.00 sec)
4.删
# delete from 表名  /  delete from 表名 where 筛选条件
mysql> delete from student where id = 1;
Query OK, 1 row affected (0.01 sec)

mysql> select * from student;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    2 | xin  |   20 |
+------+------+------+
1 row in set (0.00 sec)

标签:set,jia,数据库,Mysql,基础,rows,sec,mysql
From: https://www.cnblogs.com/zx0524/p/16915829.html

相关文章

  • MySQL
    一、数据库概述数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库是一个按数据......
  • 干货|无源元件之——电阻器基础知识(超全)
    电阻、电容、电感是常见且重要的无源器件,本系列文章将分为三篇分别介绍这三种元件的详细的基础知识。本文的电阻介绍将会从电阻的型号命名、分类、主要特性参数、电阻器阻值......
  • MySQL 1
    今日内容详细存储数据的演变史1.文本文件 文件路径不固定:C:\aaa.txtD:\bbb.txtE:\ccc.txt 数据格式不统一:qian|123 qian%123qian1232.软件开发目录规范 规定了......
  • mysql简介与安装
    存取数据演变史1.文本文件​ 文件路径不固定数据的格式也不统一2.软件开发目录​ 规定了数据应该保存在db目录下,路径统一了但是数据格式还是没有得到统一。​ 对......
  • MySQL数据库
    MySQL数据库数据库介绍存取数据的演变史1.原始阶段:文本文件存在文件路径不固定,数据格式不统一的问题2.软件开发目录规范规定了数据应该保存在db目录下路......
  • MySQL——MySQL基本SQL语句及MySQL数据类型
    MySQL——MySQL基本SQL语句一、注意事项1、sql语句必须以分号结尾2、sql语句编写错误之后不必担心、可以直接执行报错即可,或者后面加上\c取消执行即可二、库的相关操......
  • mysql length与char_length用法区别
    本文章来给大家详细介绍mysqllength与char_length用法区别,有需要了解的朋友可仔细参考参考。length:是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符c......
  • MySQL软件安装教程(windows系统)
    目录一、访问官网下载安装包1、访问官网2、点击DOWNLOADS3、下拉页面,点击MySQLCommunity(GPL)Downloads»4、接着点击MySQLCommunityServer5、在这个界面我们就可以......
  • mysql查询结果拼接树结构(树节点的移动)
    mysql查询结果拼接树结构(树节点的移动)思路:单表内查询全部数据,在业务层内递归拼接树结构。前端用的是element的Tree树形控件:树结构实体:@Data@AllArgsConstructor@......
  • [ NPM 01 ] js包管理工具 基础
    NodePackageManagernpm-v:showtheversion,ornpm--versionInthenodejsorjavaScriptworld,package.jsonisthemostimportantfile,itmanifestfil......