MySQL快速入门(一)

博客 分享
0 248
张三
张三 2022-02-16 22:55:26
悬赏:0 积分 收藏

MySQL 快速入门(一)

MySQL 快速入门(一) MySQL快速入门,看这一篇就够了,库、表、数据相关操作都在这里??

目录
  • MySQL快速入门
  • 简介
    • 存储数据的演变过程
    • 数据库分类
    • 概念介绍
  • MySQL安装
  • MySQL命令初始
  • 环境变量配置
    • MySQL环境变量配置
    • 修改配置文件
    • 设置新密码
    • 忘记密码的情况
  • 基本sql语句
    • 库的增删改查(文件夹)
    • 表的增删改查(文件)
    • 数据的增删改查(数据)
  • 存储引擎
    • MySQL主要存储引擎
    • 命令
  • 创建表的完整语法

MySQL快速入门

image

简介

存储数据的演变过程

  • 数据的存储通过我们自己编写来决定,存到文件的样式千差万别
  • 软件开发目录规范规定了文件的位置,不同的文件存储相应功能的代码和不同类型的数据
  • 通过数据库来存储所有文件内的数据,统一成一个格式的数据,所有人操作数据都来一个地方(都用SQL语句)
'''不管BS还是CS架构,服务端和客户端都是基于socket通信来收发消息的,后台的编程语言有很多,数据类型可能不一样,那么在存储数据的时候使用数据库,SQL语句就规定了统一操作数据的语言'''

数据库分类

  • 关系型数据库特点

    • 数据之间彼此有关系或者约束
    • 存储数据的表现形式通常以表格存储,每个字段还会有存储类型的限制
    MySQL、Oracle、db2、access、sql server···
  • 非关系型数据库特点:

    • 存储数据通常以K,V键值对形式存储
    • 约束不是很大,用于缓存等
    redis、mongodb、memcache

概念介绍

类比理解

  • 库:文件夹
  • 表:文件
  • 记录:文件内一行行的数据
  • 表头:表格的第一行
  • 字段:表格第一行内的值,name、passwd·····

MySQL安装

推荐下载5.6,5.7版本左右的,尽量不要下载最新版本

  • MySQL官网
  • MySQL下载地址

步骤如下:

image

image

image

image

image

下载后解压缩

'''打开bin文件1. 服务端:mysqld.exe2. 客户端:mysql.exe'''

登录

# 在超级管理员身份下打开cmd命令窗口登录mysql -uroot -h 127.0.0.1 -P 3306 -p-u:用户-h:地址-P:端口-p:密码# 简写mysql -uroot -p# 只写mysqlmysql登录游客模式,不是管理员登录,只能体会lowb的功能

MySQL命令初始

show databases;    # 展示所有数据库\c或 ctrl+c(新版本)        # 取消执行exit\ctrl+z(新版本)        # 退出

环境变量配置

win命令补充

# 查看进程tasklisttasklist |findstr mysqld# 杀死进程(管理员模式)taskkill /F /PID PID号

MySQL环境变量配置

步骤

1.配置环境变量,将mysqld所在路径添加到path中D:\MySQL\mysql-5.6.48-winx64\mysql-5.6.48-winx64\bin2.将mysql服务端mysqld制作成开机自启动的服务打开cmd,输入mysqld --install# 移除mysql服务:mysql --remove

修改配置文件

[mysqld] : mysql服务端,启动mysql服务加载的配置[mysql] :mysql客户端,启动mysql加载的配置[client] :其他客户端

统一编码配置,在目录下新建my.ini文件,写入以下内容

[mysqld]character-set-server=utf8collation-server=utf8_general_ci[client]default-character-set=utf8[mysql]default-character-set=utf8# 然后重启服务# \s查看

配置用户名和密码,登录可以不用输入(可选)

[mysql]user="root"password=[密码]

image

设置新密码

# 下载好的MySQL初始没有密码,可以设置新密码,在cmd中mysqladmin -uroot -p [oldpwd] password [newpwd]

忘记密码的情况

1. 先关闭mysql服务# 命令行启动,原理是跳过登录密码验证功能2. mysqld --skip-grant-tables3.无密码登录:mysql -uroot -p4.修改当前用户的密码(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)

image

创建表的完整语法

格式: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:可以插入控制

【待续,持续更新····】

posted @ 2022-02-16 22:32 HammerZe 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    张三

    张三 (王者 段位)

    821 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员