MySQL入门

MySQL基础

      • 1. 下载MySQL
        • 1.1 下载补丁
        • 1.2 下载MySQL
        • 1.3 确定下载路径
        • 1.4 创建配置文件
        • 1.5 初始化MySQL
      • 2. 启动MySQL
        • 2.1临时启动
        • 2.2 制作成Windows服务
        • 2.3 连接测试
        • 2.4 配置环境变量
      • 3. MySQL指令
        • 3.1 连接
        • 3.2 设置密码
        • 3.3 查看已有的的文件夹(数据库)
        • 3.4 退出(关闭连接)
      • 4. 忘记密码怎么办?
      • 5. MySQL指令
        • 5.1 数据库管理(文件夹)
        • 5.2 数据表的管理(文件)
        • 5.3 常用数据类型
        • 5.4 数据行操作
          • 5.4.1 新增数据
          • 5.4.2 删除数据
          • 5.4.3 修改数据
          • 5.4.4 查询数据

1. 下载MySQL

1.1 下载补丁

先下载Windows补丁dxwebsetup.exevcredist_x64.exe (Google搜直接官网下载即可)

vcredist_x64.exe

dxwebsetup.exe

1.2 下载MySQL

下载MySQL

1.3 确定下载路径

下载好的MySQL解压缩到一个你知道的文件夹下

我的路径:D:\Program Files\Mysql\mysql-5.7.31-winx64

1.4 创建配置文件

进入该文件下,添加配置文件my.ini

编辑该文件

[mysqld]

port=3306

basedir=D:\\Program Files\Mysql\\mysql-5.7.31-winx64

datadir=D:\Program Files\Mysql\mysql-5.7.31-winx64\\data

注意:

  1. 第一个文件路径时你的MySQL安装所在的路径,第二个路径是你的MySQL数据库的数据存放的位置
  2. 要加多加一个\转义字符把\给转义

1.5 初始化MySQL

以管理员权限打开终端, 以下终端操作都要在管理员权限下进行

输入初始化命令

"MySQL路径\bin\mysqld.exe"  --initialize-insecure

执行后文件目录会新增data文件夹

2. 启动MySQL

2.1临时启动

"MySQL路径\bin\mysqld.exe"

这种启动在终端下允许,关闭终端,MySQL停止,一般不用

2.2 制作成Windows服务

"MySQL路径\bin\mysqld.exe"  --install mysql57

mysql57是自己命名,最好以mysql最为开头,57这里是我的版本

2.3 连接测试

"MySQL路径\bin\mysqld.exe" -h 127.0.0.1 -P 3306 -u root -p

说明: -h 后接的是要连接的服务器地址。 初始进入密码不需要,直接回车可进入

2.4 配置环境变量

path下添加一条MySQL的路径 即可 eg: D:\Program Files\Mysql\mysql-5.7.31-winx64\bin

至此: 终端在一般模式也可以使用MySQL啦

3. MySQL指令

3.1 连接

进入MySQL本地连接

mysql -u root -p

3.2 设置密码

set password = password('123456');

123456就是设置的密码

3.3 查看已有的的文件夹(数据库)

show databases;

3.4 退出(关闭连接)

exit;

4. 忘记密码怎么办?

默认情况下,启动MySQL时,需要输入账号、密码

修改MySQL配置,重启MySQL服务(无账号模式)
	mysql -u root -p
	进去后重新设置密码
	退出
	
再重新修改MySQL配置文件,重新启动MySQL(需要账号的模式)
	mysql -u root -p
	新密码
  • 停止服务

  • 修改MySQL配置文件(以无账号模式)

    配置文件my.ini

    初始配置文件:

    [mysqld]
    
    port=3306
    
    basedir=D:\\Program Files\Mysql\\mysql-5.7.31-winx64
    
    datadir=D:\Program Files\Mysql\mysql-5.7.31-winx64\\data
    

    加上一句话skip-grant-tables=1

    即:

    [mysqld]
    
    port=3306
    
    basedir=D:\\Program Files\Mysql\\mysql-5.7.31-winx64
    
    datadir=D:\Program Files\Mysql\mysql-5.7.31-winx64\\data
    
    skip-grant-tables=1
    
  • 重新启动MySQL

  • 再次登录(无需密码进入)

  • 执行命令设置密码

    use mysql;
    
    update user set authentication_string = password('新密码'), password_last_changed=now() where user='root';
    
  • 重新修改配置文件(需要账号的模式登录)【停掉MySQL服务】

    删除skip-grant-tables=1 再保存即可

  • 重新启动,输入新密码

5. MySQL指令

5.1 数据库管理(文件夹)

  • 查看已有的数据库(文件夹)

    show databases;
    
  • 创建数据库(文件夹)

    create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    
  • 删除数据库(文件夹)

    drop database 数据库名字;
    
  • 进入数据库(进入文件夹)

    use 数据库名字;
    
  • 查看文件夹下的所有数据表(文件)

    show tables;
    

