MySQL的安装与使用(MySQL)
参考文档:《MySQL必知必会》
一、安装MySQL数据库
MySQL官方网址:https://dev.mysql.com/
1. 安装教程
- mysql8.0.13下载与安装图文教程 - 十么Shi - 博客园
- mysql 8.0.11安装教程_电脑软件-百度经验
- MySQL压缩包zip安装 - sfencs - 博客园
- Mysql压缩包版zip的安装方法详解_孤云博客-CSDN博客_mysql压缩包安装
2. 错误解决
3. 样例表下载
4. 数据库图形化管理工具
- [Navicat 官网](收费、功能强大)
- [HeidiSQL 官网](开源、免费、轻量)
- [DBeaver 官网](开源、免费、Java编写)
5. Java 驱动包下载
二、MySQL登陆与退出
1. 登陆MySQL数据库
- 以指定用户[username]、默认主机名[localhost]、默认端口[3306]登陆 MySQL:
mysql -u [username] -p - 以指定用户[username]、指定主机名[servername]、指定端口[port]登陆 MySQL:
mysql -u [username] -p -h [severname] -P [port]
2. 注意事项与退出
- 登陆
MySQL后,命令必须用;或\g结束,仅按Enter不执行命令 - 输入
help或\h获得帮助,也可以获得某个命令的详细用法(如,输入help select获得SELECT命令的用法) - 输入
quit或exit退出
三、数据库的查看、创建与使用
基本操作指令:
- 显示可用数据库:
SHOW DATABASES; - 创建数据库:
CREATE DATABASE [DB name]; - 删除数据库:
DROP DATABASE [DB name]; - 选择数据库:
USE [DB name]; - 显示当前数据库的所有可用表:
SHOW TABLES; - 显示指定数据库的所有可用表:
SHOW TABLES FROM [DB name]; - 显示指定表的所有列(字段)的定义:
SHOW COLUMNS FROM [table name];
(MySQL还可以使用DESCRIBE [table name]) - 显示服务器状态信息:
SHOW STATUS; - 显示创建该数据库的语句:
SHOW CREATE DATABASE [DB name]; - 显示创建该表的语句:
SHOW CREATE TABLE [table name]; - 显示服务器错误或警告消息:
SHOW ERRORS;和SHOW WARNINGS;
显示某个表的列(字段)时,会显示每个列的如下内容:
Field:字段名
Type:数据类型
Null:是否允许NULL
Key:键信息,主键会显示PRI,外键会显示MUL
Default:默认值
Extra:其他信息,自动增量会显示auto_increment
导入《MySQL必知必会》里的样例表:
解压 mysql_scripts.zip 后会有 create.sql 和 populate.sql 两个脚本文件,按照以下步骤导入:
mysql -u root -p ##用 root 登录 mysql,然后输入密码
CREATE DATABASE crashcourse; ##新创建一个名为 crashcourse(名字随意)的数据源
USE crashcourse; ##进入 crashcourse 数据源
SOURCE create.sql路径; ##执行 create.sql 脚本创建样例表
SOURCE populate.sql路径; ##执行 populate.sql 脚本填充样例表
三、用户与权限
用户管理:
- 查看所有用户:
SELECT User,Host from user;(先进入名为“mysql”的数据库中) - 创建用户:
CREATE USER [user name] IDENTIFIED BY '[password]'; - 更改用户名:
RENAME USER [user oldname] TO [user newname]; - 删除用户:
DROP USER [user name]; - 更改密码:
ALTER USER [user name] IDENTIFIED BY '[new password]';(书中方法已过时)
参考连接:
https://blog.csdn.net/weixin_39810091/article/details/105775355
https://blog.csdn.net/weixin_44011068/article/details/107542326
权限管理:
- 查看用户的权限:
SHOW GRANTS FOR [user name]; - 授予用户关于 crashcourse.*(crashcourse 所有表)的 SELECT 权限:
GRANT SELECT ON crashcourse.* TO [user name]; - 撤销用户关于 crashcourse.*(crashcourse 所有表)的 SELECT 权限:
REVOKE SELECT ON crashcourse.* TO [user name]
除了
SELECT权限,还有其他权限,授权时用,间隔即可,如果授权所有(ALL)权限,直接执行GRANT ALL ON [DB name].* TO [user name]
四、表的创建与操作
创建表:
CREATE TABLE [table name](
c_name1 int NOT NULL AUTO_INCREMENT, # 自动增量
c_name2 int NOT NULL,
c_name3 char(10) NOT NULL,
c_name4 int NOT NULL DEFAULT 1, # 默认值为 1
c_name5 int NOT NULL,
PRIMARY KEY(c_name1, c_name2), # 指定主键
# 指定外键
CONSTRAINT fk_父表名_子表即当前表名
FOREIGN KEY (子表列名)
REFERENCES 父表名 (父表列名)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; # 指定引擎、字符集
更新表:
- 添加一列:
ALTER TABLE [table name] ADD [c_name2 int NOT NULL];
- 删除一列:
ALTER TABLE [table name] DROP COLUMN [c_name];
- 添加外键:
ALTER TABLE [table name] ADD
# 指定外键
CONSTRAINT fk_父表名_子表即当前表名
FOREIGN KEY (子表列名)
REFERENCES 父表名 (父表列名);
删除表:
DROP TABLE [table name];
重命名表:
RENAME TABLE [old table name] TO [new table name];
五、增删改查
插入数据:
# 1、不指定列名,需填入所有列的数据(自动增量的那一列填 NULL 即可)
INSERT INTO [table name] VALUES(null, 22, '33', 44, 55);
# 2、指定列名(可以去掉自动增量、允许NULL、有默认值的列)
INSERT INTO [table name](c_name2, c_name3, c_name5) VALUES(22, '33', 55);
删除数据:
DELETE FROM [table name] WHERE [c_name1 = 1];
更改数据:
UPDATE [table name] SET [c_name4 = 100] WHERE [c_name1 = 1];
查询数据:
SELECT [c_name1, c_name2] FROM [table name];
注:更多语法请参考另一篇文章:《SQL基本语法(MySQL)》

浙公网安备 33010602011771号