MySQL简介
MySQL是一个关系型数据管理系统,有瑞典MySQL AB公司开发,2008年MySQL被SUN公司收购,在2009年,SUN公司被Oracle公司收购,自此两个主流数据库均归Oracle公司所有。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL版本
社区版:可自由下载且免费,但官方不提供任何技术支持,适用与大多数普通用户。
企业版:不能自由下载且收费,该版本提供了更多的功能,可以享受完备的技术支持,适用于对数据库的功能和可靠性要求比较高的企业用户。
MySQL的优势
- 运行速度快。MySQL体积小,命令执行的速度快。MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- 使用成本低。MySQL是开源的,企鹅提供免费版本,对大多数用户来说降低了使用成本。
- 容易使用。与其他大型数据库的设置和管理相比,其复杂程度低,易于使用。MySQL 使用标准的 SQL 数据语言形式。
- 可移植性强。MySQL能够运行于多种系统平台上。MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- 适用更多用户。MySQL支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用。
MySQL配置
端口设置
在设置networking options (网络选择)时,默认启用TCP/IP网络,默认端口为3306。
默认字符集设置
在默认语言编码字符集界面,可以通过三个选择用来设置字符集。
- Standard Character Set (标准字符集): MySQL提供的标准字符集默认为Latin1。 Latin1 是1ISO
8859-1的别名,有些环境下写作Latin-1.是单字节编码.除收录ASCI码字符外.还包括西欧语言。希腊语。秦语。阿拉伯语,希伯来语对应的文字符号。当数据库中需要使用到这些字符时,需设置为该字符集。 - Best Support For Mutilingualiem (支持多语言最好的字符集):默认值为utf8。
- Marnual Seleted Default Charecter Set/Collation
(人工选择的默认字符集/校对规则):如果需要手动设置服务器的默认字符集,可点选此单选按钮,从下拉列表中选择期望的字符集。
将bin目录写入环境变量
root账号密码设置
- bin文件夹,该文件夹下存放着可执行文件。
- include文件夹,该文件夹下存放着头文件。
- lib文件夹,该文件夹下存放着库文件。
- share文件夹,该文件夹下存放着字符集、语言等信息。
default-character-set: 客户端默认字符集。
character-set- server: 服务器端默认字符集。
port:客户端和服务器端的端口号。
default- storge- engine: MySOL 默认存储引擎。
命令行连接MySQL
当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:
mysql -h 主机名 -u 用户名 -p 密码
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost )该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录。
命令行方式操作MySQL数据库
MySQL 中数据库的类型
- information scherna: 主要存储系统中的一些数据库对象信息,如用户表信息、字段信息,权限信息、字符集信息和分区信息等。
- performance schema:主要存储数据库服务器性能参数。
- mysql: 主要存储系统的用户权限信息。
- test: MySOL数据库管理系统自动创建的测试数据库,任何用户都可以使用。
操作数据库
USE 数据库名: 选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表。
SHOW TABLES: 显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
SHOW COLUMNS FROM 数据表: 显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
SHOW INDEX FROM 数据表: 显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
MySQL 创建数据库
CREATE DATABASE 数据库名;
MySQL 删除数据库
drop database 数据库名;
MySQL 选择数据库
USE 数据库名;
MySQL 数据类型
- 数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1字节 | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2字节 | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3字节 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 字节 | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4字节 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度,.浮点数值 |
DOUBLE | 8 字节 | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度,浮点数值 |
DECIMAL | M+2字节 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
- 字符串类型
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
- 日期和时间类型
类型 | 大小( 字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
MySQL 创建数据表
CREATE TABLE 表明 (列 属性);
- 不想字段为 NULL 可以设置字段的属性为 NOT NULL。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
值为 “” 和 NULL 的概念:
- 空值是不占用空间的。
- MySQL中的NULL其实是占用空间的
所谓的 NULL 就是什么都没有,连 \0 都没有,\0 在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而 NULL 就是连这一个字节都没有。
MySQL 删除数据表
DROP TABLE 表明 ;