如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)

前言

  • MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一
  • MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

一:数据库基本操作命令

1.1:MySQL常用管理操作是哪些?

  • 查看数据库结构
  • 创建及删除库和表
  • 管理表的记录

1.2:查看数据库列表信息的命令是?

  • show databases

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
    

1.3:查看数据库中的数据表信息命令是?

  • use 数据库名

  • show tables

    mysql> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    
    
    mysql> show tables;
    +---------------------------+
    | Tables_in_mysql           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | engine_cost               |
    | event                     |
    | func                      |
    | general_log               |
    ...省略内容
    

1.4:显示数据表的结构(字段)命令是?

  • describe [数据库名.]表名

    mysql> describe user;
    +------------------------+-----------------------------------+------+-----+-----------------------+-------+
    | Field                  | Type                              | Null | Key | Default               | Extra |
    +------------------------+-----------------------------------+------+-----+-----------------------+-------+
    | Host                   | char(60)                          | NO   | PRI |                       |       |
    | User                   | char(32)                          | NO   | PRI |                       |       |
    | Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Insert_priv            | enum('N','Y')                     | NO   |     | N          
    ...省略内容
    

1.5:SQL语言概述

  • SQL语言

    • 是Structured Query Language的缩写,及结构化查询语言
    • 是关系型数据库的标准语言
    • 用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能
  • SQL分类

    • DDL:数据定义语言

    • DML:数据操纵语言

    • DQL:数据查询语言

    • DCL:数据控制语言

二:SQL操作管理命令

2.1:DDL操作命令

2.1.1:DDL语句是什么作用?
  • DDL语句用于创建数据库对象,如库,表,索引等
2.1.2:DDL语句创建库,表的命令是?
  • 创建数据库:create database 数据库名

  • 创建数据表:create table 表名(字段定义…)

    mysql> create database kkk;	'//创建库'
    Query OK, 1 row affected (0.00 sec)
    
    mysql> use kkk;
    Database changed
    
    mysql> create table bbb(	'//创建表'
        -> name char(16)not null,	'//名称不为空,16个字符'
        -> passwd char(48) default '',	'//密码默认为空,密码课48个字符'
        -> primary key(name));	'//主键'
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> create table info (id int(4) not null primary key,name char(10) not null,address varchar(50) default 'nj');
    Query OK, 0 rows affected (0.01 sec)
    mysql> show tables;
    ...省略内容
    
2.1.3:DDL语句删除库,表的命令是?
  • 删除指定的数据表:drop table [数据库名.]表名

  • 删除指定的数据库:drop database 数据库名

    mysql> drop table kkk.bbb;	'//删除表'
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> drop database kkk;	'//删除库'
    Query OK, 0 rows affected (0.00 sec)
    
    

2.2:DML操作命令

2.2.1:DML语句的作用是?
  • DML语句用于对表中的数据进行管理
  • 包括以下操作
    • insert:插入新数据
    • update:更新原有数据
    • delete:删除不需要的数据
2.2.2:向数据表中插入新的数据记录命令是?
  • insert into 表名(字段1,字段2,…)values(字段1的值,字段2的值,…)

  • [root@localhost ~]# mysql -uroot -p
    Enter password: 
    mysql> create database yiku;	'//创建库'
    mysql> use yiku;	'//进入库'
    mysql> create table yibiao (id int(4) not null primary key,name char(10) not null,address varchar(50) default '66666');	'//创建表,id为整形,4个字节且不为空,主键,名字10个字符不为空,地址默认66666,50个字符'
    Query OK, 0 rows affected (0.01 sec)
    mysql> show tables;
    +----------------+
    | Tables_in_yiku |
    +----------------+
    | yibiao         |
    +----------------+
    1 row in set (0.00 sec)
    ..省略1创建过程
    mysql> insert into yibiao values(2,'王二麻子','北京');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from yibiao;	'//查看表所有内容'
    +----+--------------+---------+
    | id | name         | address |
    +----+--------------+---------+
    |  1 | 第一         | no      |
    |  2 | 王二麻子     | 北京    |
    +----+--------------+---------+
    2 rows in set (0.00 sec)
    ...多添加几个用户
    
