MySQL数据库(一)

数据库概述

在这里插入图片描述
数据库(Database)简称DB,是按照数据结构来组织、存储和管理数据的仓库,其本身可看作电子化的文件柜。用户可以对文件中的数据进行增加、删除、修改、查找等操作。

随着数据库技术的不断发展,数据库产品越来越多,常见的有Oracle、SQL Server、MySQL等,它们各自的特点如下所述

Oracle:Oracle公司推出的数据库管理系统,在数据库领域一直处于领先地位,同时也是目前世界上流行的关系型数据库管理系统之一。它的优势在于移植性好、使用方便、功能性强,适用于各类大、中、小、微机环境。对于要求高效率、吞吐量大的项目而言是一个不错的选择。

SQL Server:Microsoft公司推出的关系型数据库管理系统,广泛应用于电子商务、银行、保险、电力等行业。因其易操作、界面良好等特点深受广大用户喜爱,但由于其只能在Windows平台上运行,并对操作系统的稳定性要求较高,因此很难处理日益增长的用户数量。

MySQL:开放源码的关系型数据库管理系统,采用GPL协议(General Public License,通用公共许可证)发布,这表示用户可以根据自己的需求进行修改。MySQL还具有跨平台性,不仅可以在Linux系统上使用,还可以在Windows、Mac OS等系统上使用。相对其他数据库而言,MySQL具有方便、快捷、免费等特点。

DB结构
在这里插入图片描述
数据表的横向被称为“行”,纵向被称为“列”,行列交叉处的数据被称为“值”。数据表中的的每一行内容被称为“记录”,每一列的列名称被称为“字段”。
在这里插入图片描述
是开放源码的关系型数据库管理系统。
由瑞典MySQL AB公司开发,先后被Sun和Oracle公司收购。
是最受欢迎的关系型数据库之一,尤其是在Web开发领域,MySQL依然占据着举足轻重的地位。
低成本:
 MySQL是开源免费的,开发人员可根据需求自由进行修改,降低了开发成本。
跨平台:
 不仅可在Windows平台上使用,还可在Linux、Mac OS等多达14种平台上使用。
高性能:
 多线程以及SQL算法的设计,使其可以充分利用CPU资源和提高查询速度。
上手快:
 MySQL 使用标准的 SQL数据语言形式,方便用户操作。
API接口:
 提供多种编程语言的API,方便操作数据库。例如Java、C、C++、PHP等。
 创建数据库就是在数据库系统中划分一块存储数据的空间。
基本语法格式如下:

CREATE DATABASE 数据库名称;

在这里插入图片描述

创建一个名称为 itcast 的数据库,SQL语句如下:
CREATE DATABASE `itcast`;
需要注意的是,为了避免用户自定义的名称与系统命令冲突,最好使用反引号(` `)包裹数据库名称、字段名称和数据表名称。

在这里插入图片描述
如果创建的数据库已存在,则程序会报错。因此,为了防止此情况的发生,在创建数据库时可以使用“IF NOT EXISTS”,具体如下:

CREATE DATABASE IF NOT EXISTS `itcast`;

上述SQL语句表示,若MySQL数据库服务器中不存在名称为itcast的数据库时,创建该数据库,否则不执行创建数据库itcast的操作。
在这里插入图片描述
查看 MySQL 数据库服务器中已经存在的数据库

SHOW DATABASES

在这里插入图片描述
删除数据库 itcast,SQL语句如下:

DROP DATABASE `itcast`;

MySQL 提供了多种数据类型,主要分为 3 类:
数值类型
字符串类型
日期与时间类型
MySQL提供了很多数值类型,大体可以分为整数类型和浮点类型。
整数类型根据取值范围分为 INT、SMALLINT等,
浮点类型又分为 FLOAT、DECIMAL等。
整数类型
在这里插入图片描述
浮点类型
在这里插入图片描述
DECIMAL类型的有效取值范围是有 M 和 D 决定。其中,M 表示数据长度,D 表示小数点后的长度。例如,数据类型设为 DECIMAL(4,1),将 3.1415926插入到数据库后,显示的结果为 3.1。
在这里插入图片描述
在这里插入图片描述
BLOB和TEXT都是用于存储大量数据的,但二者的区别在于,对于存储的数据进行排序和比较时,BLOB是区分大小写的,而TEXT是不区分大小写的。

数据类型—日期和时间类型
为方便在数据库中存储日期和时间,MySQL 提供了几种相关的数据类型,这些数据类型可以根据实际开发灵活选择。
在这里插入图片描述

存储引擎

InnoDB 存储引擎
MyISAM 存储引擎
MEMORY 存储引擎
ARCHIVE 存储引擎

InnoDB 存储引擎自 MySQL 5.5 版本起被指定为默认的存储引擎,用于完成事务、回滚、崩溃修复和多版本并发控制的事务安全处理。同时也是 MySQL中第一个提供外键约束的表引擎,尤其对事务处理的能力,是 MySQL 其他存储引擎所无法与之比拟的。
InnoDB 的优势在于提供了良好的事务管理、崩溃修复能力和并发控制。

