MySql8.0.25绿色版的安装与基础使用
卸载原来的mysql
1.停掉mysql服务
如果没有配置系统环境变量的话,以管理员身份打开cmd,进入到mysql
主目录下的bin
,要用bin
下的mysqld
命令移除mysql
服务。
net stop mysql
2.移除服务
mysqld remove mysql
3.删除注册表
win + r
输入regedit
,进入注册表,删除mysql
文件。
安装绿色版8.0.25
由于绿色版是免安装的,解压缩就可以了。
同样,进入到bin目录下,用mysqld
命令来操作。
解压缩之后安装的命令打包成了bat批命令,也可以自己一条一条的写命令。
1.初始化
mysqld --initialize-insecure
警告:该命令不管怎样都只能执行一次,初始化命令。
2.安装
mysqld --install
3.开启服务
net start mysql
常用命令
1.连接命令
语法:mysql -h主机地址 -u用户名 -p用户密码
连接本机:
刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了
mysql -uroot
直接登录,没有设密码,可以不用输;或者 mysql -u root -p
然后enter
,弹出password
,直接enter
进去。
注意:用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。
连接远程:
假设远程服务器ip
是:110.110.110.110
,账户是:root
,密码是:123456
。则
mysql -h110.110.110.110 -u root -p 123456;
退出mysql
环境的命令:
exit;
或者 quit;
2.用户管理命令
查看当前登录用户:
SELECT user();
SELECT user() FROM dual;
查询用户信息:
SELECT user , host FROM mysql.user ;
新增用户:
- 语法:
grant 权限 on 数据库.表 to '用户名@登录主机' [identified by '密码'];
- 例子:
grant all privileges on *.* to 'test@%' identified by '123';
意思是:新建用户test,给予所有权限在所有数据库的所有表上的,并设置密码为123;相当于root用户。
删除用户:
DROP USER kaifamiao@localhost ;
更新 root 用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
刷新权限:
FLUSH PRIVILEGES;
MySQL8.0创建新的用户:
- PS:‘root’@‘localhost’ 和 ‘root’@’%’ 是两个不同的用户,所以为了更改为%可以这样来操作
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
3. 查看编码方式:
show variables like "%char%";
4.mysql的备份与导出:
#mysql备份
mysqldump -u[username] -p[`password`] `database` > file
#导入
source file
5.查看用户的当前连接
show processlist;
数据库管理
查看数据库:
1.查看当前存在的数据库:
show databases;
2.查看数据库创建语句:
#查看数据库的创建语句
show create database db_name;
创建新数据库:
1.语法:
create database 数据库名称 ;
#表示若数据库中不存在名称为itcast数据库时,创建该数据库,否则不执行创建数据库itcast的操作
recate database if not exists 'itcast' ;
2.编码:
MySQL 8 中创建的数据库默认编码是 utf8mb4
。
3.目录:
在mysql
的数据目录,形成一个目录,目录名是数据库名。
目录内,存在一个文件,用于保存数据库的选项信息。Db.opt
选择数据库:
use databasename
选择数据库后即可在其中创建数据库表,并进行相应操作。
删除数据库:
注意:可不能删库跑路了!!!
DROP DATABASE databasename;
表管理
查看表:
1.查看该数据库中存在的表:
use databasename;
show tables;
2.查看某个表的创建信息:
show create table tablename;
创建表:
1.了解常用数据类型
-
数值类型
-
字符串类型
-
日期与时间类型
<1>整数型 类型 大小 范围(有符号) 范围(无符号unsigned) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32768,32767) (0,65535) 大整数值 MEDIUMINT 3 字节 (-8388608,8388607) (0,16777215) 大整数值 INT 4 字节 (-2147483648,2147483647) (0,4294967295) 大整数值 BIGINT 8 字节 () (0,2的64次方减1) 极大整数值 <2>浮点型 FLOAT(m,d) 4 字节 单精度浮点型 备注:m代表总个数,d代表小数位个数 DOUBLE(m,d) 8 字节 双精度浮点型 备注:m代表总个数,d代表小数位个数 <3>定点型 DECIMAL(m,d) 依赖于M和D的值 备注:m代表总个数,d代表小数位个数 <4>字符串类型 类型 大小 用途 CHAR 0-255字节 定长字符串 VARCHAR 0-65535字节 变长字符串 TINYTEXT 0-255字节 短文本字符串 TEXT 0-65535字节 长文本数据 MEDIUMTEXT 0-16777215字节 中等长度文本数据 LONGTEXT 0-4294967295字节 极大文本数据 char的优缺点:存取速度比varchar更快,但是比varchar更占用空间 varchar的优缺点:比char省空间。但是存取速度没有char快 <5>时间型 数据类型 字节数 格式 备注 date 3 yyyy-MM-dd 存储日期值 time 3 HH:mm:ss 存储时分秒 year 1 yyyy 存储年 datetime 8 yyyy-MM-dd HH:mm:ss 存储日期+时间 timestamp 4 yyyy-MM-dd HH:mm:ss 存储日期+时间,可作时间戳
2.创建数据库表
-
CREATE TABLE kfm ( id INT , name VARCHAR(40) , birthdate DATE );
-
id自增长、主键
CREATE TABLE kfm( id INT NOT NULL AUTO_INCREMENT,name VARCHAR(40),birthdate DATE,PRIMARY KEY (id));
查看表结构:
DESCRIBE tablename
或 DESC tablename
修改表:
1.修改表名:
a.修改一个
rename table old tab_name to tab_name;
b.修改多个
rename table old tab_name to tab_names,tab_name1 to tab_name1s;
c.跨数据库修改
将一个数据库下的表移动到另一个数据库下面,可以利用此特点进行数据库重命名
rename table tab_name to db1.tab_names;
alter table tbl_name [add|drop|change|modify]
2.增加列:
增加一个新字段
alter table tab_name add 字段名 数据类型;
3.删除列:
删除一个字段
alter table tab_name drop 字段名;
4.修改列定义:
alter table tab_name modify 字段名 数据类型;
5.改变列名:
alter table tab_name change 字段名 数据类型;
6.修改表选项:
alter table tbl_name 新的表选项
alter table tab_name character set utf8;
删除表:
DROP TABLE tablename ;
截断表:
#类似于初始化表,清空表
TRUNCATE TABLE tablename ;
常用SQL语句
使用这些 sql
语句前,需要先 use 数据库名;
改变数据库的状态。
SELECT:
1.无条件查询
select * from kfm;
2.有条件查询
select * from 数据表名 where 条件;
3.数据过滤
1.BETWEEN … AND:
select * from fun where id between 2 and 18;
2.IS NULL / IS NOT NULL:
null
是指值为 null
,而不是没有值。
select * from fun where id is null;
3.LIKE模糊查询:
select * from fun where id funShortName like '%信息%';
select * from fun where id funShortName like '_修%';
select * from fun where id funShortName like 's%';
like匹配的都是一些常量,如果匹配的是我们传进去的一个变量,怎么办那……往下瞅,哈哈
使用concat函数(把参数转化成字符串):
set @password;#创建变量
select * from t_user where password like concat('%',@passWord,'%');
#从t_user表里面查询当password值中间有这个变量就可以
4.数据排序
-
SELECT * FROM kfm ORDER BY id DESC;
-
SELECT id , name , birthdate FROM kfm ORDER BY name ASC;
说明:默认排序按照主键升序(
asc
),降序是desc
。
5.分页查询
-
sql
语句:SELECT * FROM kfm ORDER BY id DESC LIMIT 0 , 5 ;
-
函数:
limit (pageindex * pagesize), pagesize
【pageindex
是当前页数的索引,从0开始】 -
maxpage
(最大页数):如果count(*)/ pagesize
整除,则最大页数是count(*) / pagesize
,如果有余数则是count(*) / pagesize + 1
说明:count(*)是指总结记录数,
pagesize
是指每页记录数,pageindex
是指当前页数的索引值(从0开始),maxpage
是指最大页数。
SELECT * FROM fun ORDER BY id DESC LIMIT 0 , 5 ;
#指查询分页的第一页(索引是0)的10条数据
INSERT:
插入数据,自增的话可以不用写字段和值。
INSERT INTO kfm ( 1 , 'xiaomiao' , '2000-10-10' );
INSERT INTO kfm (name,birthdate) VALUES ('jiafei','2000-11-11');
UPDATE:
不是修改全部的话一定要带条件
UPDATE kfm SET name = 'tom' , birthdate='2001-05-06' WHERE id = 1 ;
DELETE:
不是删除全部的话,一定要记得带条件
DELETE FROM kfm ;