MySQL数据库管理(基础命令+SQL语句介绍)

前言:
  • MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一

  • MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,-目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

一、数据库基本操作命令
1.1 基本操作命令
  • Mysql管理操作

    查看数据库结构

    创建及删除库和表

    管理表记录

数据库的基本结构:

先有实例(代表数据库的节点、服务器)——》包含多个数据库——》数据库中放了多个表——》 表由记录和字段组成

1.2 查看数据库列表信息

示例

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

mysql> 
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               |
| gtid_executed             |
| help_category             |
.............省略部分内容
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                     |       |
| Update_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv          | enum('N','Y')                     | NO   |     | N                     |       |
.............省略部分内容	

数据表的结构

第一字段 Field每条(行)代表的是字段

第二字段 Type代表是此条字段可以写什么样的数据类型

字段中定义了各个类型及是否为默认

第三字段 Null代表此条字段是否可以为空

第四字段 Key 主键 PRI(primary)代表是否为主键 ,主键可以有组合组件,多个字段组成一个组件

第五字段 Default 默认字段,当设置没有输入内容时,生成的表显示的就是默认字段,可以设置默认字段为一个固定值,例如设置默认字段为:nj,则之后创建如果没有设置此字段,表中此项默认为:nj。

第六字段 Extra 扩展 扩展可以显示标识符列:(引申概念:种子、增量,例如种子为1 增量为1,则生成一条记录时,id为1 第二个记录为2)不可人为修改

二、SQL语句概述
  • SQL语言

    是Structured Query Language的缩写,即结构化查询语言

    是关系型数据库的标准语言

    用于维护管理数据库,如数据查询、数据更新、访问控制、对象管理等功能

  • SQL分类

    DDL:数据定义语言

    DML:数据操纵语言

    DQL:数据查询语言

    DCL:数据控制语言

2.1 DDL语句操作
  • DDL语句用于创建数据库对象,如库、表、索引等

  • 使用DDL语句新建库、表

    创建数据库:create database auth;

    创建数据表:create table users (写各字段定义)

mysql> create database auth;  #创建数据表auth
Query OK, 1 row affected (0.00 sec)
mysql> create table users(id int primary key,name char(10));   					#定义表结构
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+----------------+
| Tables_in_auth |
+----------------+
| users          |
+----------------+
1 row in set (0.00 sec)
  • 使用DDL语句删除库、表

    删除指定的数据表:DROP TABLE [数据库名.]表名

    删除指定的数据库:DROP DATABASE 数据库名

mysql> drop table auth.users;
Query OK, 0 rows affected (0.01 sec)
mysql> drop database auth;
Query OK, 0 rows affected (0.00 sec)
2.2 DML语句操作
  • DML语句用于对表中的数据进行管理

  • 包括以下操作

    insert :插入新数据

    update:更新原有数据

    delete:删除不需要的数据

2.2.1 向数据表中插入新的数据记录
  • insert into 表名(字段1,字段2,…) values(字段1的值,字段2的值,…)
mysql> show tables;   #重新创建auth数据库和users表
+----------------+
| Tables_in_auth |
+----------------+
| users          |
+----------------+
1 row in set (0.00 sec)

DML语句用于对表中的数据进行管理

包括以下操作

INSERT:插入新数据

UPDATE:更新原有数据

DELETE:删除不需要的数据

insert into(固定搭配)

定义:int 数值 char字符串

也可以不跟字段,直接跟users values

示例:

mysql> insert into users(id,name) values(1,'changzhi');
Query OK, 1 row affected (0.06 sec)

mysql> select * from users;
+----+----------+
| id | name     |
+----+----------+
|  1 | changzhi |
+----+----------+
1 row in set (0.00 sec)
###也可以使用以下方式插入新数据
mysql> insert into users values(2,'jiaoshou');
Query OK, 1 row affected (0.01 sec)

mysql> select * from users;
+----+----------+
| id | name     |
+----+----------+
|  1 | changzhi |
|  2 | jiaoshou |
+----+----------+
2 rows in set (0.00 sec)
  • 修改、更新数据表中的数据记录

    格式:update 表名 set 字段名1=值1[,字段2=值2] where 条件表达式

