当前位置:   article > 正文

数据库:创建与维护MySQL数据库_在创建数据库时,每个数据库都对应存放

在创建数据库时,每个数据库都对应存放

了解MySQL数据库

数据库管理的核心任务包括创建、操作和支持数据库。在MySQL中,每个数据库都对应存放在一个与数据库同名的文件夹中。MySQL数据库文件有.frm.MYD.MYI3种,其中“.frm”是描述表结构的文件,“.MYD”是表的数据文件,“.MYI”是表数据文件中的索引文件。

# 查看当前所有存在的数据库
show databases;
  • 1
  • 2

MySQL安装完成之后,将会在其data目录下自动创建以下4个数据库:

  • information_schema:保存关于MySQL服务器维护的所有其他数据库的信息,如数据库名、数据库的表、表栏的数据类型与访问权限等。

  • mysql:描述用户访问权限

  • performance_schema:主要用于收集数据库服务器性能参数

  • sys:通过视图的形式把information_schema和performance_dance结合起来,查询出更加容易理解的数据存储过程,可以执行一些性能方面的配置,也可以得到一些性能诊断报告内容。

不要随意删除系统自带的数据库,否则MySQL不能正常运行。

# 创建数据库
CREATE DATABASE database_name;

# 打开数据库
USE database_name;

# 删除数据库
DROP DATABASE database_name;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

创建表

# 创建表
CREATE TABLE <表名>
(
    <字段1><数据类型1>[<列级完整性约束条件1>]
    [, <字段2><数据类型2>[<列级完整性约束条件2>] [,...]
    [, <表级完整性约束条件1>]
    [, <表级完整性约束条件2>] [,...]
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
完整性约束

在定义表结构的同时,还可以定义与该表相关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中的数据时,由DBMS自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及该表的多个属性列,则必须定义在表级上,其他情况既可以定义在列级上,也可以定义在表级上。

列级完整性约束条件:

  • PRIMARY KEY:指定该字段为主键

  • NULL/NOT NULL:指定的字段允许为空/不允许为空,如果没有约束条件,则默认为NULL。

  • UNIQUE:指定字段取值唯一,即每条记录指定字段的值不能重复。如果指定了NOT NULL和UNIQUE,就相当于指定了PRIMARY KEY。

  • DEFAULT <默认值>:指定设置字段的默认值。

  • AUTO-INCREMENT:指定设置字段的值自动增加。

  • CHECK(条件表达式):用于检验输入值,拒绝接收不满足条件的值。

表级完整性约束条件:

  • PRIMARY KEY:用于定义表级主键约束。

  • FOREIGN KEY:用于设置参照完整性规则,即指定某字段为外键。

  • UNIQUE既可用于列级完整性约束,也可以用于表级完整性约束。

# 表级完整性约束

CONSTRAINT <约束名> PRIMARY KEY [CLUSTERED] (字段名1, 字段名2, ..., 字段名n)

CONSTRAINT <约束名> FOREIGN KEY <外键> REFERENCES <被参照表(主键)>

CONSTRAINT <约束名> UNIQUE (<字段名>)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

表是数据库的组成对象,在创建表之前,先要通过命令USE打开操作的数据库。

USE database_name;
  • 1

维护表

# 查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等。
DESCRIBE <表名>;

# 查看详细表结构,包括表名、创建该表的CREATE TABLE语句、存储引擎、字符集等信息。
# 加上参数“\G”后显示结构会更加直观
SHOW CREATE TABLE <表名>[\G];

# 显示当前数据库中表列表
SHOW TABLES;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

修改表

# 修改指定表的结构
ALTER TABLE <表名>
{
    [ADD <新字段名> <数据类型> [<列级完整性约束条件>] [FIRST |AFTER 已存在字段名]]
    | [MODIFT <字段名1> <新数据类型> [<列级完整性约束条件>] [FIRST | AFTER 字段名2]]
    | [CHANGE <旧字段名> <新字段名> <新数据类型>]
    | [DROP <字段名> | <完整性约束名>]
    | [RENAME [TO]<新表名>]
    | [ENGINE=<更改后的存储引擎名>]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

复制表

# 复制表结构及数据
CREATE TABLE 新表名 SELECT * FROM 旧表名;

# 只复制表结构
CREATE TABLE 新表名 SELECT * FROM 旧表名 WHERE 1=0;
  • 1
  • 2
  • 3
  • 4
  • 5

删除表

# 删除表
DROP TABLE [IF EXISTS] <表名1>[, [表名2], ...];
  • 1
  • 2

通过DROP TABLE语句删除表,不仅会将表中的数据删除,还将删除表定义本身。如果只想删除表中的数据而保留表的定义,可以使用DELETE语句。

(最近更新:2019年09月03日)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/764097
推荐阅读
相关标签
  

闽ICP备14008679号