5.2 数据表的管理(文件)

  • 进入数据库(进入文件夹)

    use 数据库;
    
  • 查看当前数据库下的所有表(文件)

    show tables;
    
  • 创建表(文件名称)

    create table 表名称(
    	列名称 类型,
        列名称 类型,
        列名称 类型
    ) default charset=utf8;
    

    例子:

    id name age
    create table tb1(
        id int,
        name varchar(16),
        age int
    	) default charset=utf8;
    

    varchar(16)表示字符串类型,最多存16个字符

    create table tb1(
        id int,
        name varchar(16) not null,	-- 不允许为空
        age int null 				-- 允许为空(默认)
    	) default charset=utf8;    
    
    create table tb1(
        id int,
        name varchar(16),
        age int default 3			-- 插入数据时,age列的值默认是3
    	) default charset=utf8;
    
    create table tb1(
        id int primary key,			-- 主键(不允许为空,不允许重复)
        name varchar(16),
        age int
    	) default charset=utf8;
    

    主键一般用于表示当前行的数据的编号(类似人的身份证)

    create table tb1(
        id int auto_increment primary key,		-- 设置主键自增(内部维护)
        name varchar(16),
        age int
    	) default charset=utf8;
    

    一般创建表时都这样写:【标准】

    create table tb1(
        id int not null auto_increment primary key,
        name varchar(16),
        age int
    	) default charset=utf8;
    
  • 查看表内信息

    desc 表名;
    

    展示列名,每一列的类型,是否为空,是否为主键,默认值是什么,额外信息

  • 删除表

    drop table 表名称;
    
  • 向表中加数据

    # 插入数据
    insert into tb2(salary, age) values(10000, 18);		--  插入一行
    insert into tb2(salary, age) values(20000, 28);
    insert into tb2(salary, age) values(30000, 38), (40000, 48);	-- 插入两行
    

5.3 常用数据类型

整数:

  • tinyint

    有符号,取值范围:-128 ~ 127 (默认)	 tinyint
    无符号,取值范围:0 ~ 255			  tinyint unsigned
    
  • int

    有符号
    无符号:int unsigned
    
  • bigint

    有符号
    无符号
    

例子:

# 创建表
create table tb2(
    id bigint not null auto_increment primary key,
    salary int,
    age tinyint
	) default charset=utf8;

# 插入数据
insert into tb2(salary, age) values(10000, 18);		--  插入一行
insert into tb2(salary, age) values(20000, 28);
insert into tb2(salary, age) values(30000, 38), (40000, 48);	-- 插入两行

# 查看表中的数据(展示表中的内容)
select * from tb2;

小数:

  • float

  • double

  • decimal

    准确的小数值,8是数字的总个数是8位(符号不算),小数点后有2位。

    最大总共有65位,小数点后最多有30位

    总位数超过限制会报错,总位数不超&小数点后的位数太多会进行四舍五入

    create table, tb1(
        id int not null auto_increment primary key,
        salary decimal(8, 2)
    	) default charset=utf8;
    

字符:

  • char(m) 查询速度快

    定长字符串,超过指定长度会报错

    char(11),固定按照11个字符串进行存储,没有11个也会按照11个存储

    m代表字符串的长度,最多可容纳255个字符

    create table, tb1(
        id int not null auto_increment primary key,
        mobile char(11)
    	) default charset=utf8;
    
  • varchar(m) 节省空间

    变长字符串,超过指定长度会报错

    真实数据有多长就存储多少

    m代表字符串的长度,最大65535个字节 / 3 = 最大的中文字数

    create table, tb1(
        id int not null auto_increment primary key,
        salary decimal(8, 2)
    	) default charset=utf8;
    
  • text

    text数据类型一般用于存储变长的大字符串,最多65535个字符
    一般情况下,长文本会用text类型,例如:文章,新闻等
    
  • mediumtext

  • longtext

日期:

  • datetime

    YYYY-MM-DD HH:MM:SS
    
  • date

    YYYY-MM-DD
    

清屏:

system clear

5.4 数据行操作

5.4.1 新增数据
insert into 表名(列名,列名) values(值,值);
insert into 表名(列名, 列名) values(值,值),(值,值),(值,值);
5.4.2 删除数据

删除整张表的数据

delete from 表名; 

过滤删除的条件

delete from 表名 where 条件;
delete from tb1;
delete from tb1 where id = 3;
delete from tb1 where id = 4 and name = "张三“;
delete from tb1 where id = 3 or name = "李四";
delete from tb1 where id >= 3;
delete from tb1 where id != 3;
delete from tb1 where id in (1, 3);   # 表示id=1和id=5的被删掉
5.4.3 修改数据
update 表名 set 列=值;	# 表中的所有列都改
update 表名 set 列=值, 列=值;
update 表名 set 列=值 where 条件;

通过条件判断可以控制

update tb1 set age=age+10 where id>5;
5.4.4 查询数据

查询表中的所有数据

select * from 表名称;

查询某几列

select 列名称,列名称 from 表名称;

还可以加条件

select 列名称,列名称 from 表名称 where 条件;

你可能感兴趣的:(MySQL,mysql,数据库)