win10下MySQL5.7基本操作指南

一、基本操作

1、下载安装

这个地址提供所有的MySQL Community Server版本下载(包括历史版本)。
win10下MySQL5.7基本操作指南_第1张图片
2、添加环境配置
桌面【我的电脑】----右键【属性】----高级系统设置----环境变量----系统变量:双击Path----新建,将MySQL安装目录下bin文件夹路径复制进去----确定 3次。
win10下MySQL5.7基本操作指南_第2张图片

3、在MySQL安装根目录下新建my.ini文件,并编辑,内容如下:注意格式为ANSI,否则会在下一步中报错

mysqld: [ERROR] Found option without preceding group in config file D:\MySQL\my.ini at line 1!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

my.ini文件内容

[Client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:\MySQL
datadir=D:\MySQL\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB

4、管理员方式打开cmd,切换到MySQL安装目录bin下,初始化MySQL

D:\MySQL\bin>mysqld --initialize --user=mysql --console
2018-11-01T01:29:23.532353Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-11-01T01:29:26.971841Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-11-01T01:29:27.523754Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-11-01T01:29:27.773737Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 92c04cf6-dd75-11e8-8742-44334c06f63c.
2018-11-01T01:29:27.867507Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-11-01T01:29:27.975723Z 1 [Note] A temporary password is generated for root@localhost: iO%F;L>rN7iV

初始化成功后,会自动在MySQL目录下创建data目录,并生成初始密码。将密码保存。

5、安装MySQL:

D:\MySQL\bin>mysqld --install mysql

如果之前安装过MySQL,而未清理干净,可能出现如下错误提示

D:\MySQL\bin>mysqld --install mysql 
The service already exists! 
The current server installed: D:\mysql5718\bin\mysqld MySQL

解决方案:以管理员身份运行cmd
①查询是否有名为mysql的服务:

C:\WINDOWS\system32>sc query mysql

SERVICE_NAME: mysql
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0

②如有,删除mysql

C:\WINDOWS\system32>sc delete mysql
[SC] DeleteService 成功

接着就能安装成功了。

6、启动MySQL服务:

D:\MySQL\bin>net start mysql
mysql 服务正在启动 .
mysql 服务已经启动成功。

关闭/停止:net stop mysql
控制台:mysqld --console

7、登录MySQL:输入刚才的初始密码

D:\MySQL\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

也可以一条语句完成,但会暴露密码,不推荐:

D:\MySQL\bin>mysql -uroot -p(p字母后接着输入密码,不用空格)

8、修改密码:

mysql> set password=password('新密码');
Query OK, 0 rows affected, 1 warning (0.00 sec)

也可以用这条语句,略显复杂:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; 

9、cmd中退出mysql:

mysql> quit
Bye

二、MySQL脚本基本组成

与常规脚本语言类似,MySQL也具有一套对 字符、单词、特殊符号的使用规定,MySQL通过执行SQL脚本来完成对数据库的操作,该脚本由一条或多条MySQL语句(SQL语句+扩展语句)组成,保存时脚本文件后缀为.sql。当然,在控制台下,MySQL客户端也可对语句进行单句执行,而不用保存为.sql文件。

  • 标识符

标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线

对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linux\unix 系统来说, 这些标识符大小写是敏感的。

  • 关键字

MySQL的关键字众多, 这里不一一列出, 在学习中学习。 这些关键字有自己特定的含义, 尽量避免作为标识符。

  • 语句

MySQL语句是组成MySQL脚本的基本单位, 每条语句能完成特定的操作, 它是由 SQL 标准语句 + MySQL 扩展语句组成。

  • 函数

MySQL函数用来实现数据库操作的一些高级功能, 这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数

三、MySQL中的数据类型

MySQL有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:

  • 数字类型
    整数: tinyint、smallint、mediumint、int、bigint
    浮点数: float、double、real、decimal
  • 日期和时间: date、time、datetime、timestamp、year
  • 字符串类型
    字符串: char、varchar
    文本: tinytext、text、mediumtext、longtext
    二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

四、日常使用MySQL数据库的基本操作

文本均以管理员运行cmd下操作。

1、启动MySQL服务

C:\WINDOWS\system32>net start mysql
mysql 服务正在启动 .
mysql 服务已经启动成功。

【任务管理----服务,可查看mysql是否启动。】
关闭:

net stop mysql

2、登录MySQL,进入mysql>模式:如果连接远程主机加上-h指令

mysql -u root [-h IP] -p

mysql -u root -p#安全模式,输入密码显示为*号。

mysql -uroot -p(p字母接着密码,不用空格)

退出mysql>模式:quit

mysql>quit

3、创建数据库

mysql>create database <数据库名称> character set utf8;

会配置MySQL时的(如)D:\MySQL\data文件夹下创建数据库文件夹。
如需在指定文件夹下创建数据库,则需要修改.ini文件中的datadir值。

删除数据库

drop database <数据库名>;

删除一个已确定存在的数据库

mysql>drop database <数据库名>;

删除一个不确定存在的数据库

mysql>drop database if exists <数据库名>;

3、选择/切换要操作的数据库,两种方式:
①在登录MySQL时指定,命令:

mysql -D <数据库名> -u root -p

②登录后使用use语句指定,命令:

mysql> use <数据库名>;

4、创建数据库表,用create table语句:

create table 表名称(列声明);

以创建students表为例,该表存放 学号id、姓名name、性别sex、年龄age、联系电话tel

create table students(
	id int unsigned not null auto_increment primary key,
	name char(8) not null,
	sex char(4) not null,
	age tinyint unsigned not null,
	tel char(13) null default "-"
);

上述MySQL脚本语句可直接在任何文本编辑器(如txt、SublimeText、NotePad++)下输入后将其保存为createtable.sql文件。
再通过cmd下的文件重定向执行该脚本:

mysql -D <数据库名> -u root -p < createtable.sql

创建成功的话会在同文件夹下新增students.idb文件。createtable.sql.sql文件若不在当前工作目录下,需指定该文件的完整路径。

mysql>模式下:

查看已创建了的表名称

show tables;

查看已创建表的结构

describe <表名>;

列出所有数据库

show databases;

5、操作MySQL数据库

向表中插入数据,语法:

insert [into] 表名 [(列名1,列名2,列名3,...)] values (值1,值2,值3,...); 

例:

insert into students values(NULL, "王刚","男", 20,"13812341234");  

有时插入部分数据 或不按列的顺序插入,可使用如下形式:

insert into students (name, sex, age) values("佳儿","男",21);

查询表中的数据,语法:

select 列名称 from 表名称 [查询条件];

例:查询students表 中所有学生的名字和年龄

select name,age from students;  

使用通配符 *查询表中所有的内容,语句:

select * from students;   

按特定条件查询:where关键词用于指定查询条件,语法:

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

例:查询所有性别为男的信息,语句:

select * from students where sex="男";

where子句不仅支持“where 列名称=值”查询形式,还支持比较运算符,如=、>、<、>=、<=、!=,以及扩展运算符如 is [not] null、in、like等,还可使用orand进行组合查询。

更新表中的数据,语法:

update 表名称 set 列名称=新值 where 更新条件; 

例 id为4的手机号改为15200901235:

update students set tel="15200901235" where id=4;

例 将所有人年龄减1:

update students set age= age-1;

将手机号为13812341234的姓名改为“李新宇”、年龄为17:

update students set name="李新宇",age=17 where tel="13812341234";

删除表中的数据,语法:

delete from 表名称 where 删除条件;

例 删除id为2的行:

delete from students where id=2;

删除表中所有数据:

delete from students;

创建后 表的修改alter table语句用于创建后对表的修改。

添加列
alter table 表名 add 列名 列数据类型 [after 插入位置];
例:在表的最后追加列 address:

alter table students add address char(60);

修改列

alter table 表名 change 列名称 列新名称 新数据类型;

例:将students表中列tel改为telphone:

alter table students change tel telphone char(13);

删除列

alter table 表名 drop 列名称;

重命名表

alter table 表名 rename 新表名;

删除整张表

drop table 表名;

添加、删除用户,授权(如果在使用,MySQL8.0加密方式修改了)

添加用户

create user "test"@"localhost" identified by "123456";

添加了一个名为 test、密码为123456的用户,其中localhost代表只允许本地IP访问(即只能在本地登录MySQL),将localhost 改为 % 将可在任何一台电脑上登录,也可指定某个外网IP(将localhost改为某指定IP)可远程登录。

授权

grant all privileges on *.* to "test"@"localhost" with grant option;

其中all privileges代表全部权限,可改为部分权限如 select,insert,update;第一个*表示允许该用户访问所有数据库文件,可改成某个数据库如 testdb。

刷新权限

flush privileges

可退出当前某用户登录,用刚添加的用户名和密码登录了,之后就可以在授权范围内操作数据库了,如show databases;

查看用户权限

show grants for "root"@"localhost";

修改指定用户密码

alter user "test"@"localhost" identified by "test123";

删除用户

drop user "test"@"localhost";

你可能感兴趣的:(win10下MySQL5.7基本操作指南)