1.数据库概述
1.1数据的存储方式
- 第一种存储方式是创建对象(实际上new出来的对象不就是用来存数据的嘛),创建对象就是在堆内存中为对象请求了一个空间,相当于是将对象存入堆内存。
- 第二种方式存文件中,这个在IO流部分我们就是这么处理的,但是缺点确很致命,每次增删改都需要获得文件中所有的信息,改完后在全部放入文件。
- 第三种方式数据库看下面,你懂得。
1.2what是数据库
- 按照数据结构来组织、存储和管理数据的仓库。
- 本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。
- 所有的关系型数据库都可以使用通用的 SQL 语句进行管理 DBMS(DataBase Management System )。
1.3what是关系型数据库
关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
- 1.数据以表格的形式出现
- 2.每行为各种记录名称
- 3.每列为记录名称所对应的数据域
- 4.许多的行和列组成一张表单
- 5.若干的表单组成database
2.数据库的服务的启动与登录
2.1Windows服务方式启动
以win10为例:右键我的电脑,点击管理进入以下界面进行数据库的启动与关闭。此页面也可通过命令进入:win+R 在弹出的输入框输入services.msc。
2.2DOS命令方式启动
在开始菜单找到命令提示符(就是mysql5.7),右键以管理员身份运行,此时可能会直接让你输密码。
2.3控制台连接数据库(了解)
MySQL 是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的 root 账号,使用安装时设置 的密码即可登录 ,这里建议密码设置成1234。实际开发我们可能用不到下面的方法,而是通过jdbc操作数据库。
- 登录格式1:mysql -u 用户名 -p 密码
- 登录格式2:mysql -hip 地址 -u 用户名 -p 密码,这里的地址是本机地址127.0.0.1.
- 登录格式3:mysql --host=ip 地址 --user=用户名 --password=密码
- 退出:quit 或 exit
2.4图形化工具----客户端
SQLyog中tab键可以补全关键字,并且都帮你转成大写的。查询出的页面相对好看一点
Navicat for MySQL,相对于小海豚个人觉得,左边表显示相关Navicat好一点。但是查询出的数据表都是用线框起来的,稍微不太美观。
这里两个图形化工具都很好用,二者选一即可,后面我们使用JDBC操作数据库就用不到这个工具了。
2.5 数据库管理系统、数据库和表的关系
数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用 中实体的数据,一般会在数据库创建多个表,以保存程序中实体 User 的数据。 关系如下图:
一个数据库服务器包含多个库一个数据库包含多张表 一张表包含多条记录
3.SQL的概念
3.1 what是SQL
Structured Query Language 结构化查询语言
3.2 SQL作用
- 是一种所有关系型数据库的查询规范,不同的数据库都支持。
- 通用的数据库操作语言,可以用在不同的数据库中。
- 不同的数据库 SQL 语句有一些区别
注意:SQL规范就像我们的普通话,而MySQL特有的和Oracle特有的就相当于方言,只有MySQL能听懂MySQL的家乡话,Oracle只能听懂Oracle的家乡话,而普通话是通用的,例如Oracle跟MySQL站一起,兄弟我们一起说SQL?好了两个人就能交流了。
3.3 SQL语句分类
- Data Definition Language (DDL 数据定义语言,操作数据库结构) 如:建库,建表
- Data Manipulation Language(DML 数据操纵语言,操作数据库数据),如:对表中的记录操作增删改
- Data Query Language(DQL 数据查询语言),如:对表中的查询操作
- Data Control Language(DCL 数据控制语言),如:对用户权限的设置
3.4 MySQL语法
- 每条语句以分号结尾,如果在 SQLyog 中不是必须加的,Navicat中必须加。
- SQL 中不区分大小写,关键字中认为大写和小写是一样的
- 注释:单行注释:–空格;多行注释:/**/
MySQL特有注释:#
4.DDL操作数据库
4.1 创建数据库的几种方式
4.2 查看所有的数据库
按tab键可以自动补全关键字
4.3 修改数据库
4.4 删除数据库
4.5使用数据库
5.DDL操作表结构
5.1 创建表
create table 表名( 列名1 数据类型1, 列名2 数据类型2, .... 列名n 数据类型n );
5.2 MySQL常用数据类型
注意char跟varchar,前者不可变无论使用几个字符都占满全部,后者可变,使用几个字符就占用几个。
5.3 查看表
5.4 快速创建一个表结构相同的表
语法:CREATE TABLE 新表名 LIKE 旧表名;
5.5 删除表
5.6 修改表结构
6.DML操作表中的数据
6.1插入数据
没有添加数据的字段在数据库中默认是null
6.2更新表数据
6.3删除表记录
7.DQL查询表中的数据
- SELECT 列名 FROM 表名 [WHERE 条件表达式]
- SELECT 命令可以读取一行或者多行记录。
- 星号(*)代替所有字段
- 你可以使用 WHERE 语句来包含任何条件。
7.1简单查询
- 使用*表示所有列 SELECT * FROM 表名;
- 查询指定列的数据,多个列之间以逗号分隔 SELECT 字段名 1, 字段名 2, 字段名 3, … FROM 表名;
7.2给列的取别名进行查询
- 对列指定别名 SELECT 字段名 1 AS 别名, 字段名 2 AS 别名… FROM 表名;
- 对列和表同时指定别名 SELECT 字段名 1 AS 别名, 字段名 2 AS 别名… FROM 表名 AS 表别名;
- 表使用别名的原因:用于多表查询操作,这个很重要。
7.3清除重复值
查询指定列并且结果不出现重复数据 SELECT DISTINCT 字段名 FROM 表名; 示例:(这里开始加示例,小写比较好看):select distinct address from student;
7.4查询结果参与运算
某列数据和固定值运算 SELECT 列名 1 + 固定值 FROM 表名;
某列数据和其他列数据参与运算 SELECT 列名 1 + 列名 2 FROM 表名;
注意: 参与运算的必须是数值类型
7.5条件查询
为什么要条件查询 如果没有查询条件,则每次查询所有的行。实际应用中,一般要指定查询的条件。对记录进行过滤。
SELECT 字段名 FROM 表名 WHERE 条件;
流程:取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回
7.5条件查询
为什么要条件查询 如果没有查询条件,则每次查询所有的行。实际应用中,一般要指定查询的条件。对记录进行过滤。
SELECT 字段名 FROM 表名 WHERE 条件;
流程:取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回