目录
三:MySQL数据模型
在前面的学习中,我们可以了解到,MySQL是一种关系型数据库
,那么什么是关系型数据库呢?
1.关系型数据库
(1)定义:关系型数据库是是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表
组成的数据库。(二维表可以简单的理解为Excel表格)
(2)优点:
①:都是使用表结构,格式一致,易于维护。
②:都是通用的SQL语言操作,使用方便,可用于复杂查询。
③:数据存储在磁盘中,比较安全。
(3)工作流程:
用户可以通过远程或者本地通过客户端
,访问数据库管理系统
,创建单个或者多个数据库
文件,在数据库里有多个或一个数据表
,数据表可以用来存储数据
。
四:SQL相关用法
1.SQL基本概念
Structured Query Language,简称SQL,是结构化查询语言,用来操作关系型数据库
的一门编程语言;它定义操作所有关系型数据库的统一标准,并且,对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,称之为“方言”。
2.SQL通用语法
(1):SQL语句可以单行或多行书写,以分号结尾
。
比如,有分号时:
当没有加分号时,mysql会一直让我们输入,直至读到“;”,才会进行编译:
(2):MySQL数据库的SQL语句不区分大小写(但是关键字一般用大写)。
(3):注释有两种方式,单行注释和多行注释;
单行注释: -- 注释内容(注意“--”和“注释内容”之间有一个空格,不可省略,否则会报错) 或 #注释内容(“#”注释为MySQL特有的);
多行注释: /* 注释的内容 */;
3.SQL分类
(1)DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等等,即:操作数据库、表等
。
(2)DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改,即:对表中的数据进行增删改
。
(3)DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据),即:对表中的数据进行查询
。
(4)DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,以及创建用户,即:对数据库进行权限控制
。
4.DDL – 操作数据库
(1)查询
show databases;-- 用来查询所有数据库的名称
(2)创建数据库
两种语法:
①直接添加(当数据库存在时,会报错)
create database 数据库名称;-- 增加一个新的数据库
当数据库已经存在时:
②判断后增加
create database if not exists 数据库名称;-- 先进行判断,若数据库不存在,则创建数据库
文件已存在,但没有报错
文件不存在时,会创建
(3)删除数据库
两种语法:
①直接删除(当数据库不存在时,会报错)
drop database 数据库名称;-- 直接删除数据库
当数据库不存在时:
②判断后删除(数据库不存在时,也不会报错)
drop database if exists 数据库名称;-- 先判断是否存在,若存在则删除
(4)使用数据库
查看当前使用的数据库
select database();-- 查看当前正在使用的数据库是什么
使用数据库
use 数据库名称;-- 使用数据库
5.DDL – 操作表
(1)查询表
查询表名称
show tables;-- 查询当前正在使用的数据库下所有表的名称
查询表结构
desc 表名称;-- 查询表的结构
(2)创建表
create table 表名 (
字段名1 数据类型,
字段名2 数据类型,
...
字段名n 数据类型
);-- 注意在最后一个字段,是没有逗号的
(3)删除表
两种语法:
①直接删除(当表不存在时,会报错)
drop table 表名;
当表存在时:
当表不存在时(会报错):
②判断后执行:
drop table if exists 表名;-- 存在即执行,不存在不会执行,避免了报错
(4)修改表(五个部分)
①修改表名:
关键字:rename
alter table 表名 rename to 新的表名;
②添加一列:
关键字:add
alter table 表名 add 列名 数据类型;
③修改数据类型:
关键字:modify
alter table 表名 modify 列名 新数据类型;
④修改列名和数据类型:
关键字:change
alter table 表名 change 列名 新列名 新数据类型;
⑤删除列:
关键字:drop
alter table 表名 drop 列名;
补充:数据类型
MySQL支持多种类,可以分为三类:
- 数值
- 日期
- 字符串
MySQL数据类型,如下:
其中值得注意的是:
INT或INTEGER的大整数值,编写的形式形如:age int;
DOUBLE双精度浮点数值,编写形如:score double(参数一:未来数值的总长度
;参数二:小数点后保留的位数)–>如写0~100,并且保留2位小数:score double(5,2),5是指最大值100是三位数+保留的两位小数=5;
DATE日期值,编写形如:birthday date,这里只显示年、月、日;
CHAR定长字符串,编写形如:name char(),注意当括号里面的参数为10时
,不论数组存放了几个字符,都是会占用10个字符(剩余的空间,会自动使用空格补齐),它的存储性能高(因为不用计算长度),较浪费空间;
VARCHAR变长字符串,编写形如:name varchar(),注意不论括号里面的参数是什么
,存入几个字符(但字符数不能超出参数值),就会占用几个字符,它的存储性能低(需要计算字符的长度),较节省空间;
DML、DQL相关知识(见JavaWeb_Study_Four)
传送入口:JavaWeb_Study_Four