1.Mysql初识

三高角度引入

三高:高并发,高可用,高性能.

why:

  1.1数据文件和程序不应该放在同一台机器上!一旦机器挂了,数据和程序全都挂了不能对外提供服务,高可用性差.

  1.2纵向扩展有极限,横向扩展可以解决瓶颈问题.

  1.3虽然可以使用代码来对文件里面的数据进行操作,但是代码操作文件里面的数据是很麻烦,例如文件中的数据是连续的没有规则的.

  1.4如果使用文件,那么每个机器都只能操作自己机器的文件,别的机器访问造成数据不一致.

  1.5开发者只要开发基于数据的程序,就要自己写socket代码,来连接client和server端,然后传输数据.

what:

普通的文件存放数据是连续无规则的,如何将数据有规则的存放到文件中,然后设计一种规则可以提取所需要的数据,这样就会更快捷,这个规则叫---------SQL。

SQL:结构化查询语言,需要用于存取数据以及查询、更新和管理关系型数据库。

每个机器放一份数据文件造成数据不一致问题,解决数据不一致问题(提供锁保证数据一致),不同机器数据共享,涉及网络通信socket编程。

DBMS数据库管理系统:已经写好的socket服务端代码,不用开发者自己写了,支持高并发,否则每次开发都需要把数据库写一遍,管理方式写一遍,socket写一遍。

开发者可以不用关注数据的管理操作,你可以抽身出来把精力放到你的逻辑代码中,直接对数据增删改查即可。

Mysql是一个C/S架构的软件,帮我们管理数据库,解决了上述的效率问题,并发问题,稳定性问题,数据一致性问题.高性能

架构方面,mysql主从复制,多节点部署,即使挂了一台,开一个节点,立马同步其他节点的数据就可以对外提供服务,完全不影响使用,保证高可用

Mysql是一个数据库管理软件,帮助我们管理数据库,具体如何操作数据的复杂的操作它来完成,不用你从头开发一个高性能高并发高可用的数据管理程序,你只需要通过sql语句来告诉他你想干什么,它就会十分高效的完成.

当然Mysql不是唯一的DBMS,ORACEL,SQLSERVER等都是不错的DBMS.便宜不要钱,性能还好,尽管被Oracle收购了,还有mariaDB来解决Mysql闭源的风险.

linux上安装mysql的时候会发现,都用mariaDB来替代了mysql,只是换了个名字,其他操作没有变化.

你不用开发数据库了,但是用了别人的软件,就要熟悉别人的规则,才可以为你所用。

二:概念梳理

1数据:用来描述事物的特征 zhansan 18 60kg sex等,在python中是变量在内存中,在数据库中就是存放在硬盘文件中,断电不消失。

2记录:描述一个事物的一系列典型的特征(数据)。

3表:文件夹里面的文件.用来存放数据,列叫字段,行叫记录,一行记录是没有意义的,只是特定的数据,字段就是标识数据代表着什么意义。

如 name age weight female

4数据库:文件夹,用户表,部门表,工资表,不可能放在一张表,把他们组织到一起就需要数据库,本质就是文件夹。

Mysql是高效管理数据存储,数据查询的一个系统软件.

5数据库服务器:安装DBMS的计算机,性能远高于普通电脑

6表结构:desc tablename查看表结构,有字段名,字段类型,约束等

数据库分类:

关系型数据库:有表结构

非关系型数据库:没有表结构,就是key-value对的形式存储数据。

三:安装Mysql

windows安装就是一路点点点.

启动mysql:net start mysql  相当于mysqld.exe,只不过是把它做成了服务而已。

设置密码:mysqladmin -uroot -p123  password "新密码"

-p后跟原始密码,米有就不写:mysqladmin -uroot -p password "123"

密码存放在data文件夹里面的mysql文件夹的user开头的文件中

破解密码:

1.关掉服务:net stop mysql

2.跳过授权表启动mysql:mysqld --skip-grant-tables

3:mysql启动客户端:mysql -uroot -p不用密码就是root,想干嘛就干嘛

4:updata mysql.user set password=password("123") where user="root" and host="localhost";#使用函数为123加密,对本地root用户

5:flush privileeges;刷新权限。

6:net start mysql即可使用新的密码。

linux下破解密码一样,

只不过mysqld --skip-grant-tables,换成mysqld-safe --skip-grant-tables

字符编码:

进入mysql后\s可以看到server的信息,可以看到字符编码,可能为gbk,这可以在配置文件里面配置,让mysql启动的时候就是utf8编码

