加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
NSD2202随堂文档6月3号-7号 10.79 KB
一键复制 编辑 原始数据 按行查看 历史
庞丽静
静静老师 第四阶段数据库课程
240398019
panglj@tedu.cn
1 讲课的时候不要跟着做实验
2 rhel7 操作系统的虚拟机 防火墙和 selinux 必须关闭 必须配置yum源
3 第四阶段数据库课程介绍
要具备 前提条件 第1阶段的课程必须掌握
网站服务的使用
认识26个英文字母
能听懂中文 (专业术语)
MySQL软件
第一门课 数据库基础 RDBMS1 6天 (6-8)
第二门课 数据进阶 RDMBS2 5天
第三门课 NoSQL(Redis) 3天
第四门课 数据库项目 project2 2天 (1-4阶段知识综合应用)
数据库课程使用到的软件 /linux-soft/4/mysql
192.168.4.50
mysql-5.7.17.tar
phpMyAdmin-2.11.11-all-languages.tar
tarena.sql 数据库文件(不能打开)
RDBMS1_DAY01
1 数据库介绍
提供网站服务的软件有哪些? Apache nginx tomcat
提供数据库服务的软件有哪些?
专业术语? (行业的黑话) 黑社会 条子来了
DB 数据库
DBS 安装数据服务软件的主机
RDBMS 提供数据库服务的软件 (关系型数据库管理系统) MySQL
DBA 数据库管理员
MySQL数据库服务软件介绍
1 了解发展史
2 应用场景
课间休想到 10:15
搭建MySQL服务器
mysql -hlocalhost -uroot -p'nOx=:y;PT8g='
-h数据服务器地址 -u数据库管理员名字 -p密码
搭建MySQL数据库服务器
192.168.4.50 root 123qqq...A
192.168.4.51 root NSD2021...a
密码管理
1 修改数据库服务器的密码策略
查看默认使用的密码策略
修改密码策略
修改密码
新密码登录
练习10分钟到 14:25
2 破解数据库管理员本机登录密码
2.1 破解线下数据库服务器管理员root的密码
在50主机做练习 时间10分钟到 14:50
课间休息到 15:10
2.2 破解线上数据库服务器管理员root的密码
数据库服务不用重启
用知道密码的数据库服务器 覆盖不知道密码的服务器的密码
2.3 修改数据库管理员密码 (必须符合当前数据库服务器的密码策略)
登录后修改 alter user
登录前修改 mysqladmin
练习10分钟到 16:00
把软软拷贝phpMyAdmin-2.11.11-all-languages.tar 到50 主机里
休息到16:15
线上:正在被访问的数据库服务器
线下: 没有被网站服务访问的数据库服务器
3 修改数据库管理员本机登录密码
连接数据服务器的连接方式
命令行连接 mysql -hlocalhost -uroot -p123456
执行脚本连接 python php java
连接图形工具 对数据库服务器做管理
图形工具提供图形界面下的 对数据库做管理操作的 按钮
在数据库服务器安装图形软件 host50
部署软运行环境 apache php
安装phpmyadmin软件
创建并修改phpmyadmin配置文件
客户端打开浏览器访问 (打开真机的浏览器)
http://192.168.4.50/phpmyadmin
用户 root
密码
把tarena.sql 拷贝到 50主机里
练习 + 休息到 17:05
数据基础查询
tarena.sql
对存放在数据库表里数据做查找 叫查询记录 select
5分钟体验一下 select 命令的基本使用 到 17:50
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
select 表头名 from 库.表 ; #查看表里的所有行
select 表头名 from 库.表 where 筛选条件;只查询表里符号条件的行
筛选条件
给找到的数据定义名称(别名)
合并查询结果
去重显示
数值比较
练习到 09:48
字符比较
课间休息15分钟到 10:17
空 is null 表头下没有数据
非空 is not null 表头下有数据
name
null
""
"null"
null 表示没有数据的命令 无
范围匹配 练习到 10:55
模糊匹配 休息+练习到 11:20
正则匹配 使用正则表达式做筛选条件
元字符 ^ $ . [] | *
regexp '正则表达式' 练习10分钟到 11:41
^a.*t$
Insert into tarena.user(name) values("a b");
逻辑判断 : 有多个筛选条件 练习到 14:18
逻辑与 and && 多个条件必须同时成立
逻辑或 or || 多个条件中 某个条件成立即可
逻辑非 not ! 取反 练习时间到 12:00
not 性别 女 || 学历 != 本科 || 英语水平 四级 || 颜值 高
update delete select
~~~~~RDBMS1_DAY02
一 、表管理
1.1 建库 (文件夹) 库名命名规则 查看 创建 进入 删除
1.2 建表 (文件) 练习+休息到15:20
show tables;
create table 库.表(表头名列表);
desc studb.stu;
select * from studb.stu;
drop table studb.stu;
理论知识
E-R模型
建表范式
修改表: alter table 库.表名 处理动作;
改表名 rename
添加新表头 add
删除已有表头 drop
修改表头的数据类型 modify
修改表头名 change
练习到 16:00 休息10分钟到 16:10 上课 。
复制表 类似于 系统的cp 命令 练习到 16:32
复制表头和数据
只复制表头不复制数据
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
设计存储学生信息的表
考虑有几张表 表里都什么表头 表头存储数据的类型
2NF 一张只存储1种数据信息 不能把多种数据信息使用一张表存储
如果有多种数据信息必须 拆表。同时表里要有主键 主键可以唯一标识表
里每一行
主键 : 表头的值唯一 且不允许赋null值
学号 语文 数学
9 90 100
7 89 63
select 语文+数学 as 总成绩 from 成绩表 where 学号=9;
delete from 成绩表 where 学号=9;
2023
1998
select 2023 - 出生年份 as 年龄 from stuinfo where 学号=4;
休息到 17:26
管理表记录
向表中添加新行(插入表记录)insert [into]
给表中的所有表头赋值
仅给表中的指定表头赋值
其他方法
set方式存储
使用查询结果存储数据
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
更新表记录 update 修改行中列的值
批量修改
仅修改与筛选条件匹配行中的列
update 库.表 set 表头名=值 where 筛选条件;
删除表记录 删除表中的行
仅删除与筛选条件匹配的行
delete from 库.表 where 筛选条件;
删除表中的所有行
delete from 库.表;
练习10分钟到 09:30
MySQL数据类型 创建表时要给表设置合理的数据类型 便于对数据的
增Insert 删delete改 update查 select 操作
每种数据类型都有对应的命令表示 和规定的存储范围
数值类型 表头下只能存储数字
数字有正数 和 负数 之分
19 -19
数字还有 整数 和 小数之分
19 19.11
整数类型
tinyint
int
浮点型
float
double
工资 成绩 奖金 身高 体重 年龄 游戏人物的等级
练习 + 休息到 10:30
字符类型 表头存储汉字或因为字母 或汉语拼音
char 定长类型 255字符
name char(3)
a
ff
lucy
varchar 变长类型 65532字符 name varchar(65532)
name varchar(3)
a
ff
lucy
夫管严 30元
定长 29 15
变长 29 15
班级名称 char(7) 邮箱 varchar(50)
nsd2202 panglj@tedu.cn
nsd2203 plj@163.com
姓名 收货地址 籍贯
图片 歌曲 视频 二进制格式
字符类型练习+休息到 11:20
指定表使用中文字符集 让表头可以存储中文 练习8分钟到 11:37
枚举类型 表头的值在定义的范围内选择
单选 enum 只能选择范围内的一个值 给表头赋值
多选 set 选择范围内的一个或多个值 给表头赋值
练习到 12:00
name 姓名 sex 性别 likes 爱好 (game sleep eat money)
boy
girl
no
create table studb.t8(name char(3) , sex enum("boy","girl","no") ,
likes set("game" , "sleep" , "eat" , "money") );
日期时间类型 表头下存储的是与时间相关的数据 练习到14:22
比如 生日 出生年份 上班时间 会议时间
20221120 2000 210000 20221001183000
年类型 year yyyy
日期 date
时间 time
日期时间 datetime 或 timestamp
create table studb.t6(
姓名 char(3),
出生年份 yesr,
生日 date,
上班时间 time,
聚会时间 datetime
)default charset utf8;
year类型赋值 及 2种日期时间类型的区别练习到 14:50
休息到 15:10
数据导入导出
检索目录 :导入导出数据时存储数据的文件 存放的目录
查看检索目录 和 修改检索目录 练习到15:30
数据导入: 把系统文件的内容存放数据库的表里 练习+休息到 16:10
操作步骤:
创建存储表的库
创建存储数据的表
把系统文件拷贝检索目录下
导入数据
查看数据
需求:把系统文件/etc/passwd文件的存储到db1库的user 表里
创建存储表的库
创建存储数据的表 根据文件的内容创建表头设置数据类型
导入数据
命令格式 load data infile "/目录名/文件名" into table 库.表
fields terminated by "文件中列的间隔符号" lines terminated by "\n";
查看数据
select * from db1.user;
数据导出: 把表记录存储到系统文件里 练习到 16:40
select查询命令 into outfile "/检索目录名/文件名" ;
select查询命令 into outfile "/检索目录名/文件名"
fields terminated "列间隔符号";
select查询命令 into outfile "/检索目录名/文件名"
fields terminated "列间隔符号"
lines terminated "行间隔符号";
bin#/sbin/nologin!!!daemon#/sbin/nologin!!!adm#/sbin/nologin
数据导入 和 导出
RDBMS1_DAY03
一、 字段约束 约束设置在表头上,给表头存储数据时加限制
姓名 身份证号 班级
大美丽 112
大美丽 111
xxx null nsd2022
insert into t1(姓名,身份证号) values ("xxx",123);
基本约束 不允许为null 和定义默认值 练习到 17:40
UNI
唯一索引
姓名 驾驶证编号 考试编号 学号证号
plj null
丫丫 001
惊讶呀 002
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化