纯属个人自总结,若有错误,还请各位大佬提出宝贵建议

什么是数据库?

存放数据的仓库,仅仅是保存数据的一种方式,比平时的操作复杂一些,根本目的还是保存数据。

常见的数据库分为关系型数据库和非关系型数据库

关系型数据库

Oracle:MySQL(免费)、Oracle(收费)
IBM:DB2(收费)
微软:Microsoft SQL Server(收费)、Microsoft Access(收费)
优点:基于表保存数据,可以连接多张表做复杂的查询,支持事物。
缺点:速度较慢,基本都收费。

非关系型数据库

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
键值(Key-Value)存储数据库:Redis、OracleBDB
文档型数据库:MongoDB
特点:基于键值对保存数据,不需要经过SQL层解析所以速度快,通过减少用不到的功能提高产品性能。很多都是免费使用。

什么是MySQL?

mysql是最流行关系型数据库管理系统,是一个软件。
数据以表格的形式存在。

名词解释

DB(DataBase)数据库
DBMS(Database Management System)数据库管理系统
DBA(Database Administrator)数据库管理员,负责维护DBMS稳定、高效的运行。
SQL(Structured Query Language)结构化查询语言。数据库语言,可以操作数据库。

数据库下载及安装

下载地址:https://dev.mysql.com/downloads/ 安装:安装过程全部使用默认配置,仅修改密码,可以使用root

启动/停止数据库
第一种方式

windows系统需要开启,Linux直接进入即可

打开终端

启动MySQL:net start mysql

mysql收费吗 mysql付费吗_表名


停止MySQL:net stop mysql

mysql收费吗 mysql付费吗_mysql收费吗_02

如果出现启动时报错,找不到对应的服务名,那么说明没有配置path变量,如果配置了还不行,那么将 终端 以管理员身份运行;后面会讲怎么配置环境变量
输入net stop mysql57可以停止mysql服务端
输入net start mysql57可以启动mysql服务端

第二种方式

数据库分为客户端和服务端,数据保存在服务端,在系统中以服务的形式存在,服务名称以mysql开头。

通过window+r打开服务器, 输入services.msc 打开本地服务,找到mysql服务;手动停止或者启动;

mysql收费吗 mysql付费吗_表名_03

分析sql目录

bin目录:存放可执行文件
mysql.exe:客户端命令
mysqld.exe:服务端命令

环境变量配置

mysql.exe和mysqld.exe可以在控制台CLI(终端控制台)执行,与javac类似,如果不配置环境变量,执行时需要在控制台输入完整路径。
控制台完整路径:“C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe”

环境变量配置步骤

右键点击桌面“此电脑”->点击左侧“高级系统设置”->点击顶部“高级”选项卡->点击下方“环境变量”->选中path点编辑->新建
将C:\Program Files\MySQL\MySQL Server 5.7\bin(默认安装位置\bin)配置到环境变量中
配置完成后,重启CLI。可以直接输入mysql.exe

mysql登录与退出
mysql -uroot -proot

mysql收费吗 mysql付费吗_mysql收费吗_04

远程连接数据库
mysql -hIP地址 –uroot –proot

mysql收费吗 mysql付费吗_数据库_05


这里的客户端是一个exe程序,客户端本身无法保存数据,客户端连接到服务端后,可以将数据传输并保存到服务端。

所以如果我们操作数据库前,总是要先使用客户端程序mysql.exe连接到服务端。

安装了mysql服务端的电脑,我们也叫做mysql服务器。

退出数据库
quit或\q

mysql收费吗 mysql付费吗_mysql_06


mysql收费吗 mysql付费吗_mysql_07

退出终端(控制台)
exit

mysql收费吗 mysql付费吗_表名_08

数据库操作

一行语句输入完成后,回车是换行,不是执行,当语句中包含分号时,回车才会执行。
语法不区分大小写,单引号双引号内的文字区分大小写,关键字全部使用大写。
MySQL服务器可以建立若干数据库,在数据库中可以建表。
包含关系:MySQL服务器->数据库->表

查询数据库
SHOW DATABASES;   // 显示所有数据库

mysql收费吗 mysql付费吗_mysql收费吗_09

模糊查询数据库
SHOW DATABASES LIKE '%MY%';
%表示任意长度的字符串
_表示一个字符
创建数据库
CREATE DATABASE ZHOUGUNIANG DEFAULT CHARSET UTF8;
CREATE DATABASE IF NOT EXISTS NJWANGBO DEFAULT CHARSET UTF8;

mysql收费吗 mysql付费吗_表名_10

删除数据库
DROP DATABASE ZHOUGUNIANG;

mysql收费吗 mysql付费吗_mysql_11

表操作
选择数据库
USE ZHOUGUNIANG;

一个数据库中可以储存若干张表,表必须保存在数据库中。

可以把数据库看作是文件夹,表是文件夹中的文件,一个数据库中的表不能同名。

