一、数据库相关概念
1.1 数据库
23
男 北京西三旗
24
女 北京西二旗
25
男 西安软件新城
IO
技术可以通过将所有的数据读取到内存中,然后进行修改再存到 该文件中。通过这种方式操作存在很大问题,现在只有三条数据,如果文件中存储1T
的数据,那么就会发现内存根本就存储 不了。
- 存储和管理数据的仓库,数据是有组织的进行存储。
- 数据库英文名是 DataBase,简称DB。
1.2 数据库管理系统
- 管理数据库的大型软件
- 英文:DataBase Management System,简称 DBMS
数据库其实是
MySQL
数据库管理系统。
数据库管理系统
和
数据库
的关系。那么有有哪些常见的数据库管理系统呢?
1.3 常见的数据库管理系统
- Oracle:收费的大型数据库,Oracle 公司的产品
- MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
- SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
- PostgreSQL:开源免费中小型的数据库
- DB2:IBM 公司的大型收费数据库产品
- SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
- MariaDB:开源免费中小型的数据库
MySQL
数据库管理系统,
PostgreSQL
在一些公司也有使用,此时大家肯定会想以后在公司中如果使用 我们没有学习过程的PostgreSQL
数据库管理系统怎么办?这点大家大可不必担心,如下图所示:
)来实现。
1.4 SQL
- 英文:Structured Query Language,简称 SQL,结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其 他的数据库管理系统,也同样的使用SQL来操作。
二、MySQL
2.1 MySQL安装
1. 下载
系统位数
相对应的版本右边的
Download
,此时会进到另一个页面,同样在接近页面底部的地方找到如 下图所示的位置:
不用理会上面的登录和注册按钮,直接 No thanks, just start my download. 就可以下载。
2.安装(解压)
安装好以后必须对
MySQL
服务器进行配置
mysql
中管理员的名字:
root
MySQL 5.7.24
的软件本体了
(
就是一个文件夹
),我们可以 把它放在你想安装的位置。—我用的是“mysql-5.5.27-win32.msi”。
安装文件双击解压缩,运行“mysql-5.5.27-win32
.msi”。
(默认)
”
、
“Complete
(完全)
”
、
“Custom
(用户自定义)
”
三个选项,选择
“Custom”
, 按“next”
键继续。
点选
“Browse”
,手动指定安装目录。
填上安装目录,我的是
“d:Program Files (x86)MySQLMySQL Server 5.0”
,按
“OK”
继续。
确认一下先前的设置,如果有误,按
“Back”
返回重做。按
“Install”
开始安装。
正在安装中,请稍候,直到出现下面的界面
,
则完成
MYSQL
的安装
MYSQL 的配置
安装完成了,出现如下界面将进入
mysql
配置向导。
选择配置方式,
“Detailed Configuration
(手动精确配置)
”
、
“Standard Configuration
(标准配置)
”
,我 们选择“Detailed Configuration”
,方便熟悉配置过程。
选择服务器类型,
“Developer Machine
(开发测试类,
mysql
占用很少资源)
”
、
“Server Machine
(服务 器类型,mysql
占用较多资源)
”
、
“Dedicated MySQL Server Machine
(专门的数据库服务器,
mysql
占 用所有可用资源)”
选择
mysql
数据库的大致用途,
“Multifunctional Database
(通用多功能型,好)
“Transactional Database Only(服务器类型,专注于事务处理,一般)
”
、
“Non-Transactional Database Only
(非事务 处理型,较简单,主要做一些监控、记数用,对 MyISAM
数据类型的支持仅限于
non-transactional
),按
“Next” 继续。
选择网站并发连接数,同时连接的数目,
“Decision Support(DSS)/OLAP
(
20
个左右)
、“Online Transaction Processing(OLTP)(
500
个左右)
”
、
“Manual Setting
(手动设置,自己输一个数)
”
。
是否启用
TCP/IP
连接,设定端口,如果不启用,就只能在自己的机器上访问
mysql
数据库了,在这个页 面上,您还可以选择“
启用标准模式
”
(
Enable Strict Mode
),这样
MySQL
就不会允许细小的语法错误。
MySQL
以后,尽量使用标准模式,因为它可以降 低有害数据进入数据库的可能性。按“Next”
继续
就是对
mysql
默认数据库语言编码进行设置(重要),一般选
UTF-8
,按
“Next”
继续。
选择是否将
mysql
安装为
windows
服务,还可以指定
Service Name
(服务标识名称),是否将
mysql
的
bin 目录加入到 Windows PATH
(加入后,就可以直接使用
bin
下的文件,而不用指出目录名,比如连接, “mysql.exe -uusername -ppassword;”就可以了,不用指出
mysql.exe
的完整地址,很方便),我这里全部 打上了勾,Service Name
不变。按
“Next”
继续。
询问是否要修改默认
root
用户(超级管理)的密码。
“Enable root access from remote machines
(是否允 许 root
用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)
”
。最后
“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括询)
”
,
“Next”
继续。
确认设置无误,按
“Execute”
使设置生效,即完成
MYSQL
的安装和配置。
“Finish”
后有一个比较常见的错误,就是不能
“Start service”
,一般出现在以前有安装
mysql 的服务器上,解决的办法,先保证以前安装的 mysql
服务器彻底卸载掉了;不行的话,检查是否按上面一步所说, 之前的密码是否有修改,照上面的操作;如果依然不行,将 mysql
安装目录下的
data
文件夹备份,然后删除,在 安装完成后,将安装生成的 data
文件夹删除,备份的
data
文件夹移回来,再重启
mysql
服务就可以了,这种情况 下,可能需要将数据库检查一下,然后修复一次,防止数据出错。
※卸载 MySQL,重装 MySQL
2.2 MySQL卸载
1.停止 window 的 MySQL 服务。 找到“控制面板”-> “管理工具”-> “服务”,停止 MySQL 后台服务。
2.卸载 MySQL 安装程序。找到“控制面板”-> “程序和功能“,卸载 MySQL 程序。
3.删除 MySQL 安装目录下的所有文件。
去mysql的安装目录找到my.ini文件 * 复制 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
4.删除 c 盘 ProgramDate 目录中关于 MySQL 的目录。路径为:C:ProgramDataMySQL(是隐藏文件,需要显示 出来)
2.3 数据库服务的启动与登录–2种方式
mysql安装好的是mysql服务,安装好的mysql服务是在windows服务列表中注册的mysql服务,服务简称service,就是没有界面的应用程序。后台的一些服务。后台的服务是在任务管理器选择服务选项中就可以看到了(跟进程在同一栏中)。
服务器启动方式有两种:
通过服务的方式自动启动
手动启动的方式
1.Windows 服务方式启动
1.操作步骤:
2.手动启动的方式–2种
1.cmd—>service.msc 打开服务的窗口
2.使用管理员打开cmd
* net start mysql : 启动mysql的服务
* net stop mysql:关闭mysql服务
2.4控制台连接数据库(mysql登录和退出)
是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的
root
账号,使用安装时设置 的密码即可登录
登录格式 1:u 和 p 后面没有空格
mysql -u 用户名 -p 密码
- 后输入密码方式:
地址
-u
用户名
-p
密码
- 127.0.0.1 代表本机的 IP 地址
地址
–user=
用户名
–password=
密码
或
exit
2.5SQLyog 图形化工具——客户端
是业界著名的
Webyog
公司出品的一款简洁高效、功能强大的图形化
MySQL
数据库管理工具。使用 SQLyog 可以快速直观地让您从世界的任何角落通过网络来维护远端的
MySQL
数据库
SQLyog是傻瓜式安装,一路下一步即可。
注意:电脑多少位的,就安装多少位的
先要进行安装,然后再进行激活。
使用数据库:
方法一:使用数据库,可以使用use 数据库名称 命令(use db1),然后再去执行。我们看到这里变成了db1了。
方法二: 我们也可以点一下数据库即可,效果是一样的。
看表的结构也是2种方式:命令行和图像化操作
2.6MySQL 目录结构
1. MySQL安装目录:
MySQL安装目录:basedir="D:/develop/MySQL/" * 配置文件 my.in
2. MySQL数据目录
MySQL数据目录:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 几个概念 * 数据库:文件夹 * 表:文件 * 数据:文件里的数据 如果数据目录看不到的话,就是被隐藏了,需要吧隐藏目录打开它。
我们的计算机安装了mysql数据库服务器软件,被称为mysql服务器。这个服务器是硬件+软件,mysql服务器指的是mysql服务器软件所在的那台计算机。
2.7数据库管理系统
DataBase Management System
,
DBMS
):指一种操作和管理数据库的大型软件,用于建 立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理 系统访问数据库中
表内的数据
2.8数据库管理系统、数据库和表的关系
(DBMS)
可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用 中实体的数据,一般会在数据库创建多个表,以保存程序中实体 User
的数据。
2.9结论:
一个数据库服务器包含多个库
一个数据库包含多张表
一张表包含多条记录
三、SQL概述
3.1 SQL简介
- 英文:Structured Query Language,简称 SQL
- 结构化查询语言,一门操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
- 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
3.2通用语法
语句可以单行或多行书写,以分号结尾。
sql
语句。
数据库的
SQL
语句不区分大小写,关键字建议使用大写。
同样的一条sql语句写成下图的样子,一样可以运行处结果。
注释:(注释有3种,单行注释2种,多行注释1种)
单行注释:— 注释内容 或 # 注释内容(MySQL 特有)
注意:使用— 添加单行注释时,—后面一定要加空格,而#没有要求。(也就是2个横杆+1个空格)
- 多行注释:/* 注释内容 */
语句可以使用空格
/
缩进来增强语句的可读性。—写sql语句的时候要有空格
3.3SQL分类—4种
- DDL(Data Definition Language) : 数据定义语言,用来定义数据库对象:数据库,表,列等
简单理解就是用来操作数据库,表等
- DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
简单理解就对表中数据进行增删改
- DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
- DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
DML
和
DQL
,因为我们开发中最常操作的就是数据。
四、DDL:操作数据库
4.1 查询数据库
-
查询所有数据库的名称: show databases;
- 查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
4.2 创建数据库–3种方式
1. C(Create):创建
- 创建数据库
create database 数据库名称;
- 创建数据库,判断不存在,再创建:(创建数据库可以先进行判断的操作)
create database if not exists 数据库名称(创建数据库可以先进行判断的操作));
- 数据库名称; 创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;
- 练习: 创建db4数据库,判断是否存在,并制定字符集为gbk
create database if not exists db4 character set gbk
4.3修改数据库
修改数据库的字符集 alter database 数据库名称 character set 字符集名称;
4.4删除数据库
-
删除数据库 drop database 数据库名称;
- 判断数据库存在,存在再删除
drop database if exists 数据库名称;
4.5 使用数据库
使用数据库就是你现在是在数据库之外,没有进到数据库里面去。
- 查询当前正在使用的数据库名称
select database();
- 使用数据库
use 数据库名称
五、DDL:操作表
5.1 查询表
-
查询某个数据库中所有的表名称 show tables;
- 查询表结构
desc 表名;
5.2 创建表
1. C(Create):创建 1. 语法: create table 表名( 列名1 数据类型1, 列名2 数据类型2, .... 列名n 数据类型n );
注意:最后一列,不需要加逗号(,)
创建学生表 create table student( id int, name varchar(32), age int , score double(4,1), birthday date, insert_time timestamp );
复制表:
create table 表名 like 被复制的表名;
5.3 数据类型
1.常使用的数据类型如下:
1. int:整数类型 age int, 2. double:小数类型 score double(5,2) --小数一共有5位,小数点后面保留2位 3. date:日期,只包含年月日,yyyy-MM-dd 4. datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss 5. timestamp:时间戳类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果是时间戳类型,将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值 6. varchar:字符串 name varchar(20):姓名最大20个字符 zhangsan 8个字符 张三 2个字符
2.详细的数据类型如下
5.4 删除表–2种写法
drop table 表名;
drop table if exists 表名 ;--删除表的时候先判断一下再去删除,如果存在的话表名应该写在后面去
5.5 修改表
修改表主要是修改表的名称,列的名称或者列的类型等等。
1. 修改表名
alter table 表名 rename to 新的表名;
2. 修改表的字符集–先去查看原来的字符集,然后再去修改它
alter table 表名 character set 字符集名称;
3. 添加一列
alter table 表名 add 列名 数据类型;
4. 修改列名称或者 类型
alter table 表名 change 列名 新列别 新数据类型;
alter table 表名 modify 列名 新数据类型;
5. 删除列
alter table 表名 drop 列名;
六、navicat使用
傻瓜式安装,一路下一步即可。
Navicat Premium 8.1.12激活
先要进行安装,然后再进行激活。
安装:
双击`navicat111_mysql_cs_x86.exe` ,然后一路下一步。安装成功
激活(激活成功教程它):
双击`PatchNavicat.exe`,选择安装目录中的navicat.exe 。完成激活。
navicat默认安装路径: `C:Program Files (x86)PremiumSoftNavicat for MySQL`
看到Successfully,证明激活成功
使用:
连接数据库:
选中表右键选择设计表就可以修改表了。
你要写sql语句,选择查询工具栏,然后选择新建查询,然后就可以写sql了。
七、DML:操作数据(增删改)
7.1 添加数据
语法: insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n); 注意:
1. 列名和值要一一对应。 2. 如果表名后,不定义列名,则默认给所有列添加值 insert into 表名 values(值1,值2,...值n); 3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来
7.2 修改数据
语法:
update 表名 set 列名1 = 值1, 列名2 = 值2,… [where 条件];
注意: 1. 如果不加任何条件,则会将表中所有记录全部修改。
7.3 删除数据
语法:
delete from 表名 [where 条件]
注意: 1. 如果不加条件,则删除表中所有记录。 2. 如果要删除所有记录 1. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作,效率低。(就是一次的一次删除) 2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。(不管你的表中有多少条记录,truncate只会执行2条sql,删除/drop表,然后创建/create表)
八、DQL:操作数据(查询)
select * from 表名;
语法:
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
编号
姓名
年龄
性别
地址
数学
英语
马云
‘,55,’
男
‘,’
‘,66,78),(2,’
马化腾
‘,45,’
女
‘,’
深圳
‘,98,87),(3,’
马景涛
‘,55,’
男
‘,’
香港
‘,56,77),(4,’
柳岩
女
‘,’
湖南
‘,76,65),(5,’
柳青
‘,20,’
男
‘,’
湖南
‘,86,NULL),(6,’
刘德华
‘,57,’
男
‘,’
香港
马德
‘,22,’
女
‘,’
香港
‘,99,99),(8,’
德玛西亚
‘,18,’
男
‘,’
南京
‘,56,65);
8.1 基础查询
1. 多个字段的查询
select 字段名1,字段名2… from 表名;
注意: 如果查询所有字段,则可以使用*来替代字段列表。
2. 去除重复:
distinct
3. 计算列 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
表达式1:哪个字段需要判断是否为null
表达式2:如果该字段为null后的替换值。
如果遇到null,就让他的值为0即可,0加上任何数都是任何数。sql中有个函数ifnull()来解决。
英语成绩为null的话,就用0去替换它,如果不是null的话,就还是原来的值.
4. 起别名: as:
as也可以省略
8.2 条件查询(单个条件和多个条件)
1. where子句后跟条件 2. 运算符 > 、< 、<= 、>= 、= 、<> BETWEEN...AND IN( 集合) LIKE:模糊查询 占位符: _:单个任意字符 %:多个任意字符 IS NULL and 或 && or 或 || not 或 ! 运算符
注意:
1.Java中的等于号是2个==,sql中的等号用1个=即可。
2.不等于号有2种写法,<>或者!=
3.为空是is null(不是=null),不为空是is not null
逻辑运算符
in关键字
范围查询
模糊查询
案例 :
8.3 排序查询
排序查询
语法:order by 子句
order by 排序字段1 排序方式1 , 排序字段2 排序方式2…
排序方式:
ASC:升序,默认的。
DESC:降序。
注意:
如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
8.4 聚合函数
聚合函数:将一列数据作为一个整体,进行纵向的计算。比如:我要算数学这一列的平均分。 聚合函数得到的值是单行单列的一个值。 1. count:计算个数 1. 一般选择非空的列:主键 2. count(*) 2. max:计算最大值 3. min:计算最小值 4. sum:计算和 5. avg:计算平均值 注意:聚合函数的计算,排除null值。 解决方案(2种): 1. 选择不包含非空的列进行计算 2. IFNULL函数
8.5 分组查询
班里有5组,每一排就是一组,每一组的平均分比一下,哪个组同学平均分更高一些。这一组的同学当成一个整体来看,分组查询急就是用来统计具有相同特性的某一类数据,把这些数据当成整体来看。
我们看这张表,我们吧男同学当成一个整体,女同学当成另外一个整体,我们这是分为了2组,我们看每一组的平均分是多少。
1. 语法:group by 分组字段; 2. 注意: 1. 分组之后查询的字段:分组字段、聚合函数 2. where 和 having 的区别? 1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来 2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。 where是分组前筛选个体,having是分组后筛选组。 分组前每条数据是一个个体,分组后每条数据就是一个组了。 -- 按照性别分组。分别查询男、女同学的平均分 SELECT sex , AVG(math) FROM student GROUP BY sex; -- 按照性别分组。分别查询男、女同学的平均分,人数 SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex; -- 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组 SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex; -- 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人 SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2; SELECT sex , AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2;
8.6 分页查询
1. 语法:limit 开始的索引,每页查询的条数; 2. 公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数 -- 每页显示3条记录 SELECT * FROM student LIMIT 0,3; -- 第1页 SELECT * FROM student LIMIT 3,3; -- 第2页 SELECT * FROM student LIMIT 6,3; -- 第3页 3. limit 是一个MySQL"方言"
今天的文章
Navicat Premium 8.1.12激活(mysql学习(一))分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/109726.html