您现在的位置是:首页 >其他 >Mysql数据库简介网站首页其他

Mysql数据库简介

Naive` 2024-07-01 11:59:42
简介Mysql数据库简介

一、数据库

  • 数据库(DateBase)

    按照一定格式存储数据的一些文件的组合,顾名思义就是存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据 。数据库管理数据有诸多优点,如降低存储数据的冗余度,存储的数据可以共享,便于维护数据完整性,能够实现数据的安全性等。数据库的发展经历了萌芽、初级、中级、和高级阶段。

  • 数据库管理系统(DateBaseManagement)

    简称DBMS,数据库管理系统是专门用来管理数据库中的数据的,可以对数据库当中的数据进行增删改查 常见的数据库管理系统:MySql、Oracle、MS SQLServer、DB2、sybase等…

  • SQL(Structured Query Language)

    结构化查询语言。 SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL在MySql中可以使用,同时在Oracle中也可以使用,在DB2中也可以使用 。

三者之间的关系:DBMS通过执行SQL语句来操作DB中的数据

二、数据库基本操作

1、查看数据库

在 MySQL 数据库中存在系统数据库和自定义数据库,系统数据库是在安装 MySQL 后系统自带的数据库,自定义数据库是由用户定义创建的数据库。

可使用 show databases语句来查看有哪些数据库

语法格式:

show databases;

sql语句的结尾都是以;结束

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

MySql 5.7系统默认自带4个数据库,information_schema、mysql、performation_schema、sys

  • information_schema

    该数据库中包含了当前系统中所有的数据库、表、列、索引、视图等相关的元数据信息,是MySql自身信息元数据的存储库。该数据库内主要包含了以下一些表:

    • SCHEMATA:列举了当前系统中所有的数据库。
    • TABLES:列举了当前系统中所有数据库中的表名。
    • COLUMNS:列举了所有表中的字段信息。
    • KEY_COLUMN_USAGE:列举了表中所有的索引、外键信息。
    • STATISTICS:包含所有表的索引及其统计信息。
  • mysql

    该数据库是MySql系统中的操作和访问权限控制的核心,存放了关于用户账户、权限、等级、密码等的信息。该数据库内主要包含如下几张表:

    • user:记录了系统中每个用户的权限信息。
    • db:记录了系统允许的用户在哪些数据库中拥有什么样的权限。
    • host:记录允许连接MySQL服务器的主机名。
  • performation_schema

    该数据库是MySql中用于对MySql本身的性能监控的仪表盘。该数据库内主要包含如下几张表:

    • file_instances:用于监控文件IO操作的性能统计数据。
    • events:用于监控MySql执行过程中的各种事件,如SQL分析、SQL执行、锁等等。
    • sessions:用于监控当前MySql系统内所有活跃的会话信息。
  • sys

    该数据库是MySQL自带的一个视图工具,在MySQL5.7以上版本中引入,主要用于高效访问和展示MySQL系统的详细信息,是方便用户进行MySQL系统管理的工具。该数据库中主要提供了一些视图:

    • sys.session:展示当前MySQL系统中活动的所有会话。
    • sys.processlist:展示当前MySQL系统中正在运行的所有进程。
    • sys.schema_auto_increment_columns:展示数据库中所有带自增字段的表的信息,以便查看自增值的情况。

可以使用show create database查看数据库的定义声明,语法格式:

show create database <数据库名>;

在这里插入图片描述

2、选择数据库

在操作数据库之前就必须要确定使用哪一个数据库,使用use语句选择使用某个数据库

语法格式:

user <数据库名>;
mysql> use student;
Database changed			# 出现“Database changed”提示,则表示选择数据库成功

3、创建数据库

使用 create database 语句创建数据库,语法格式如下:

create database [if not exists] <数据库名>
[[default] character set <字符集名>] 
[[default] collate <校对规则名>];
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
# "Query OK"表示上面的命令执行成功,"1 row affected"表示操作只影响了数据库中一行的记录,“0.00 sec”则记录了操作执行的时间。

4、删除数据库

删除数据库是将已经存在的数据库从磁盘空间上清除,当需要删除已创建的数据库时,可以使用 drop database语句。其语法格式为:

drop database [if exists] <数据库名>;
mysql> drop database if exists test;
Query OK, 0 rows affected (0.23 sec)

三、MySql的注释

MySQL 注释分为单行注释和多行注释

1、单行注释

  • 单行注释可以使用#注释符,#注释符后直接加注释内容。格式如下:
#注释内容
  • 单行注释可以使用--注释符,--注释符后需要加一个空格,注释才能生效。格式如下:
-- 注释内容

2、多行注释

多行注释使用/* */注释符。/*用于注释内容的开头,*/用于注释内容的结尾。多行注释格式如下:

/*
  第一行注释内容
  第二行注释内容
*/

四、数据表的基本操作

1、查看数据表

  • 使用 show tables语句来查看当前数据库中有哪些数据表

语法格式:

show tables;
mysql> show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| class             |
| course            |
| grade             |
| student           |
+-------------------+
4 rows in set (0.00 sec)
  • 使用 desc(describe)show create table 命令来查看数据表的结构。其语法格式如下:
desc <表名>;
show create table <表名>;
mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO    | int(4)      | NO   | PRI | NULL    |       |
| ENAME    | varchar(10) | YES  | MUL | NULL    |       |
| JOB      | varchar(9)  | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
  • Null:表示该列是否可以存储 NULL 值。
  • Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分,UNI 表示该列是 unique 索引的一部分,MUL 表示在列中某个给定值允许出现多次。
  • Default:表示该列是否有默认值,如果有,值是多少。
  • Extra:表示可以获取的与给定列有关的附加信息,如 AUTO_INCREMENT 等。

2、创建数据表

使用 create table 语句创建表。其语法格式为:

create table 表名(
        字段名1 数据类型 [表定义选项],
        字段名2 数据类型 [表定义选项],
        字段名3 数据类型 [表定义选项]
);

表名和字段名(列名)都属于标识符,表定义选项用于设置空值说明、完整性约束等

表名:命令建议以t_ 或者tbl_开头,可读性强,见名知意。

  • MySql中的数据类型

    MySql 的数据类型有大概可以分为 5 种,分别是整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型等

    常用常用的数据类型:

    • 数值型

      数据类型说明
      int(4字节)整型,类似java中的int
      bigint(8字节)大整数,类似java中的long
      float(4字节)单精度浮点数
      double(8字节)双精度浮点数
    • 字符串型

      类型说明优点缺点
      char(1~255字节)定长字符串不管实际的数据长度是多少。分配固定长度的空间去存储数据。不需要动态分配空间,速度快使用不恰当的时候,可能会导致空间的浪费
      varchar(1~255字节)可变长度的字符串比较智能,节省空间。会根据实际的数据长度动态分配空间需要动态分配空间,速度慢
    • 日期型

      数据类型说明
      date(3字节)时间格式:YYYY-MM-DD
      datetime(8字节)时间格式:YYYY-MM-DD HH:MM:SS

      MySQL 允许“不严格”语法:任何标点符号都可以用作日期部分之间的间隔符。例如,‘2000-02-11’、‘2000.02.11’、‘2000/02/11’和’2000@02@11’ 是等价的,这些值也可以正确地插入数据库。

    • 二进制大对象(Binary Large Object)

      数据类型说明
      blob专门用来存储图片、声音、视频等流媒体数据。
      往blob类型的字段上插入数据的时候,例如插入一个图片、视频等,需要使用IO流才行。

例如:创建一个学生表,有学号、姓名、年龄、邮箱地址字段

create table t_student(
	no int,
    name varchar(255),
    age int(3),
    email varchar(255)
);

在这里插入图片描述

3、修改数据表

可以使用 alter table语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。

其语法格式如下:

alter table <表名> [修改选项]

修改选项的语法格式如下:

{ ADD [COLUMN] <列名> <类型>
 | CHANGE [COLUMN] <旧列名> <新列名> <新列类型>
 | ALTER [COLUMN] <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
 | MODIFY [COLUMN] <列名> <类型>
 | DROP [COLUMN] <列名>
 | RENAME [TO] <新表名>
 | CHARACTER SET <字符集名>
 | COLLATE <校对规则名> }
# 修改表名
alter table <旧表名> rename [to] <新表名>;
# 修改表字符集
alter table <表名> [default] character set <字符集名> [default] collate <校对规则名>;
# 修改字段
alter table <表名> change <旧字段名> <新字段名> <新数据类型>;
# 修改字段数据类型
alter table <表名> modify <字段名> <数据类型>
# 添加字段
alter table <表名> add <字段名> <数据类型> 
# 删除字段
alter table <表名> drop <字段名>;

changemodify的区别?

  • modify一般用于修改列属性(例如:数据类型,约束等),但是不能修改字段名。修改字段名称应使用change

  • change既可以用于修改字段名,也可以用于修改列属性

在这里插入图片描述

  • 给数据表添加字段

    数据表添加字段可以在开头、中间和结尾处添加字段

    • 在开头添加字段

      alter table <表名> add <新字段名> <数据类型> [约束条件] first;
      
    • 在中间位置添加字段

      alter table <表名> add <新字段名> <数据类型> [约束条件] after <已经存在的字段名>;
      
    • 在末位添加字段

      alter table <表名> add <新字段名> <数据类型> [约束条件];
      

4、删除数据表

删除表的同时,表的结构和表中所有的数据都会被删除。使用 drop table语句可以删除一个或多个数据表,语法格式如下:

drop table [if exists] <表名1>[,表名2,...]
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。