mysql> update auth.users set name='zhangsan' where name='changzhi';  #将changzhi 修改为zhangsan
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from users;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | jiaoshou |
+----+----------+
2 rows in set (0.00 sec)

mysql> 
  • 在数据库中删除指定的数据记录

    格式:delete from 表名 where 条件表达式

    示例

mysql> delete from auth.users where name='zhangsan';
Query OK, 1 row affected (0.00 sec) 
#删除auth数据库users表中名为‘zhangsan’记录
mysql> select * from users;
+----+----------+
| id | name     |
+----+----------+
|  2 | jiaoshou |
+----+----------+
1 row in set (0.00 sec)

mysql> 

若不带where条件的语句表示删除表中所有记录

格式:delete from auth.users;

2.3 DQL语句操作
  • DQL是数据查询语句,只有一条:select

  • 用于从数据表中查找符合条件的数据记录

  • 查询时可不指定条件

    select 字段名1,字段名2…from 表名

    示例

mysql> select * from auth.users;
+----+----------+
| id | name     |
+----+----------+
|  2 | jiaoshou |
+----+----------+
1 row in set (0.01 sec)

mysql> ^C
  • 查询时指定条件

    select 字段名1,字段名2…from 表名 where 条件表达式

mysql> select name from auth.users where name='jiaoshou';
+----------+
| name     |
+----------+
| jiaoshou |
+----------+
1 row in set (0.01 sec)

mysql> 
2.4 DCL语句操作
  • 设置用户权限(用户不存在时,则新建用户)

格式:grant 权限列表 on 数据库名.表名 to 用户名@来源地址 [identified by ‘密码’]

grant all privileges on *.* to 'root'@'192.168.181.%' identified by 'abc123' with grant option; #允许192.168.181.0网段使用root账号复制所有数据库数据,登录密码为‘abc123’
mysql> grant all privileges on *.* to 'root'@'192.168.181.%' identified by 'abc123' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)
#允许192.168.181.0网段使用root账号复制所有数据库数据,登录密码为‘abc123’
  • 查看用户的权限

格式:show grants for 用户名@来源地址

mysql> show grants for 'root'@'192.168.181.%';
+-------------------------------------------------------------------------+
| Grants for root@192.168.181.%                                           |
+-------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.181.%' WITH GRANT OPTION |
+-------------------------------------------------------------------------+
1 row in set (0.00 sec)
  • 撤销用户的权限

格式:remove 权限列表 on 数据库名.表名 from 用户名@来源地址

mysql> revoke all privileges on *.* from 'root'@'192.168.181.%';
Query OK, 0 rows affected (0.00 sec)
三、实验案例

需求

  • 为公司建立员工工资数据库 imployee_salary
  • 在imployee_salary数据库中,建立 IT_salary数据表,以保存IT运营部员工的工资信息,如下表所示
    在这里插入图片描述

步骤一

  • 创建一个新的数据库salary
mysql> create database salary;
Query OK, 1 row affected (0.00 sec)
  • 建立数据表IT_salary
mysql> create table IT_salary(岗位类型 varchar(30) not null,姓名 char(16) not null,年龄 tinyint not null,员工ID smallint not null primary key,学历 char(16) default '大专',年限 tinyint not null,薪资 int not null);
Query OK, 0 rows affected (0.02 sec)

mysql> describe IT_salary;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| 岗位类型     | varchar(30) | 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^C
mysql> select * from IT_salary;
+-----------------+-----------+--------+----------+--------+--------+--------+
| 岗位类型        | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |
+-----------------+-----------+--------+----------+--------+--------+--------+
| 网络工程师      | 孙空武    |     27 |       11 | 本科   |      3 |   4800 |
+-----------------+-----------+--------+----------+--------+--------+--------+
1 row in set (0.00 sec)

同理输入其他数据即可。


----------------+-----------+--------+----------+--------+--------+--------+
| 岗位类型        | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |
+-----------------+-----------+--------+----------+--------+--------+--------+
| 网络工程师      | 孙空武    |     27 |       11 | 本科   |      3 |   4800 |
+-----------------+-----------+--------+----------+--------+--------+--------+
1 row in set (0.00 sec)

总结:

本篇博客主要讲述了数据库管理,之后会介绍数据库中索引、事务、视图、存储过程和存储引擎的理论和使用方法~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值