2.2.3:修改,更新数据表中的数据记录的命令是?
  • update 表名 set 字段名 1=值1[,字段名2=值2] where条件表达式

  • mysql> update yibiao set name='叫兽' where id=1 or id=4;	'//修改id1和id4的name'
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
    mysql> select * from yibiao;
    +----+--------------+---------+
    | id | name         | address |
    +----+--------------+---------+
    |  1 | 叫兽         | no      |
    |  2 | 王二麻子     | 北京    |
    |  3 | 王三麻子     | 北京    |
    |  4 | 叫兽         | 北京    |
    |  5 | 王五麻子     | 北京    |
    +----+--------------+---------+
    5 rows in set (0.00 sec)
    
    mysql> update yibiao set name='ermazi';	'//修改所有id的name'
    Query OK, 5 rows affected (0.01 sec)
    Rows matched: 5  Changed: 5  Warnings: 0
    
    mysql> select * from yibiao;
    +----+--------+---------+
    | id | name   | address |
    +----+--------+---------+
    |  1 | ermazi | no      |
    |  2 | ermazi | 北京    |
    |  3 | ermazi | 北京    |
    |  4 | ermazi | 北京    |
    |  5 | ermazi | 北京    |
    +----+--------+---------+
    5 rows in set (0.00 sec)
    
    
2.2.4:在数据表中删除指定的数据记录命令是?
  • delete from 表名 where条件表达式

    mysql> delete from yibiao where id=1;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from yibiao;
    +----+--------+---------+
    | id | name   | address |
    +----+--------+---------+
    |  2 | ermazi | 北京    |
    |  3 | ermazi | 北京    |
    |  4 | ermazi | 北京    |
    |  5 | ermazi | 北京    |
    +----+--------+---------+
    4 rows in set (0.00 sec)
    
    
  • 不带where条件的语句表示删除表中所有记录(谨慎操作)

    mysql> delete from yibiao;
    Query OK, 4 rows affected (0.00 sec)
    
    mysql> select * from yibiao;
    Empty set (0.00 sec)
    
    
2.2.5:查看表结构命令是?
mysql> desc yibiao;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(4)      | NO   | PRI | NULL    |       |
| name    | char(10)    | NO   |     | NULL    |       |
| address | varchar(50) | YES  |     | 66666   |       |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

2.3:DQL操作命令

2.3.1:DQL语句的作用是?
  • DQL是数据查询语句,只有一条:SELECT
  • 用于从数据表中查找符合条件的数据记录
2.3.2:不指定条件查询命令是?
  • SELECT字段名1,字段名2…FROM表名

    mysql> select name from yibiao;
    +--------+
    | name   |
    +--------+
    | 小包   |
    | 二包   |
    | 二包   |
    | 二包   |
    | 二包   |
    +--------+
    5 rows in set (0.00 sec)
    mysql> select name,address from yibiao;
    +--------+---------+
    | name   | address |
    +--------+---------+
    | 小包   | 北京    |
    | 二包   | 北京    |
    | 二包   | 北京    |
    | 二包   | 北京    |
    | 二包   | 北京    |
    +--------+---------+
    5 rows in set (0.00 sec)
    
    
2.3.3:指定条件查询的命令是?
  • SELECT字段名1,字段名2…FROM表名 WHERE条件表达式

    mysql> select name,address from yibiao where id=1 or id=3;
    +--------+---------+
    | name   | address |
    +--------+---------+
    | 小包   | 北京    |
    | 二包   | 北京    |
    +--------+---------+
    2 rows in set (0.00 sec)
    
    

2.4:DCL操作命令

2.4.1:DCL语句的作用是?
  • 设置或查看用户的权限,或者创建用户
