MySQL
使用
启动
-
DOS命令 命令行启动
-
服务方式启动(界面)
-
net stop mysql服务名
:启动服务 -
net start mysql服务名
:关闭服务
-
连接
-
命令行连接,语法格式
mysql -h 主机IP -P 端口 -u 用户名 -p密码
- 登陆前需要服务已经启动
-h
:默认本地 ip-P
:默认是 3306-p
:直接跟密码,没有空格- 此时不输入密码再回车后会要求输入密码
-
数据库常见端口
- mySQL:3306
- oracle:1521
- sqlServer:1433
修改密码
-- set password 命令(命令行)
mysql> set password for 用户名@localhost = password('新密码')
-- mysqladmin
mysqladmin -u用户名 -p旧密码 password 新密码
-- update 编辑
update user set password = password('新密码') where user = '用户名' and host = 'ip地址'
忘记密码
- 关闭正在运行的
MySQL
服务 - 打开
DOS
窗口,转到mysql\bin
目录 - 输入
mysqld --skip-grant-table
,回车- 该指令意思是启动 MySQL 服务的时候绕过权限表认证
- 再打开一个 DOS 窗口,转到
mysql\bin
目录- 第一个窗口此时不能使用
- 输入
mysqld
回车,成功后出现 MySQL 提示符 > - 连接数据库:
user mysql
- 改密码:
update user set password = password('新密码') where user = '用户名';
- 通过自己的用户名修改密码
- 刷新权限:
flush privileges
- 退出:
quit
- 注销系统,重新使用刚改过的密码进入
三层结构
结构
DBMS
:数据库管理系统- 数据库1(存放在数据库目录的 Data 文件夹下)
- 数据库2 …
- 数据库n
- 表1、视图、事件等存储数据(存放在数据库所在的目录下)
- 表2 …
- 表n
- 安装 MySQL 数据库就是在主机安装数据库管理系统(DBMS),管理多个数据库
DataBase Management System
- 一个数据库中可以创建多个表,表中记录数据
- 外部程序通过服务端口和数据库进行通信
表
- MySQL数据库普通表的本质仍是文件
- 数据库中数据必须持久化才能持续存放
- 表中包括行(row),列(column)
- 一行被称为一条记录(data)
- Java 程序中一条记录往往代表一个对象
- 一列被称为 一个字段
- 应有 字段名、数据类型、约束 等属性
- 一行被称为一条记录(data)
RDBMS
RDBMS
:关系型数据库管理系统,即数据库服务器Relational DateBase Management System
DBMS
:数据库管理系统database management system
- DB:数据库
database
RDBMS
=Management
(管理员) +datebase
(数据仓库)datebase
= N 个table
table
:表结构
- 安装数据库服务器后可以在服务器创建多个数据库
- 数据库中可以创建多张表
SQL
定义
- 结构化查询语言,属于高级语言
- 标准通用的语言
- 标准的 sql 适合所有的数据库产品
- 执行时内部先进行编译,再执行 sql
- 编译、执行由 DBMS 完成
- 通过执行 sql 语句来操作 DB 中的数据
- DBMS 执行 SQL 操作 DB 中数据
分类
DDL
:数据定义语句Data Definition Language
- 对表结构增删改
create
(创建)、drop
(删除)、alter
(修改)
DML
:数据操作语句Data Manipulation Language
- 操作表中数据
- 增
insert
、删delete
、改update
- 增
DQL
:数据查询语句(select)Data Query Language
DCL
:数据控制语句Data Control Language
- 管理数据库,如用户权限
grant
赋予;revoke
收回
TCL
:事务控制语言(T:Transaction)Transaction Control Language
commit
:提交事务rollback
:回滚事务
sql 脚本
- 文件后缀拓展名为
.sql
且文件中编写了大量 sql 语句- 这样的文件被称为
sql
脚本
- 这样的文件被称为
sql 语句规范
sql
语句以;
结尾- 最后一句可以不写
sql
语句不区分大小写- 只有存储的数据区分大小写
- 字符串以
''
引用- 支持使用
""
,但尽量不用
- 支持使用
- 数据库不可用
=
判空is null
、is not null
来判断空- 数据库中
null
是没有数据,而非空值null
参与运算结果都为null
- 使用
()
提高优先级执行顺序
CRUD
- 增查改删
- 增加:
Create
- 检索:
Retrieve
- 修改:
Update
- 删除:
Delete