0719-0722
Mysql 的安装和启动
安装
-
1initialization:初始化 MYSQL 服务
-
2install :安装 Mysql 服务
-
3startup :启动 MYSQL 服务
安装时依次执行1,2,3
-
4reboot :重启 MYSQL 服务
卸载
-
5stop :将 MYSQL 服务停止
-
6uninstall :删除服务
最后删除文件夹
登录数据库验证安装
mysql [-h 127.0.0.1] [-p 3306] -u root -p
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号,默认 3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
**注意:**初始化脚本只需要执行一次。如果在某个过程出错,删掉目录,重新来过即可。
进行环境配置
将 mysql 的bin 目录地址添加到系统环境变量 path 中。
D:\kaifamiao\enviroments\mysql-8.0.30-winx64\bin
什么是数据库
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
数据的存储方式
- 数据保存在内存
例如:数组,集合;new出来的对象存储在堆中.堆是内存中的一小块空间
优点:内存速度快 缺点:断电/程序退出,数据就清除了.内存价格贵 - 数据保存在普通文件 优点:永久保存 缺点:查找,增加,修改,删除数据比较麻烦,效率低
- 数据保存在数据库 优点:永久保存,通过
SQL
语句比较方便的操作数据库
数据库的优点
数据库是按照特定的格式将数据存储在文件中,通过SQL
语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。
数据库管理系统
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据
数据库管理系统、数据库和表的关系
数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
先有数据库 → 再有表 → 再有数据 一个库包含多个表
mysql端口被占用解决
在cmd
窗口下执行如下命令:
netstat -ano|findstr 3306
查找正在执行的3306
端口程序
如果出现如图所示列表表示以上程序使用了3306端口,找到程序的PID
(最后一列)
去任务管理栏找到对应程序结束任务就行了。
SQL的通用语法
注释
- 单行注释 # 和 --都表示注释
- 多行注释 /* */
分类
- DDL 数据定义语言,用来定义数据库对象(数据库,表,字段)
- DML 数据操作语言,用来对表中的数据进行增删改
- DQL 数据查询语言,用来查询表中的记录
- DCL 数据控制语言,创建数据库用户,控制数据库的访问权限
DDL 语句
数据库
1.查看数据库
show databases; #查看当前用户可操作的所有数据库
2.创建新的数据库
create database 数据库名;
3.选择数据库
use 数据库名;
# 选择数据库之后可以在其中创建数据库表
4.删除数据库
drop database 数据库名;
表
1.查看表
show tables; #查看当前被选中的数据库中的所有表
2.创建表
create table 表名 (
列名 类型,
列名 类型);
3.查看表结构
describe 表名;
desc 表名;
show create table 表名; #可以查看创建表时候的代码
4.删除表
drop table 表名;
用户管理
1.查看当前登录的用户
select user();
2.创建新用户
create user 用户名@'ip' identified by '密码';
3.修改密码
alter user 用户名@'ip' identified by '密码' password expire never; #修改密码之后不需要重新登录
4.查询用户信息
select user,host from mysql.user;
5.新用户登录
mysql -u 用户名 [-h ip] -p
6.用户授权
show grants for 用户名@localhost; #查询用户权限
grant all on 数据库名.表名 to 用户名@localhost;
#all代表所有权限
#授权的新用户需要重新登录才能使用新权限
all : 所有权限
select :查询权限
insert : 插入权限
update : 更新权限
7.删除用户
drop user 用户名@'localhost';
表操作
1.添加列
alter table 表名 add 列名 类型;
2.修改列
alter table 表名 modify 列名 类型;
#只能修改类型
3.修改列名和类型
alter table 表名 change 旧列名 新列名 新类型;
4.删除列
alter table 表名 drop 列名(字段名);
5.修改表名
rename table 旧表名 to 新表名;
6.删除表
drop table 表名;
7.截断表
truncate table 表名
#删除表后会创建一个空表
8.创建和某表结构一样的表
create table 表名 like 要复制的表;
#当复制的表 不在当前数据库时
create table 表名 like 数据库名.表名;
数据管理(CRUD)
1.插入数据(增)
insert into 表名(列名1,列名2,····) values (数据1,数据2,····);
#如果前面有字段按照前面的字段顺序添加,没有按照默认的顺序添加
insert into 表名 values(),(),();
2.查询数据(查)
select * from 表名;
# 无条件查询
#等值查询
select * from 表名 where 字段名 = values;
#设置列别名
select 字段名 [as] '别名' from 表名 where 条件;
select distinct * from 表名;
#只是在显示的时候不显示重复的数据,数据未删除
3.修改数据(改)
update 表名 set 列名 = values where 条件;
4.删除数据(删)
delect from 表名 where 条件;
条件查询
1.条件过滤
select * from 表名;
#where 后面表示查询的条件
select * from 表名 where 字段 between values and values;
#字段在(values1,values2...)任意一个就可以;
select * from 表名 where 字段 in (values1,values2,values3);
select * from 表名 where 字段 not in (values1,values2,...);
select * from 表名 where 条件 and 条件;
select * from 表名 where 条件 or 条件;
2.算数运算
select 字段1 + 字段2 from 表名;
update 表名 set 字段 = 字段 +value where 条件;
3.NULL值查询
#当查询值是null时
select * from 表名 where 字段 is null;
#当查询值是null时
#select * from 表名 where 字段 no is null;
4.模糊查询
select * from 表名 where 字段 like 'x_'/'x%'/'%x%'/'_x%';
5.逻辑运算
select * from 表名 where 字段 > value;
#where 条件语句里面可以写> < = != 等;
6.排序
select * from 表名 order by 字段1 desc,字段2 asc;
#升序和降序
7.分页查询
select * from 表名 limit (n-1)*s,s;
# n表示页,s表示条数
8.单行查询
select length(所求的) from 表;
select upper (字段),lower(字段) from 表;
select concat(字段1,字段2) from 表;
数据备份
1.备份表
# -d 只备份表结构
mysqldump -u root -p -d 数据库 表 > E:/dept.sql;
# 数据+表结构一起备份
# mysqldump -u root -p 数据库 > 地址
#备份多个数据库
mysqldump -u root -p -d -B 数据库1 数据库2 数据库3 > 地址
#备份所有数据库
mysqldump -u root -p -d -A > 地址