学JavaWeb第五天——MySQL

一、什么是数据库DB

SQL指令----->>>数据库管理系统DBMS识别并执行指令---------->>>数据库有所改动

只要是关系型数据库,SQL语言的指令都适用。

二、如何安装MySQL

MySQL安装文档 - 飞书云文档 :该链接里面有安装教程。

我们自己学习的时候mysql的数据库是存放在电脑中的,但是在企业开发的时候,是存放在服务器中,而服务器是存放在机房当中的,公司所在的地方和机房可能不在一个省市。

---------->>>>所以我们要远程连接服务器 cmd命令要有 -h: 服务器的IP地址和 -P:端口号。

如果命令里没有写 -h 和 -P,那就是连接的本机的3306端口的MySQL数据库。

三、MySQL数据模型

我们的电脑上安装了MySQL,所以我们的电脑现在就是数据库服务器,要通过客户端连接这个MySQL,就通过上述的命令:mysql -u用户名 -p密码

连接上MySQL之后,就要创建数据库DB,命令:create database db01; 此时数据库的data文件夹就有了一个空文件夹db01.

可以有多个数据库,一个数据库也可以有多张表,一张表有多行数据(一行数据也叫 记录)

四、SQL(重点)

4.1 DDL

4.1.1 数据库操作------创建数据库

  1. 数据库 名字不能重复。
  2. 加上 if not exist之后,存在就不会报错,不存在就创建数据库。
  3. 刚开始没有使用 use XXX 时,select database();是查询当前数据库,是NULL
命令行客户端------->>>图形化界面客户端

MySQL自带的命令行客户端操作不方便,因此想到利用其它操作数据库的管理工具来图形化客户端。

下载安装DataGrip:

这样,创建、删除、变更、查看时哪个数据库,都可以图形化界面的工具来实现。

要想让SQL语句执行,就必须先选中这些SQL语句,并点击运行。

4.1.2 表操作------创建表

代码示例:

sql 复制代码
-- 创建一个数据库
create database db04;

-- 创建一个表
create table user(
    id int primary key auto_increment comment '唯一标识符',
    username varchar(10) not null unique comment '用户名',
    name varchar(10) not null comment '名字',
    age int comment '年龄',
    gerder char(1) default '男' comment '性别'
)comment '用户信息表'

添加数据时,点 ➕,要上交数据时,点⬆。

4.1.3 字段的数据类型

1)数值类型

根据数值能取到的最大值来决定使用哪个。age----tinyint unsigned id----int unsigned

2)字符串类型

  1. blob是二进制,存储视频音频,但是视频音频不存储在数据库中。
  2. text是描述语句,用于一大段话。

主要用到 char 和 varchar:

长度固定:用char 长度不固定用varchar 例如:

3)日期事件类型

4.1.4 项目案例

页面原型要求:

代码:

sql 复制代码
-- 创建表
create table employee(
    id int unsigned primary key auto_increment comment 'ID,主键',
    username varchar(20) not null  unique comment '用户名,唯一',
    name varchar(10) not null comment '姓名',
    gender tinyint unsigned not null comment '性别:1,男;2,女',
    phone char(11) not null unique comment '手机号',
    job tinyint unsigned comment '职位:1班主任,2讲师,3学生主管,4教研主管,5咨询师',
    salary int unsigned comment '薪资',
    image varchar(255) comment '头像,访问链接',
    entry_data date comment '入职日期',
    create_time datetime comment '创建该员工记录的时间',
    update_time datetime comment '最后操作时间'
)comment '员工表';
  1. 必填:not null;;;唯一:unique
  2. 最后一定要补充基础字段:

4.1.5 表操作-增加+修改+删除

代码示例:

sql 复制代码
-- 修改+添加+删除 表字段
alter table employee add weixin varchar(15) unique comment '微信号';

alter table employee modify weixin varchar(18) comment '微信';

alter table employee change weixin weixin_num varchar(18) comment '微信号';

alter table employee drop column weixin_num;

alter table employee rename to emp;

drop table emp;

图形化界面操作:

1)鼠标放到响应SQL语句上就会显示弹窗有答案。

2)修改表结构,可以对着 表 右击 选择 Modify table,可以增加字段/修改字段类型名称/删除字段

3)右击可以Rename修改表名 还可以Drop 删除表

4.2 DML

4.2.1 insert---添加数据

代码示例:

4.2.2 update--修改数据

代码示例:

4.2.3 删除数据--delete

代码示例:

4.3DQL

4.3.1 基本查询

代码示例:

4.3.2 条件查询

代码示例:

4.3.2 分组查询

聚合函数不参与null值的统计,所以 count 要使用非空约束的字段,不然统计个数是错的。

聚合函数括号里面是字段名。

代码示例:

分组查询顺序
  1. **1)****先where,把参与查询的筛选出来,****2)****再group by XX字段名:根据 XX字段 分组,此时已经select查询出来XX字段 和 聚合函数 ,****3)****最后having+筛选条件:根据筛选条件筛选分的小组。****4)**这个having的筛选条件可以用聚合函数,但是where后面不可以,因为还没有分组,用聚合函数就是对所有数据计算,不合理。
  2. where是对所有数据进行筛选--------group by进行分组-------having对小组进行筛选

代码示例:

4.3.4 排序查询

order by 是最后执行的,要对马上要展示的数据进行排序,最后展示排序的数据。

代码示例:

4.3.5 分页查询

代码示例:

相关推荐
ZePingPingZe2 小时前
MySQL查看事务与锁
数据库·mysql
TDengine (老段)2 小时前
从“被动养护”到“主动预警”,TDengine IDMP 让智慧桥梁靠数据“说话”
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
白日做梦Q2 小时前
【MySQL】9.吃透关键SQL语法:从正则表达式、窗口函数、条件函数到结果集合并的实战拆解
数据库·sql·mysql·正则表达式
likuolei2 小时前
正则表达式 - 元字符
数据库·mysql·正则表达式
侧耳倾听1112 小时前
mysql中的binlog-介绍
数据库·mysql
少云清2 小时前
【接口测试】4_PyMySQL模块 _操作数据库
服务器·网络·数据库
IndulgeCui3 小时前
Kingbase-金仓企业级统一管控平台KEMCC一键部署主备集群及转换读写分离集群
数据库
数据库生产实战3 小时前
Oracle升级避坑指南:APEX卸载后sys.htmldb_system无效对象的处理方法
数据库·oracle
冰冰菜的扣jio3 小时前
SQL语句是如何在MySQL中执行的
数据库·sql