huang2024-3-25-2024-3-31周报

本周学习大纲

1.mysql

2.题目

3.笔记

本周学习日历

日历 学习内容 其他
星期一 约束1 \
星期二 web网页设 \
星期三 C代码题 \
星期四 约束2 \
星期五 \ 日周笔记
星期六 多表查询基础 \
星期天 C选择填空 \

本周学习内容及收获

1.笔记

https://snail0220.github.io/2024/03/31/%E7%BA%A6%E6%9D%9F/

2.题目

img

image-20240331124302534

3.日周笔记

image-20240331100820444

总结

平平常常的一周学习,题目的类型暂时没有找到合适的方式加入周报中,暂时只以照片的方式展示。

下周学习大纲

1.MySQL

2.题目

3.日周笔记

MySQL—函数

1.定义

函数是指一段可以直接被另一段程序调用的程序或代码。基本分类有字符串函数、数值函数、日期函数、流程函数

2.字符串函数

常见的如下

函数 功能
concat(s1,s2,…sn) 字符串拼接,将s1,s2,…sn拼接成一个字符串
lower(str) 将字符串str全部转化为小写
upper(str) 将字符串str全部转化为大写
lpad(str,n,pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
rpad(str,n,pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
trim(str) 去掉字符串头部和尾部的空格
substring(str,start,len) 返回从字符串str从start位置起的len个长度的字符串
3.数值函数

常见的如下

函数 功能
cell(x) 向上取整
floor(x) 向下取整
mod(x,y) 返回x/y的模
rand() 返回0~1内的随机数
round(x,y) 求参数x的四舍五入的值,保留y位小数

案例

通过数据库的函数,生成一个六位数的随机验证码。

1
select lpad(round(rand()*1000000,0),6,'0');
4.日期函数

常见的如下

函数 功能
curdate() 返回当前日期
curtime() 返回当前时间
now() 返回当前日期和时间
year(date) 获取指定date的年份
month(date) 获取指定date的月份
day(date) 获取指定date的日期
date_add(date,interval expr type) 返回一个时期/时间值加上一个时间间隔 expr后的时间值
datediff(date1,date2) 返回起始时间date1和结束时间date2之间的天数

案例

查询所有员工的入职天数,并根据入职天数倒序排序

1
select name,datediff(cuidate(),entrydate) as 'entrydays' from emp order by entrydays desc;
5.流程(控制)函数

可以在SQL语句中实现条件筛选,从而提高语句的效率

函数 功能
if(value,t,f) 如果value为true,则返回t,否则返回f
ifnull(value1,value2) 如果value1不为空,返回value1.否则返回value2
case when [val1] then [res1] …else[default] end 如果val1为true,返回res1,…否则返回default默认值
case [expr] when [val1] then [res1]…else [default] end 如果expr的值等于val1,返回res1,…否则返回default默认值

案例

统计班级各个学员的成绩,展示的规则如下:

大于等于85,展示优秀

大于等于65,展示及格

否则,展示不及格

1
2
3
4
5
6
7
8
create table score(
id int comment 'ID',
name varchar(20) comment '姓名'
math int comment '数学'
english int comment '英语'
chinese int comment '语文'
)comment '学员成绩表';
insert into score(id,name,math,english,chinese) values (1,'Tom',67,88,95),(2,'Rose',23,66,98),(3,'Jack',54,98,76)

先展示分数—等级

1
2
3
4
5
6
7
select
id,
name,
(case when math >= 85 then'优秀’when math >=60 then'及格'else'不及格'end )'数学',
(case when english >= 85 then'优秀’when english >=60 then'及格'else'不及格'end )'英语',
(case when chinese >= 85 then'优秀’when chinese >=60 then'及格’else'不及格'end )'语文'
from scoer

huang2024-3-18-2024-3-24周报

本周学习大纲

1.题目

2.MySQL继续

3.日周笔记

本周学习日历

日历 学习内容 其他
星期一 题目 \
星期二 web网页(图片插入) \
星期三 mysql 函数 \
星期四 题目 \
星期五 \ 日周笔记
星期六 函数案例 \
星期日 约束 \

本周学习内容及收获

1.MySQL笔记

https://snail0220.github.io/2024/03/24/%E5%87%BD%E6%95%B0/

2.web网页设计

image-20240324134517432

https://snail0220.github.io/2024/03/05/%E7%AC%AC%E4%BA%8C%E7%AB%A0%20%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BAHTML%E9%A1%B5%E9%9D%A2/

3.笔记整理

4.刷题

总结

本周除了基本的MySQL的学习之外,另外开始了刷题的流程,不过本周刚刚开始,没有什么规划,在下周会找好规律,规划好时间,做好笔记安排。

下周学习大纲

1.MySQL

2.题目

3.日周笔记

SQL-DCL

DCL-介绍

DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

image-20240316202949862

DCL-管理用户

1.查询用户

1
2
USE mysql;
SELECT * FROM user;

2.创建用户

1
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

3.修改用户密码

1
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

4.删除用户

1
DROP USER '用户名'@'主机名';
案例练习

1.创建用户 itcast,只能够在当前主机localhost访问,密码123456

1
create user 'itcast'@'localhost' identified by '123456'

2.创建用户snail,可以在任意主机访问该数据库,密码123456

1
create user 'snail'@'%' identified by '123456'

3.修改用户snail的访问密码为1234

1
alter urser 'snail'@'%'identified with mysql_native_password by '1234';

4.删除itcast@localhost用户

1
drop user 'itcast'@'localhost'

说明

  • 主机名可以用’%‘通配。
  • 这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用。
DCL-权限控制

MySQL中定义了很多种权限,但是常用的就以下几种:

权限 说明
ALL,ALL PRIVILEGES 所有权限
SELERT 查询权限
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库/表/视图
CREATE 创建数据库/表

1.查询权限

1
SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

1
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3.撤销权限

1
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意

  • 多个权限之间,使用逗号分隔。
  • 授权时,数据库名和表名可以使用*进行通配,代表所有。

SQL-DQL

一、案例练习

按照需求完成如下DQL语句编写

1.查询年龄为20,21,22,23岁的女性员工信息。

1
2
select * from emp where gender = '女' and age in
(20,21,22,23);

2.查询性别为 男 ,并且年龄在 20~40 岁(含)以内的姓名为三个字的员工。

1
select * from emp where gender = '男' and ( age between 20 and 40 ) and name like '___';

3.统计员工表中,年龄小于60岁的,男性员工和女性员工的人数。

1
select gender, count(*) from emp where age < 60 group by gender;

4.查询所有年龄小于等于35岁的员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。

1
select name , age from emp where age <=35 order by age asc , entrydate desc;

5.查询性别为男,且年龄在20-48岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。

1
select * from emp where gender = '男' and age between 20 and 40 order by age asc , entrydate asc limit 5;

二、执行顺序

编写顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排列字段列表
LIMIT
分页参数

执行顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
SELECT
字段列表
ORDER BY
排列字段列表
LIMIT
分页参数

huang2024-3-11-2024-3-17周报

本周学习大纲

  1. SQL-DQL案例–小结
  2. SQL-DCL
  3. 日周笔记

本周学习日历

日历 学习内容 其他
星期一 DQL案例练习 \
星期二 DQL执行顺序 \
星期三 DCL管理用户 \
星期四 管理用户案例练习 \
星期五 \ 笔记整理
星期六 DCL权限控制 \
星期天 DCL \

本周学习内容及收获

1.SQL-DQL

https://snail0220.github.io/2024/03/16/SQL-DQL/

2.SQL-DCL

https://snail0220.github.io/2024/03/16/SQL-DCL/

3.日周笔记

image-20240316172225025

总结

1.对于数据库的分类运用的理解更加完善,但是也更加乱,会有记混的地方。感觉自己的时间安排上面还是有点没有掌握好,希望自己可以尽快掌握好时间的利用和分配。

下周学习大纲

1.题目

2.MySQL继续

3.日周笔记

huang2024/3/4-2024/3/10

本周学习大纲

  1. SQL图形操作
  2. 继续数学笔记补充
  3. web前端,C程序

本周学习日历

日历 学习内容 其他
星期一 DDL-数据库操作 \
星期二 DDL-表操作 HTML案例一学习
星期三 安装gatagrip,创建新课程 \
星期四 SQL-DML \
星期五 \ 离散、高数一周笔记整理
星期六 SQL-DQL-基础查询、条件查询、聚合函数 \
星期天 SQL-DQL-分组查询、排序查询、分页查询 \SQL

本周学习内容 及 收获

  1. MySQL学习笔记

    https://snail0220.github.io/2024/03/02/MySQL%E7%AC%94%E8%AE%B0/

  2. 笔记整理

    img

  3. web笔记

[Hexo (snail0220.github.io)](https://snail0220.github.io/2024/03/05/第二章 从零开始构建HTML页面/)

总结

1.SQL相关的操作指令比较复杂,目前没有熟悉掌握

2.应该复习下之前学的,有些遗忘。

下周学习大纲

  1. SQL-DQL 案例分析
  2. SQL-DCL
  3. 日周笔记

第二章 从零开始构建HTML页面

文档基本格式

文本样式标签

HTML图像

【案例一】简单的网页

image-20240309195718799

HTML文档基本格式
1
2
3
4
5
6
7
<!DOCTYER>;位于文档的最前面,用于向浏览器说明当前文档使用哪种HTML或XHTML标准规范。因此只有在开头处使用。

<html>:位于<!DOCTYER>之后,也被称为根标签。主要用于告知浏览器其自身是一个HTML文档,<html>标志着HTML文档的开始,</html>标志着HTML文档的结束,在他们之间是文档的头部和主体内容。

<head>:用于定义HTML文档的头部信息,也称为头部标签,紧跟在<html>之后。头部标签主要用来封装其他位于文档头部的标签,例如<title>、<meta>、<link>和<stye>等,用来描述文档的标题、作者,以及与其它文档的的关系。

<body>;田干定义HTML文档所要显示的内容,也称为主体标签,浏监器中显示的所有文本、图像、音颛和视频等信息都必须位于<body>内,才能最终展示给用户。一个HTML文档中智能含有一对<body>,且<body>必须位于<html>内,位于<head>之后,与<head>是并列关系。
标签的分类

1.双标签(体标签)<>内容</>

2.单标签(空标签)</>

标签的关系

1.嵌套关系(包含关系)标签

最外层的标签称之为“父级标签”,内层的标签称之为“子级标签“。只有双标签才能作为”父级标签“。

2.并列关系(兄弟关系)

两个标签处于同一级别,并且没有包含关系。如标签和标签就是并列关系。无论双标签还是单标签都可以拥有并列关系。

页面格式化标签

1.标题标签html head(6个)

2.段落标签h1,h2…

3.水平线标签hr

属性名 含义 属性值
align 设置水平线的对齐方式 可选择left、right、center三种值,默认为center,居中对齐显示
size 设置水平线的粗细 以像素为单位,默认为2像素
color 设置水平线的颜色 可用颜色名称,十六进制#RGB、rgb(r,g,b)
width 设置水平线的宽度 可以是确定的像素值,也可以是浏览器窗口的百分比,默认为100%

换行

【案例二】新闻页面

image-20240319143401995

1.标签的属性

HTML标签设置属性的基本语法格式如下

1
<标签名 属性1="属性值1" 属性2="属性值2"…>内容</标签名>

2.HTML文档头部相关标签

3.文本样式标签

4.文本格式化标签

【案例三】图文混排

image-20240324134455314

huang2024/2/26-2024/3/3

本周学习大纲

  1. MySQL数据库
  2. Web前端基础软件安装和调试
  3. Dev-C安装和基础认识

本周学习日历

日历 学习内容 其他
星期一 认识MySQL,安装及启动 \
星期二 数据模型和通用语法 \
星期三 安装Dev-C和基础认识 \
星期四 Web前端(Dreamweaver)安装及调试 \
星期五 \ 离散、高数一周笔记整理
星期六 SQL-DDL-表操作 \
星期天 \

本周学习内容 及 收获

  1. Dev-C和Dreamweaver安装实践成果

    image-20240302151420020
  2. 笔记

    image-20240302154324820
  3. MySQL学习笔记

https://snail0220.github.io/2024/03/02/MySQL%E7%AC%94%E8%AE%B0/

总结

1.刚开学,时间没有把控好,学习起来有些混乱,有点难以把握学习之间的进度。

2.MySQL安装时,遇到问题,自己找了CSDN上面的解决方法,才能慢慢安装好,但是还是有点感觉不对,希望之后可以查证。

下周学习大纲

  1. SQL图形操作
  2. 继续数学笔记补充
  3. web前端,C程序

MySQL

MySQL概述

数据库相关概念

名称 全称 简称
数据库 存储数据的仓库,数据是有组织的进行存储 DataBase(DB)
数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System(DBMS)
SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 Structured Qunery Language(SQL)

image-20240303094054298

不同的数据库管理系统都有一个同样的标准:SQL

MySQL数据库

启动与停止

启动:net start mysql80

停止:net stop mysql80

客户端连接

方式一:MySQL提供的客户端命令行工具

image-20240303100740736

image-20240303100824619

方式二:系统自带的命令行工具执行指令

image-20240303100938301

mysql -u root -p

(需配置PATH环境变量)

关系型数据库

概念:建立在关系模型基础上,有多张相互连接的二维表组成的数据库。

特点:

  1. 使用表存储数据,格式统一,便于维护。
  2. 使用SQL语言操作,标准统一,使用方便。
数据模型img

SQL

SQL通用语法
  1. SQL语句可以单行或多行书写,以分号结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。
  3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
  4. 注释:
    • ​ 单行注释:–注释内容 或 # 注释内容(MySQL特有)
    • ​ 多行注释:/()注释内容()/
SQL分类

img

DDL-数据库操作

  • 查询:查询所有数据库 SHOW DATABASES

    ​ 查询当前数据库 SELECT DATABASE()

  • 创建:CREATE DATABASE [IF NOT EXISTS] 数据库 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

  • 删除:DROP DATABASE [IF EXISTS] 数据库名;

  • 使用:USE 数据库名;

DDL-表操作-查询

  • 查询当前数据库所有表:SHOW TABLES;
  • 查询表结构:DESC 表名;
  • 查询指定表的建表语句:SHOW CREATE TABLE 表名

DDL-表操作-创建

image-20240310131749346

  • 注意:最后一个字段后面没有逗号。

DDL-表操作-数据类型

  • MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

【案例】

![屏幕截图 2024-03-10 132245](C:\Users\黄倩\Pictures\Screenshots\屏幕截图 2024-03-10 132245.png)

image-20240310132331183

DDL-表操作-修改

  • 添加字段:ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
  • 修改数据类型:ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
  • 修改字段名和字段类型:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
  • 删除字段:ALTER TABLE 表名 DROP 字段名;
  • 修改表名:ALTER TABLE 表名 RENAME TO 新表名;

DDL-表操作-删除

  • 删除表:DROP TABLE [IF EXISTS] 表名;
  • 删除指定表,并重新创建该表:TRUNCATE TABLE 表名;
MySQL图形化界面【datagrip】

安装,创建空项目

image-20240310134157544