MySQL 快速入门(一)
MySQL快速入门

简介
存储数据的演变过程
- 数据的存储通过我们自己编写来决定,存到文件的样式千差万别
- 软件开发目录规范规定了文件的位置,不同的文件存储相应功能的代码和不同类型的数据
- 通过数据库来存储所有文件内的数据,统一成一个格式的数据,所有人操作数据都来一个地方(都用SQL语句)
'''
不管BS还是CS架构,服务端和客户端都是基于socket通信来收发消息的,后台的编程语言有很多,数据类型可能不一样,那么在存储数据的时候使用数据库,SQL语句就规定了统一操作数据的语言
'''
数据库分类
关系型数据库特点
- 数据之间彼此有关系或者约束
- 存储数据的表现形式通常以表格存储,每个字段还会有存储类型的限制
MySQL、Oracle、db2、access、sql server···
非关系型数据库特点:
- 存储数据通常以K,V键值对形式存储
- 约束不是很大,用于缓存等
redis、mongodb、memcache
概念介绍
类比理解
- 库:文件夹
- 表:文件
- 记录:文件内一行行的数据
- 表头:表格的第一行
- 字段:表格第一行内的值,name、passwd·····
MySQL安装
推荐下载5.6,5.7版本左右的,尽量不要下载最新版本
步骤如下:





下载后解压缩
'''
打开bin文件
1. 服务端:mysqld.exe
2. 客户端:mysql.exe
'''
登录
# 在超级管理员身份下打开cmd命令窗口登录
mysql -uroot -h 127.0.0.1 -P 3306 -p
-u:用户
-h:地址
-P:端口
-p:密码
# 简写
mysql -uroot -p
# 只写mysql
mysql登录游客模式,不是管理员登录,只能体会lowb的功能
MySQL命令初始
show databases; # 展示所有数据库
\c或 ctrl+c(新版本) # 取消执行
exit\ctrl+z(新版本) # 退出
环境变量配置
win命令补充
# 查看进程
tasklist
tasklist |findstr mysqld
# 杀死进程(管理员模式)
taskkill /F /PID PID号
MySQL环境变量配置
步骤
1.配置环境变量,将mysqld所在路径添加到path中
D:\MySQL\mysql-5.6.48-winx64\mysql-5.6.48-winx64\bin
2.将mysql服务端mysqld制作成开机自启动的服务
打开cmd,输入mysqld --install
# 移除mysql服务:mysql --remove
修改配置文件
[mysqld] : mysql服务端,启动mysql服务加载的配置
[mysql] :mysql客户端,启动mysql加载的配置
[client] :其他客户端
统一编码配置,在目录下新建
my.ini文件,写入以下内容
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
# 然后重启服务
# \s查看
配置用户名和密码,登录可以不用输入(可选)
[mysql]
user="root"
password=[密码]

设置新密码
# 下载好的MySQL初始没有密码,可以设置新密码,在cmd中
mysqladmin -uroot -p [oldpwd] password [newpwd]
忘记密码的情况
1. 先关闭mysql服务
# 命令行启动,原理是跳过登录密码验证功能
2. mysqld --skip-grant-tables
3.无密码登录:mysql -uroot -p
4.修改当前用户的密码(mysql文件夹中的user表):update mysql.user set password=password(新密码) where user='root' and host='localhost';
5.将修改数据刷到硬盘:flush privileges;
6.重新启动服务就可以正常校验登录了,登录
基本sql语句
大部分程序的业务逻辑都是增删改查
库的增删改查(文件夹)
# 增加数据库
create database 数据库名;
create database 数据库名 charset ='gbk'; # 设置库的字符集编码
# 查看数据库
show database; # 查所有数据库
show create database 数据库名; # 查单个
# 修改数据库
alter database 数据库名 charset='gbk';
# 删除数据库
drop database [数据库名];
表的增删改查(文件)
操作表,需要指定该表所在的库(文件夹)
# 查看当前所在库的名字
select database();
# 切换库
use 数据库名;
# 增加表
create table 表名(字段1,字段2);
create table t1(id int,name char(4));
# 删除表
drop table [表名];
# 修改表名
alter table 表名 modify 字段 字段类型 ;
alter table t1 modify name char(16);
# 查看表
show tables; # 查看库下所有表
show create table 表名; # 查看单表
desc 表名; # 查看表的详细字段信息
# 在一个数据库操作另外一个数据库内的表,可以不use
数据库名.表名
数据的增删改查(数据)
操作数据,先确定库,在确定表,在操作数据
# 增加数据
insert into 表名 values(value1, value2,···);
insert into t1 values(1,'hammer') # 插入单个
insert into t1 values(1,'hammer'),(2,'ze'); # 插入多个
# 查看数据
select * from 表名; # 查看所有数据
select 字段名 from 表名;
select name from t1; # 获取t1表中的所有name值
# 修改数据
update 表名 set 字段名='值' where 字段条件
update t1 set name='hammer' where id>1; # id大于1的name修改成hammer
# 删除数据
delete from 表名; # 删除表内所有数据
delete from 表名 where 条件;
delete from t1 where id>1; # 将id>1的数据删除
delete from t1 where name='hammer';
存储引擎
日常生活中文件格式有很多种,针对不同文件的格式会有对应不同存储方式和处理机制,针对不同的数据应该有对应的不同处理机制来存储;
- 存储引擎就是不同的处理机制;
MySQL主要存储引擎
InnoDB:MySQL5.5版本之后默认的存储引擎(默认)MyISAM:MySQL5.5版本之前默认的存储引擎,比InnoDB快,但是InnoDB更安全- memory:内存引擎,数据全部存放在内存中(危险,断电数据丢失,但是快)
- blackhole:无论存储什么,都立刻消失(黑洞)
命令
- 查看所有存储引擎:
show engines;
mysql> show engines;
InnoDB :DEFAULT(默认的) Supports transactions(支持事物), row-levellocking(行锁), and foreign keys(外键)
- 指定引擎
create table 表名(类型,字段) engine=[引擎名]
# 验证不同的存储引擎在存储表的时候,异同点
create table t1(id int) engine=innodb;
create table t2(id int) engine=myisam;
create table t3(id int) engine=blackhole;
create table t4(id int) engine=memory;
# 文件区别如下图
# 存数据
insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);
# 重启服务查看
select * from t1;
+------+
| id |
+------+
| 1 |
+------+
select * from t2;
+------+
| id |
+------+
| 1 |
+------+
select * from t3; # 内存中会消失
Empty set (0.00 sec)
select * from t4; # "黑洞"存啥消失啥
Empty set (0.00 sec)

