MySQL的安装与使用(MySQL)

参考文档:《MySQL必知必会》

一、安装MySQL数据库

MySQL官方网址:https://dev.mysql.com/
1. 安装教程

2. 错误解决

3. 样例表下载

4. 数据库图形化管理工具

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 命令的用法)
  • 输入 quitexit 退出

三、数据库的查看、创建与使用

基本操作指令:

  1. 显示可用数据库:SHOW DATABASES;
  2. 创建数据库:CREATE DATABASE [DB name];
  3. 删除数据库:DROP DATABASE [DB name];
  4. 选择数据库:USE [DB name];
  5. 显示当前数据库的所有可用表:SHOW TABLES;
  6. 显示指定数据库的所有可用表:SHOW TABLES FROM [DB name];
  7. 显示指定表的所有列(字段)的定义: SHOW COLUMNS FROM [table name];
    (MySQL还可以使用 DESCRIBE [table name]
  8. 显示服务器状态信息:SHOW STATUS;
  9. 显示创建该数据库的语句:SHOW CREATE DATABASE [DB name];
  10. 显示创建该表的语句:SHOW CREATE TABLE [table name];
  11. 显示服务器错误或警告消息:SHOW ERRORS;SHOW WARNINGS;

显示某个表的列(字段)时,会显示每个列的如下内容

Field:字段名
Type:数据类型
Null:是否允许NULL
Key:键信息,主键会显示 PRI,外键会显示 MUL
Default:默认值
Extra:其他信息,自动增量会显示 auto_increment

导入《MySQL必知必会》里的样例表:
解压 mysql_scripts.zip 后会有 create.sqlpopulate.sql 两个脚本文件,按照以下步骤导入:

mysql -u root -p                ##用 root 登录 mysql,然后输入密码
CREATE DATABASE crashcourse;    ##新创建一个名为 crashcourse(名字随意)的数据源
USE crashcourse;                ##进入 crashcourse 数据源
SOURCE create.sql路径;          ##执行 create.sql 脚本创建样例表
SOURCE populate.sql路径;        ##执行 populate.sql 脚本填充样例表

三、用户与权限

用户管理:

  1. 查看所有用户:SELECT User,Host from user; (先进入名为“mysql”的数据库中)
  2. 创建用户:CREATE USER [user name] IDENTIFIED BY '[password]';
  3. 更改用户名:RENAME USER [user oldname] TO [user newname];
  4. 删除用户:DROP USER [user name];
  5. 更改密码: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

权限管理:

  1. 查看用户的权限:SHOW GRANTS FOR [user name];
  2. 授予用户关于 crashcourse.*(crashcourse 所有表)的 SELECT 权限:
    GRANT SELECT ON crashcourse.* TO [user name];
  3. 撤销用户关于 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;                # 指定引擎、字符集

更新表:

  1. 添加一列:
ALTER TABLE [table name] ADD [c_name2  int  NOT NULL];
  1. 删除一列:
ALTER TABLE [table name] DROP COLUMN [c_name];
  1. 添加外键:
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)》

posted @ 2021-04-24 21:01  TechRice  阅读(285)  评论(2)    收藏  举报