2.4.2:设置用户权限的命令是?
  • 若用户已存在,则更改用户密码

  • 若用户不存在,则新建用户

  • GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY ‘密码′ ]

  • mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
    '//all privileges:所有权限,%:所有终端'
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    
2.4.3:查看用户权限的命令是?
  • SHOW GRANTS FOR 用户名@来源地址

    mysql> show grants for 'root'@'%';
    +-------------------------------------------------------------+
    | Grants for root@%                                           |
    +-------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
    +-------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    
2.4.4:撤销用户权限的命令是?
  • REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址

    mysql> revoke all privileges on *.* from 'root'@'%';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show grants for 'root'@'%';
    +----------------------------------------------------+
    | Grants for root@%                                  |
    +----------------------------------------------------+
    | GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION |
    +----------------------------------------------------+
    1 row in set (0.00 sec)
    
    

三:实例演示

3.1:建立公司IT运营部工资表,需求

  • 为公司建立员工工资数据库salary

  • 在salary数据库中,建立IT_salary数据表,以保存IT运营部员工的工资信息,如下表所示

    mark

3.2:实操

  • 建立数据库salary

    mysql> create database salary;
    Query OK, 1 row affected (0.01 sec)
    
    
  • 建立数据表IT_salary

    mysql> create table IT_salary(
        -> 岗位类型 varchar(32) not null,
        -> 姓名 char(16) not null,
        -> 年龄 tinyint not null,
        -> 员工ID smallint not null,
        -> 学历 char(16) default '大专',
        -> 年限 tinyint not null,
        -> 薪资 int not null,
        -> primary key (员工ID));
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> desc IT_salary;
    +--------------+-------------+------+-----+---------+-------+
    | Field        | Type        | Null | Key | Default | Extra |
    +--------------+-------------+------+-----+---------+-------+
    | 岗位类型     | varchar(32) | NO   |     | NULL    |       |
    | 姓名         | char(16)    | NO   |     | NULL    |       |
    | 年龄         | tinyint(4)  | NO   |     | NULL    |       |
    | 员工ID       | smallint(6) | NO   | PRI | NULL    |       |
    | 学历         | char(16)    | YES  |     | 大专    |       |
    | 年限         | tinyint(4)  | NO   |     | NULL    |       |
    | 薪资         | int(11)     | NO   |     | NULL    |       |
    +--------------+-------------+------+-----+---------+-------+
    7 rows in set (0.00 sec)
    
    
  • 填充数据

    mysql> insert into IT_salary values('网络工程师','孙空悟',27,011,'本科',3,4800);
    Query OK, 1 row affected (0.00 sec)
    mysql> select * from IT_salary;
    +-----------------+-----------+--------+----------+--------+--------+--------+
    | 岗位类型        | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |
    +-----------------+-----------+--------+----------+--------+--------+--------+
    | 网络工程师      | 孙空悟    |     27 |       11 | 本科   |      3 |   4800 |
    +-----------------+-----------+--------+----------+--------+--------+--------+
    1 row in set (0.00 sec)
    
    
  • 相同方法填充其他数据即可

四:Windows字符界面MySQL安装使用

4.1:准备软件包

  • 准备软件包,可官网下载,需要资源,也可私我
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-korFECAg-1577966867267)(D:\Typora\截图\1577964889874.png)]

4.2:安装

  • 双击打开后,一直下一步即可(点击next,excute,finish等)
  • mark
  • 全部一直下一步就行了
  • mark
  • mark

4.3:设置环境变量

  • 复制环境路径

    此电脑–C盘–Program Files–MySQL–MySQL Server 5.7–bin–复制路径

    mark

  • 设置环境

    右击此电脑–属性–高级系统设置–环境变量–系统变量中选中Path–编辑–粘贴路径

    mark

  • mark

五:Windows图形界面MySQL安装使用

5.1:准备软件包

  • 没有软件包可以私我

    mark

5.2:安装

mark

注册

mark

mark

mark

可以正常使用了,图形化界面操作不复杂。

发布了94 篇原创文章 · 获赞 60 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CN_TangZheng/article/details/103810370