创建表的完整语法
格式:create table 表名 (
字段1 类型(宽度) 约束条件,
字段2 类型(宽度) 约束条件,
字段3 类型(宽度) 约束条件
···
)
- 字段名不能重复
- 宽度和约束条件可以选择,宽度有默认值,约束条件可以有多个
- 字段名和字段类型是必须写的
- 最后一行不能有逗号','
宽度是对数据进行限制
mysql> create table t5(name char);
mysql> desc t5; # 宽度默认为1
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| name | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
insert into t5 values('hammer'); # 插入值
mysql> select *from t5;
+------+
| name |
+------+
| h |
+------+
# 只能插入一个字符,不同版本不同限制,不同效果
# 5.7版本之后默认开启了严格模式,规定多少宽度,就插入多少数据,超出报错
约束条件
desc查看表结构,查看是否可以插入空值
mysql> desc t5;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| name | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
* null yes:可以插入控制
【待续,持续更新····】
MySQL 快速入门(一)的更多相关文章
- MySql基础笔记(一)Mysql快速入门
Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...
- MySQL 快速入门教程
转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...
- MySQL快速入门(二)
目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 gro ...
- SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )
SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...
- Mysql快速入门(看完这篇能够满足80%的日常开发)
这是一篇mysql的学习笔记,整理结合了网上搜索的教程以及自己看的视频教程,看完这篇能够满足80%的日常开发了. 菜鸟教程:https://www.runoob.com/mysql/mysql-tut ...
- 阿里云RDS for MySQL 快速入门——笔记
1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...
- Mysql快速入门(三)
MySQL性能优化之查看执行计划explain 介绍: (1).MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发 ...
- mysql快速入门
一.下载并解压 $ wget http://cdn.mysql.com/Downloads/MySQL-5.5/MySQL-5.5.42-1.el6.x86_64.rpm-bundle.tar 解压后 ...
- MySQL快速入门 基本技能篇
写在之前的话: 之前一直在用MSSERVER,刚用MySQL时有很多的不适应.就此小结一下工作中遇到的问题和场景,文中出现的局限性欢迎指出 MySQL有客户端式(SQLyog),可托拉拽和写代码:或者 ...
随机推荐
- Python_魔法属性和方法
魔法属性 __doc__:表示类或方法的描述信息 __moudle__:表示当前操作对象的模块,当前模块时,显示__main__ __class__:表示当前操作对象的类型 __name__:表示类或 ...
- Mysql实训任务书
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6635189537079296526/ 什么是数据库:数据库(Database)是按照数据结构来组织.存储和管理数据 ...
- Maven+ajax+SSM实现编辑修改
转载自:https://www.cnblogs.com/kebibuluan/p/9017754.html 3.尚硅谷_SSM高级整合_使用ajax操作实现修改员工的功能 当我们点击编辑案例的时候,我 ...
- less与sass的区别
在介绍less和sass的区别之前,我们先来了解一下他们的定义: 一.Less.Sass/Scss是什么? 1.Less: 是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量.继承.运算.函数 ...
- iOS二进制方案真实落地经验(30分钟降低到10分钟以内)
iOS二进制方案真实落地经验(30分钟降低到10分钟以内) 我们做iOS二进制化断断续续尝试了一年多了,来来回回换了三个架构师去尝试落地,今日完全落地,在此做个总结 背景 工程基于cocoapod的组 ...
- Spring学习:简单实现一个依赖注入和循环依赖的解决
依赖注入 什么是依赖注入 使用一个会创建和查找依赖对象的容器,让它负责供给对象. 当a对象需要b对象时,不再是使用new创建,而是从容器中获取,对象与对象之间是松散耦合的关系,有利于功能复用. 依赖: ...
- unittest测试框架
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...
- 《剑指offer》面试题56 - II. 数组中数字出现的次数 II
问题描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例 1: 输入:nums = [3,4,3,3] 输出:4 示例 2: 输入:nums ...
- Google Java 风格指南(Google Java Style Guide)
官方地址 google.github.io 本文档作为 Google 的 Java 编程语言源代码编码标准的完整定义.当且仅当它遵守此处的规则时,Java 源文件才被描述为 Google 风格. 前言 ...
- 实习之bii--总体感受体验
在bii实习了一个暑假,感受收获都不少,记录一下. 首先当时面试时其实说的比较多的是sdn,结果来了以后主要在搞DNS,介绍一下所做的工作为何吧.bii名为北京下一代互联网工程中心,由于IPV6的逐渐 ...