赞
踩
数据库管理的核心任务包括创建、操作和支持数据库。在MySQL中,每个数据库都对应存放在一个与数据库同名的文件夹中。MySQL数据库文件有.frm
、.MYD
、.MYI
3种,其中“.frm”是描述表结构的文件,“.MYD”是表的数据文件,“.MYI”是表数据文件中的索引文件。
# 查看当前所有存在的数据库
show databases;
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;
# 创建表
CREATE TABLE <表名>
(
<字段1><数据类型1>[<列级完整性约束条件1>]
[, <字段2><数据类型2>[<列级完整性约束条件2>] [,...]
[, <表级完整性约束条件1>]
[, <表级完整性约束条件2>] [,...]
);
在定义表结构的同时,还可以定义与该表相关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中的数据时,由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 (<字段名>)
表是数据库的组成对象,在创建表之前,先要通过命令USE打开操作的数据库。
USE database_name;
# 查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等。
DESCRIBE <表名>;
# 查看详细表结构,包括表名、创建该表的CREATE TABLE语句、存储引擎、字符集等信息。
# 加上参数“\G”后显示结构会更加直观
SHOW CREATE TABLE <表名>[\G];
# 显示当前数据库中表列表
SHOW TABLES;
# 修改指定表的结构
ALTER TABLE <表名>
{
[ADD <新字段名> <数据类型> [<列级完整性约束条件>] [FIRST |AFTER 已存在字段名]]
| [MODIFT <字段名1> <新数据类型> [<列级完整性约束条件>] [FIRST | AFTER 字段名2]]
| [CHANGE <旧字段名> <新字段名> <新数据类型>]
| [DROP <字段名> | <完整性约束名>]
| [RENAME [TO]<新表名>]
| [ENGINE=<更改后的存储引擎名>]
}
# 复制表结构及数据
CREATE TABLE 新表名 SELECT * FROM 旧表名;
# 只复制表结构
CREATE TABLE 新表名 SELECT * FROM 旧表名 WHERE 1=0;
# 删除表
DROP TABLE [IF EXISTS] <表名1>[, [表名2], ...];
通过DROP TABLE语句删除表,不仅会将表中的数据删除,还将删除表定义本身。如果只想删除表中的数据而保留表的定义,可以使用DELETE语句。
(最近更新:2019年09月03日)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。