MySQL学习

1. MySQL概述

        在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。

1.1 数据库相关概念

        在这一部分,我们先来讲解三个概念:数据库、数据库管理系统、SQL。

名称全称简称
数据库存储数据的仓库,数据是有组织的进行存储
DataBase DB
数据库管理系统
操纵和管理数据库的大型软件
DataBase Management
System (DBMS)
SQL
操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
Structured Query
Language (SQL)
  • Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。
  • MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。
  • 目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。SQL ServerMicrosoft 公司推出的收费的中型数据库,C#.net等语言常用。
  • PostgreSQL:开源免费的中小型数据库。
  • DB2IBM公司的大型收费数据库产品。
  • SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
  • MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与MySQL数据库有很好的兼容性。

 

        而不论我们使用的是上面的哪一个关系型数据库,最终在操作时,都是使用SQL语言来进行统一操作, 因为我们前面讲到SQL语言,是操作关系型数据库的统一标准 。所以即使我们现在学习的是MySQL, 假如我们以后到了公司,使用的是别的关系型数据库,如:OracleDB2SQLServer,也完全不用担心,因为操作的方式都是一致的。

1.2 数据库指令

1.2.1 启动停止

        MySQL安装完成之后,在系统启动时,会自动启动 MySQL 服务,我们无需手动启动了。 当然,也可以手动的通过指令启动停止,以管理员身份运行cmd ,进入命令行执行如下指令:
net start mysql80
net stop mysql80

1.2.2 客户端连接

        方式一:使用MySQL提供的客户端命令行工具

        方式二:使用系统自带的命令行工具执行指令
mysql [-h 127.0.0.1] [-P 3306] -u root -p
参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
        [ ]内为可选参数,如果需要连接远程的 MySQL ,需要加上这两个参数来指定远程主机 IP 、端口,如果连接本地的MySQL ,则无需指定这两个参数。

1.3 数据模型

1.3.1 关系型数据库(RDBMS

        概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
        而所谓二维表,指的是由行和列组成的表,如下图(就类似于Excel 表格数据,有表头、有列、有行,还可以通过一列关联另外一个表格中的某一列数据)。我们之前提到的MySQL Oracle DB2 、SQLServer这些都是属于关系型数据库,里面都是基于二维表存储数据的。简单说,基于二维表存储数据的数据库就成为关系型数据库,不是基于二维表存储数据的数据库,就是非关系型数据库。
 
特点:
        使用表存储数据,格式统一,便于维护。
        使用SQL 语言操作,标准统一,使用方便。

 2. SQL

        全称 Structured Query Language ,结构化查询语言。操作关系型数据库的编程语言,定义了
一套操作关系型数据库统一 标准

2.1 SQL通用语法

        在学习具体的SQL 语句之前,先来了解一下 SQL 语言的同于语法。
                1). SQL语句可以单行或多行书写,以分号结尾。
                2). SQL语句可以使用空格/ 缩进来增强语句的可读性。
                3). MySQL数据库的SQL 语句不区分大小写,关键字建议使用大写。
                4). 注释:
                        单行注释:-- 注释内容 # 注释内容
                        多行注释:/* 注释内容 */

2.2 SQL分类

SQL 语句,根据其功能,主要分为四类: DDL DML DQL DCL

 

分类
全称
说明
DDL
Data Definition
Language
数据定义语言,用来定义数据库对象 ( 数据库,表,字段)
DML
Data Manipulation
Language
数据操作语言,用来对数据库表中的数据进行增删改
DQL
Data Query Language
数据查询语言,用来查询数据库中表的记录
DCL
Data Control Language
数据控制语言,用来创建数据库用户、控制数据库的访问权限

 2.3 DDL

Data Definition Language ,数据定义语言,用来定义数据库对象 ( 数据库,表,字段 )

2.3.1 数据库操作

1). 查询所有数据库
show databases ;

 2). 查询当前数据库

select database() ;
3). 创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序
规则 ] ;
4). 删除数据库
drop database [ if exists ] 数据库名 ;
5). 切换数据库
use 数据库名 ;

2.3.2 表操作

2.3.2.1 表操作-查询创建
1). 查询当前数据库所有表
show tables;
2). 查看指定表结构
desc 表名 ;
3). 查询指定表的建表语句
show create table 表名 ;
        通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。
4). 创建表结构
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;
注意: [...] 内为可选参数,最后一个字段后面没有逗号
2.3.2.2 表操作-数据类型
        在上述的建表语句中,我们在指定字段的数据类型时,用到了int varchar ,那么在 MySQL 中除了以上的数据类型,还有哪些常见的数据类型呢? 接下来, 我们就来详细介绍一下 MySQL 的数据类型。
        MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
1). 数值类型
类型
大小
有符号(SIGNED)范围
无符号(UNSIGNED)范围
描述
TINYINT
1byte
(-128 127)
(0 255)
小整数值
SMALLINT
2bytes
(-32768 32767)
(0 65535)
大整数值
MEDIUMINT
3bytes
(-8388608 8388607)
(0 16777215)
大整数值
INT/INTEGER
4bytes
(-2147483648
2147483647)
(0 4294967295)
大整数值
BIGINT
8bytes
(-2^63 2^63-1)
(0 2^64-1)
极大整数值
FLOAT
4bytes
(-3.402823466 E+38,
3.402823466351 E+38)
0 (1.175494351 E-
38 3.402823466 E+38)
单精度浮点数值
DOUBLE
8bytes
(-1.7976931348623157
E+308
1.7976931348623157
E+308)
0 和 (2.2250738585072014
E-308
1.7976931348623157
E+308)
双精度浮点数值
DECIMAL
依赖于 M( 精度 ) D( 标度 )的值
依赖于 M( 精度 ) D( 标度 ) 的值
小数值( 精确定点数)
2). 字符串类型
类型
大小
描述
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
极大文本数据
        char 与 varchar 都可以描述字符串, char 是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar 是变长字符串,指定的长度为最大占用长度 。相对来说, char 的性能会更高些。
3). 日期时间类型
类型
大小
范围
格式
描述
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:01
2038-01-19 03:14:07
YYYY-MM-DD
HH:MM:SS
混合日期和时
间值,时间戳
2.3.2.3 表操作-修改
1). 添加字段
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
案例 :
        为emp 表增加一个新的字段 昵称 nickname ,类型为 varchar(20)
ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';
2). 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
3). 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
案例 :
        将emp 表的 nickname 字段修改为 username ,类型为 varchar(30)
ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '昵称';
4). 删除字段
ALTER TABLE 表名 DROP 字段名;
案例 :
        将emp 表的字段 username 删除
ALTER TABLE emp DROP username;
5). 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
案例 :
        将emp 表的表名修改为 employee
ALTER TABLE emp RENAME TO employee;
2.3.2.4 表操作-删除
1). 删除表
DROP TABLE [ IF EXISTS ] 表名;
        可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作 ( 如果不加该参数项,删除一张不存在的表,执行将会报错)
2). 删除指定表 , 并重新创建表
TRUNCATE TABLE 表名;
注意: 在删除表的时候,表中的全部数据也都会被删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值