对表进行任何操作之前必须选择一个数据库,否则不知道你想操作哪个数据库中的表。

例如:

mysql收费吗 mysql付费吗_mysql收费吗_12

mysql收费吗 mysql付费吗_mysql_13

显示数据库中所有的表
SHOW TABLES;
创建表
分析字段

学生表该有哪些属性

T_STUDENT
T_ID  学号
T_NAME 姓名
T_AGE  年龄
T_SEX   性别
T_BIRTHDAY  生日
一个表,由列组成,且每一列必须指定存放的数据类型。
CREATE TABLE T_STUDENT (
      T_ID  CHAR(2),
      T_NAME  VARCHAR(20),
      T_AGE  INT,
      T_SEX   CHAR(2),
      T_BIRTHDAY DATE
);
创建表的三要素
  1. 表名称
  2. 表的字段
  3. 表的字段类型
MySQL常用数据类型

创建表时,必须确定每一个字段的数据类型,所以对常用数据类型必须很熟悉。
MySQL支持所有标准SQL数值数据类型。
以下列出常用数据类型:

数据类型

大小

描述

INT

4字节

整数,可以使1、2、3、4

FLOAT(M, D)

4字节

单精度浮点型,m总个数,d小数位

DOUBLE(M, D)

8字节

双精度浮点型,m总个数,d小数位

DECIMAL(5,2)

decimal是存储为字符串的浮点数,整数部分为3位,小数部分为2位

DATE

3字节

日期,格式:2016-01-01

INT

4字节

整数,可以使1、2、3、4

DATETIME

8字节

日期时间,格式:2016-01-01 01:01:01

CHAR(10)

0-255字节

固定分配10个字符长度

VARCHAR(10)

0-65535 字节

长度不确定,最多能存储10个字符,可变长度

BLOB

0-65 535字节

二进制形式的长文本数据,保存图片

TEXT

0-65 535字节

长文本数据,保存一篇文章

查看API《MYSQL5.1中文帮助文档.chm》了解完整的数据类型:11.列类型->11.1列类型概述
可以看到,字段的数据类型包括以下三种:

  1. 数值类型:INT、FLOAT、DOUBLE、DECIMAL
  2. 日期和事件类型DATE、DATETIME日期和事件类型DATE、DATETIME
  3. 字符串类型CHAR、VARCHAR、BLOB、TEXT

字符串类型CHAR、VARCHAR、BLOB、TEXTchar和varchar区别?

  1. CHAR长度固定,不满10个字符,使用空格表示。
    VARCHAR不固定,不满10个字符,不需要使用空格表示。
    VARCHAR比CHAR省空间
  2. VARCHAR比CHAR效率低
    VARCHAR类型的数据,存储时,数据库需要额外的计算出有多少长度的字符并且记录下来,在检索时,还要根据实际的长度获取,这样降低了效率,VARCHAR以时间换空间。
  3. 什么时候使用CHAr类型?VARCHAR类型
    性别用CHAR,手机号码11位用CHAR。
    字符串类型CHAR、VARCHAR、BLOB、TEXT
查看表结构
DESC  表名
如:DESC T_STUDENT

mysql收费吗 mysql付费吗_mysql收费吗_14

查看创建表的语句
SHOW CREATE TABLE 表名
如:SHOW CREATE TABLE T_STUDENT

mysql收费吗 mysql付费吗_mysql_15

删除表
DROP TABLE 表名
DROP TABLE IF EXISTS 表名

mysql收费吗 mysql付费吗_表名_16

编辑表

在实际使用中,一般表建立之后,不会修改表结构。
如果要修改表结构,应该先删表,再重新创建表,而不是直接编辑表字段。

修改表名

方法一:

RENAME TABLE T_旧表名 TO T_新表名;

mysql收费吗 mysql付费吗_数据库_17

方法二:

alter  table  旧表名 rename  新表名;

mysql收费吗 mysql付费吗_mysql_18

修改字段的类型
ALTER TABLE T_表名 MODIFY T_字段名 数据类型;
修改字段名及列类型
alter  table  表名  change 旧列名  新列名(可以保持不变) 新的类型;

通过change既可以修改列名也可以修改类型

mysql收费吗 mysql付费吗_mysql_19

给表添加一个字段
ALTER TABLE T_表名 ADD T_字段名 数据类型;

mysql收费吗 mysql付费吗_表名_20

删除一个字段
ALTER TABLE T_表名 DROP T_字段名;
alter  table  表名  drop  column 列名;

mysql收费吗 mysql付费吗_表名_21

总结

找规律
创建数据库CREATE DATABASE 库名…
创建表CREATE TABLE 表明…
删除表DROP TABLE 表名
修改表 ALTER TABLE 表名

DDL数据定义语言(Data Definition Language):只操作对象,不会操作具体数据

CREATE 创建数据库和数据库中的对象
DROP 删除数据库和数据库中的对象
ALTER 修改数据库和数据库中的对象