MyISAM 存储引擎是基于 ISAM 存储引擎发展起来的,它不仅解决了 ISAM的很多不足,还增加了很多有用的扩展。
其中,对于使用 MyISAM 存储引擎的数据表,会被存储成3个文件,文件名与表名相同,文件扩展名分别为 frm、myd 和 myi。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在 MySQL 数据库中,使用 CREATE TABLE 语句创建数据表:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
[(
col_name  type [完整性约束条件],
col_name  type [完整性约束条件],
…
)][table_options] [select_statement];

在这里插入图片描述
① 在数据库中创建一个 itcast 数据库。SQL 语句如下:
CREATE DATABASE itcast;
USE itcast;
② 创建用户表 user,该表中有字段编号 id、用户名 user、密码password。具体 SQL 如下。

CREATE TABLE IF NOT EXISTS `user`(
  `id` INT UNSIGNED COMMENT '编号',
  `name` VARCHAR(32) COMMENT '用户名',
  `password` VARCHAR(32) COMMENT '密码'
)DEFAULT CHARSET=utf8;

上述SQL语句中,UNSIGNED用于设置字段数据类型是无符号的,COMMENT表示注释内容,“DEFAULT CHARSET=utf8”用于设置该表的默认字符编码为“utf8”。
在对数据表进行操作时,表名的位置也可以写成“数据库.表名”的形式,通过这种形式,将不需要使用“USE”选择数据库。

`itcast`.`user`

在选择数据库之后,如果想要查看某数据库中存在哪些数据表,可以使用如下 SQL 语句。

SHOW TABLES

对于已经创建的数据表,如果要查看表的结构,MySQL 提供了三种方法。
SHOW CREATE TABLE
DESCRIBE
SHOW COLUMNS
在这里插入图片描述
在这里插入图片描述
以查看数据表 user 中的所有字段,和指定字段 name 。

DESC `user`;
DESC `user` `name`

③ SHOW COLUMNS
MySQL 数据库中的 SHOW COLUMNS 语句也可以查看表结构:

# 语法格式1
SHOW [FULL] COLUMNS  FROM 数据表名 [FROM 数据库名];
# 语法格式2
SHOW [FULL] COLUMNS  FROM 数据库名.数据表名;

在下列语法格式中,以“#”开始部分是注释;FULL是可选项,加上FULL表示显示详细内容。

# 语法格式1
SHOW [FULL] COLUMNS  FROM 数据表名 [FROM 数据库名];
# 语法格式2
SHOW [FULL] COLUMNS  FROM 数据库名.数据表名;

下面使用 SHOW COLUMNS 语句查看 user 表的结构。

SHOW COLUMNS FROM `user`

对于创建好的数据表,有时会根据项目要求对其结构进行修改。修改表结构是指增加或者删除字段、修改字段名称或者字段类型、修改表名等。

ALTER [IGNORE] TABLE 数据表名 
ADD [COLUMN] create_definition [FIRST | AFTER column_name ] 	# 添加新字段
  |  CHANGE [COLUMN] old_col_name new_col_name  type	   # 修改字段名称及类型
  |  MODIFY [COLUMN] create_definition		   # 修改子句定义字段
  |  DROP [COLUMN] col_name			   # 删除字段
  |  RENAME [AS] new_tbl_name			   # 更改表名

① 添加新的字段
为 user 数据表添加描述字段 desc,要求数据类型为 CHAR(100)。

ALTER TABLE `user` ADD `desc` CHAR(100);

② 修改字段名称及类型
将 user 数据表中的描述字段 desc 的名称修改为 description,数据类型修改为 VARCHAR(100)。

ALTER TABLE `user` CHANGE `desc` `description` VARCHAR(100);

② 修改字段名称及类型
需要注意的是,在使用“CHANGE”时,必须为新字段名称设置数据类型,即使与原来的数据类型相同,也必须进行重新设置。此外,当修改后的数据类型无法容纳原有数据时,修改将会失败。
③ 修改字段数据类型
修改 user 数据表中的 description 字段,将其数据类型由 VARCHAR(100) 改为 VARCHAR(255)。

ALTER TABLE `user` MODIFY `description` VARCHAR(255);

④ 删除字段
删除 user 数据表中的字段 description,SQL 语句如下:

ALTER TABLE `user` DROP `description`;

⑤ 更改表名称
将数据表 user 的名称修改为 new_user,SQL 语句如下:

ALTER TABLE `user` RENAME `new_user`;

在这里插入图片描述
在这里插入图片描述
删除表结构
删除数据表使用 DROP TABLE 语句即可实现,语法格式如下。

DROP TABLE [IF EXISTS] 数据表名;
可选项“IF EXISTS”用于在删除一个不存在的数据表时,防止产生错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值