MySql简介
- MySql是一款流行的开源数据库,Mysql分为社区本和企业版,
- MySql的优势MySQL的优势运行速度快,使用成本低,可移植性强,适用用户广。
- MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
- 数据以表格的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成database
RDBMS 术语
在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
- 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
表头(header): 每一列的名称;
列(col): 具有相同数据类型的数据的集合;
行(row): 每一行用来描述某条记录的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 键的值在当前列中具有唯一性。
MySql配置
- 默认端口3306
- Bin文件夹:存放可执行文件
- Include文件夹:存放头文件
- Lib文件夹:库文件
- share文件夹:该文件夹存放字符集,语言等信息。
- 通过my.ini修改配置文件
- Default-character-set:客户端默认字符集
- Character-set-server:服务器默认字符集
- port:客户端和服务器端的端口
- Default-storage-engine:MySql默认存储引擎
注意:
如果修改MySql的配置,则必须重新启动MySql服务后,修改的内容才能生效
打开服务的命令
Net start mysql
关闭服务
Net storp mysql
DOS窗口进入MySql数据库
语法:mysql -h 服务器主机地址 -u 用户名 -p 密码
登录后查看版本信息
select cersion(),user();
MySql数据库中的类型
MySql中的数据库分为系统数据库和用户数据库两大类
-
系统数据库
Information_schena:主要存储数据库中的一些数据库对象信息,如用户表信息,字段信息,字符信息和分区信息等。
Performance_scheam:主要存储数据库服务器性能参数
mysql:主要存储系统的用户权限信息
test:MySql数据库管理系统自动创建的测试数据库,任何用户都可以使用 -
用户数据库
用户数据库是用户根据实际需求创建的数据库。
操作数据库
1. 创建数据库
CREATE DATABASE 数据库名;
- 执行后发现:Query OK, 1 row affected (0.09 sec)
- Query OK:表示Sql语句执行成功
- 1 row affected :表示操作影响的行数
- (0.09 sec):表示操作执行的时间
2. 查看数据库列表
Show Databases;
- 执行后显示多个表,该表中除了新建的数据库外,还有四个系统数据库
3. 选择数据库
USE 数据库名;
- 数据存放在数据库表中,在对数据进行操作之前,需要确定该表所在的数据库,因此需要选择一个。
- 执行后显示:Database changed表示数据库已切换
5. 删除数据库
DROP DATABASE 数据库名;
使用Sql语句操作数据表
结构化查询语言
MySql中实现对数据库查询和操作的语言称为SQL,SQL的全称为结构化查询语言
SQL语言包括以下四部分
(1) DML(数据操作语言):用来插入,修改和删除表中的数据,如insert,update,delete语句。
(2) DDL(数据定义语言):在数据库中定义或者删除数据库对象等操作,如create,drop,alter 语句。
(3) DQL(数据查询语言):用来对数据库中的数据进行查询,如select。
(4) DCL(数据控制语言):用来控制数据库组件的存取许可,存取权限等,如grant,revome。
数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
- 数值类型
- MySQL支持所有标准SQL数值数据类型。
- 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
- 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
- BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
- 作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
- 字符串类型
- 日期类型
- 提示
MySql允许“不严格”语法:任何标点符号都可以用作日期部分之间的间隔符
创建表
建表的步骤
(1) 确定表中的那些字段
(2) 确定字段的数据类型
(3) 给表添加各种约束
(4) 创建表之间的关系
语法:
Create table [if not exists ]表明(
字段1 数据类型 [字段属性|约束] [索引] [注释],
字段2 数据类型 [字段属性|约束] [索引] [注释],
字段n 数据类型 [字段属性|约束] [索引] [注释]
)
数据的完整性是指数据的准确性和一致性。数据库是否具备数据完整性关系到数据库是否能真实的反应现实世界,因此数据库的完整性非常重要。
字段的约束及属性
非空约束 not null
默认约束 default
唯一约束 unique key(UK)
主键约束 primary key(PK)
外键约束 foreign key (FK)
自动增长 auto_increment
- 单字段主键
在定义字段的同时指定主键
在定义玩字段后指定主键 - 多字段联合主键
主键由多字段组成 - 查看表
Show tables
注意:在使用show tables 之前,必须先选择数据库,否则将会报错“No database selected” - 查看表的定义
Describe 表明;
desc 表; - 删除表
drop table [if exists] 表名; - MySql支持的存储引擎有InnoD,MyISAM,Memory,MRG_MyISAM,Archive,Federated,CSV,
BLACKHOLE等九种,可以使用show engines 语句查看系统所支持的引擎类型。 - 注释
可以为表和字段添加注释 comment - 编码格式设置
默认情况下是哟并mysql中的数据库,表和字段都是用MySql默认编码
用charset =字符集名
MySql常用引擎
MyISAM与InnoDB类型主要区别
- 使用MyISAM: 不需事务,空间小,以查询访问为主
- 使用InnoDB: 多删除、更新操作,安全性高,事务处理及并发控制
- MySql默认存储引擎InnoDB
可以用show varianles like ‘storage_engine%’
指定表的引擎
语法:create table 表名(
)Enginne=存储引擎
default-storage-engine= InnoDB
修改存储引擎
修改my.ini配置文件
提示:用的参考资料中,表中的引擎也称为表类型
数据表的存储位置
- MyISAM类型表文件
*.frm:表结构定义文件
*.MYD:数据文件
*.MYI:索引文件 - InnoDB类型表文件
*.frm:表结构定义文件
ibdata1文件
存储位置 - 因操作系统而异,可查my.ini
datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/”
innodb_data_home_dir=“D:/MySQL Datafiles/”
注意
MySql系统 帮助
语法:HELP 查询内容