linux下安装,yum install -y mysql-server mysql,现在都换成了mariadb

centos7安装mariadbhttps://www.cnblogs.com/gyxpy/p/12995164.html

四:配置文件

windows下my.ini先备份一份

linux /etc/my.cnf也是先备份一份, copy /etc/my.cnf /etc/my.cnf.bak

然后进去修改,基本不用改,

.ini文件里面[]括号内部表示命令,执行此命令默认加上的配置参数

例如以前登录的时候都是mysql -uroot -p123

在my.ini文件里面添加

[mysql]

user="root"

password="123"

那么以后登录直接mysql即可,后面的信息直接从my.ini配置文件里面加载了。

因为mysql是客户端的命令,直接退出客户端,重新连接一下即可。

但是如果更改了字符编码,就必须重启一下服务端才可以。

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-5.6.39-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-5.6.39-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

[mysql]是客户端的配置

[mysqld]是服务端配置

mysqldump命令备份数据库

五:基础操作

show databases;查看所有数据库

use databasename;选择某数据库,相当于打开文件夹

show tables;显示所有的数据表

desc tablename;查看表结构

select databases();查看当前在哪个数据库下

#1. 操作文件夹
增:create database db1 charset utf8;
查:show databases;
改:alter database db1 charset latin1;
删除: drop database db1; #2. 操作文件
先切换到文件夹下:use db1
增:create table t1(id int,name char);
查:show tables
改:alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
删:drop table t1; #3. 操作文件中的内容/记录
增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
查:select * from t1;
改:update t1 set name='sb' where id=2;
删:delete from t1 where id=1; 清空表:
delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, auto_increment 表示:自增
primary key 表示:约束(不能重复且不能为空);加速查找

sql基础

一 :Mysql基础的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. 基于vue-cli3.11.0创建创建vue项目

    如果电脑已安装vue-cli2.9.6,需要先卸载,然后重装vue-cli3.11.0操作如下 等待几分钟,卸载完成,输入npm install -g @vue/cli 等待安装完成,输入vue -V ...

  2. vue 引入 fontawesome 报错 Could not find one or more icon(s) 解决

    在 vue 项目中引用 fontawesome , 按照官方说明如下步骤操作 1. 终端中执行 $ npm i --save @fortawesome/fontawesome-svg-core $ n ...

  3. Shell之变量

    目录 Shell之变量 参考 变量命名规则 变量语法规范 四种变量类型 系统变量 特殊变量 变量的使用 变量内容的删除和替换 Shell之变量

  4. 我的mongoDb之旅(二)

    题序:上一回,咱们简单的操作了一些增减改查的操作,这一次,再来进行一场奇妙之旅 一.案例讲解 (1).字段有值与没值时的单条数据 第一条数据title这个字段(mysql用久了,习惯这么叫了)是没有数 ...

  5. SpringBoot2+Netty打造通俗简版RPC通信框架(升级版)

    背景         上篇文章我简单的介绍了自己打造的通俗简版RPC通信框架,这篇是对简版的增强~         如果大家对此项目还感兴趣的话,可到码云上瞄瞄:Netty-RPC         上 ...

  6. php导出excel乱码怎么处理

    使用PHP导出excel文档,有时候莫名其妙就会出现导出的数据乱码,现在推荐一个万能修补大法 话不多说,直接上代码 核心就是在处理完数据之后,输出excel文件之前 添加 ob_end_clean() ...

  7. 为什么用Markdown,而不用Word?

    写博客.写文章比较多的人都知道 Markdown 是什么. Markdown 是一种轻量级标记语言,创始人为 John Gruber.它允许人们「使用易读易写的纯文本格式编写文档,然后转换成有效的 X ...

  8. 阿里云VS腾讯云 谁才是中国未来的云计算之王?

    阿里云早在 2009 年就已经开始布局云计算领域,具有先发优势.据统计,40% 的中国 500 强企业.近一半中国上市公司.80% 中国科技类公司是阿里云的客户.而腾讯云基于腾讯自身在游戏.视频.社交 ...

  9. 设计模式----行为型模式之命令模式(Command Pattern)

    下面来自head first设计模式的命令模式一章节. 定义 将"请求"封装成对象,以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持可撤销的操作. 类图 注: 1. ...

  10. 阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

    导读:新版本主要有三大变化:同步了 OpenJDK 上游社区 jdk8u222-ga 的最新更新:带来了正式的 feature:G1ElasticHeap:发布了用户期待的 Windows 实验版本 ...