16/3/2024
如没有特殊说明使用软件操作一律都是 FinalShell
第三章
Vim 编辑器的使用
1) 三种操作模式
命令模式:使用快捷指令操作的文件内容
插入模式(编辑模式): 可以输入文字信息,此时快捷指令失效
末行模式(低行模式),底线命令模式):可以保存 退出或者替换文字等
只能编辑文本内容 不能对字体段落进行排版
没有菜单 只有命令 不支持鼠标操作 跟CMD一样(win + r 输入 cmd)
vim(编辑器之神) 是从vi发展出来的文本编辑器
2)操作命令
vim + 文件
o 编辑(进入命令模式)
u = Crel Z 撤回
dd 删除
ESC后(推出进入模式)
: 到底部 输入 :wq 推出并且保存
.swp过程文件 (可以恢复突然关闭的文件)
恢复删除文档 (D(删除)和 R(恢复))
单个使用D 多个可使用 rm -r *.swp (删除过程文件)
第四章
MySQL 数据库 (储存数据的仓库)使用5.几的版本 6以后需要收费
orcale 更加安全 唯一缺点 收费
1)
结构化数据 单一性 横竖可以直接锁定
2)
MySQL (已经被orcale收购 mysql6.x开始收费) :语法简单 。多种语言 api python java php js go 。 支持多平台 。 支持数据结构化 。开源免费。存储大量数据
3)
两种形式
关系型和非关系型
关系型: SQL 据 行列确定唯一的数据值 (也可以处理其他)
非关系型 : Nosql (不仅仅是Sql) 储存是KV结构 (一个键对应一个值)
常见的关系型数据库 (关系型的语法大多数相同)
1. MYSQL (中小型公司使用居多)被Oracle 收购
2.Oracle 收费(大公司)最好的 缺点就是收费
3.DB2 常用在银行系统中 (安全 稳定 精度损失)IBM公司旗下产品 (收费)
4.SQLServer MicroSoft 微软公司产品 (收费)windows中非常好用
5.SQLite 嵌入式的小型数据库 (应用在手机端)不能存储海量数据
阿里的MYSQL 除了名字和mysql有关系 其内容都是自己开发
常见的非关系型数据库 (kv结构)(每一个操作方法和语法都不相同)
Redis 小而美的数据库 主要用于在key-value 读写性能极佳 缺点使用内存缓存 没电就G
HBase 列式数据库 高效存储大量数据 (大数据三驾马车之一)要会用!!!海量数据使用存储很快
MongoDB 进行大型文本数据的存储 文档型数据库 非常接近关系型数据库 (爬虫会用)
4)
使用 5.几的版本 更稳定兼容
查询是否已安装mysql
mysql -V (一定要大写V)
5)
连接mysql服务器
输入 mysql -uroot -p密码 登陆客户端
建议使用 mysql -uroot -p 在下方输入密码 防止他人窥探 (输入密码时看不见)
ctrl + c 退出 或者 输入 quit
6)
DataGrip (从这里开始使用Datagrip)
大型数据开发的必备工具
IDE 集成化开发环境 ---- 使用datagrip
select version() 查看版本
7)
SQL分类 4类
1. 数据定义语言 DDL 用来定义数据库对象:数据库 表 列等 关键字:create alter drop等
2.数据操作语言 DML 用来对数据中表的记录进行更新。关键字 insert delete update等
3.数据控制语言 DCL 定义数据库的访问权限和安全级别
4. 数据查询语言 DQL 进行数据查询的工作 数据的读取工作
8)
sql 语句用;结尾
select * from student where name = “liming”
和 select * from
student。。。。。。。。。 是一样的 空格和隔行不受影响
9)
/* */ 多行注释
-- 单行注释 --后要加一个空格
# 也可以 但是不建议 其他数据库中可能#会引起报错
10)
数据类型 (先记住这些 在后续讲解中会详细介绍)
数据类型要划分清楚
根据数据结构储存在不同位置
不同的类型数据操作方式不一致
不同的数据类型占用空间的大小不一致,细分数据类型可以节省空间
整型 (整数) : int
浮点型(小数 ) : double
日期类型 : datetime 时间日期 data 没有时间只有日期
文本型:一般用于计算或者分类的数据 char varchar
11)
DDL
mysql服务相当于excel软件
每一个mysql数据库相当于一个excel文件
每一个文件中的多个sheet详单与数据表
每个表中的列嗦引相当于字段
11)
DDL 数据库的创建 使用和删除
1. 数据库的创建
create database 数据库名称
2.查看当前服务中所有的数据库名称
Show Databases
3. 使用数据库
USE test_db;
4. 查看当前正在使用的数据库
SELECT DATABASE();
5. 删除数据库
DROP DATABASE test_db;
再次查看所有数据库,看是否删除完成
SHOW DATABASES;
6. 当我们创建数据库时,该数据库名称已经存在则会报错
Can't create database 'test_db'; database exists
CREATE DATABASE test_db;
-- 为了避免报错,我们会创建数据库时增加if not exists 避免程序报错
CREATE DATABASE IF NOT EXISTS test_db;
一般在我们创建数据库时,会增加数据集,因为如果不书写数据集,将会无法存储中文.
CREATE DATABASE test_db_utf8 CHARSET = utf8;
CREATE DATABASE IF NOT EXISTS test_db_utf8 CHARACTER SET 'utf8';
快速格式化快捷键 : ctrl + alt + L
7. 查询数据库的创建语句
CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET latin1 */
SHOW CREATE DATABASE test_db;
CREATE DATABASE `test_db_utf8` /*!40100 DEFAULT CHARACTER SET utf8 */
SHOW CREATE DATABASE test_db_utf8;
建表
use test_db;
-- 创建一个数据包
/*
create table 表明(
字段名称1 字段类型 约束
字段名称1 字段类型 约束
字段名称1 字段类型 约束
)
*/
USE test_db;
CREATE TABLE student
(
id INT PRIMARY KEY ,
name varchar(20) ,
gender varchar(10)
);
-- 2. 查看数据库中所有的数据表表名字
SHOW TABLES ;-- 查看当前所有使用的数据库内所有表明
-- 3. 查看数据表的详细信息,或者说查看数据表的字段详情
DESC test_db.student;
-- 等价于
DESCRIBE test_db.student;
-- 4.删除
DROP TABLE test_db.student;
-- 查看是否被删除
SHOW TABLES IN test_db;
-- 5.重复创建相同名也会报错 使用if no exists 进行修饰
USE test_db;
CREATE TABLE IF NOT EXISTS student(
id int PRIMARY KEY ,
name varchar(20),
gender varchar(10)
);
-- 6.删除名称不存在的数据表一样会报错 可以使用if exists进行修饰
-- 如果存在就删除,如果不存在则什么也不做
DROP TABLE IF EXISTS student;
-- 7.
USE test_db;
CREATE TABLE student (
id int PRIMARY KEY ,
name varchar(20),
gender varchar(10)
);
SHOW TABLES ;
DROP TABLE test_db.student;
数据表字段操作
CREATE TABLE test_db.student(
id int NOT NULL ,
name varchar(20),
gender varchar(30)
);
-- 1.查看数据表中的字段详情
USE test_db;
DESC student;
-- 2.给数据表增加一个字段
-- 格式:alter table 表名 add 字段名 字段类型 【约束】
-- 需求:给student 表增加一个height字段 字段类型为double 无约束
ALTER TABLE student ADD height double;
-- 查看表中的字段详情
DESC student;
-- 3.在数据表中修改一个字段
-- 格式:alter table 表名 change 旧字段名 新段名 【约束】
-- 需求:将students 表中的一个字段id 修改为stu_id 数据类型bigint 无约束
ALTER TABLE student CHANGE id stu_id bigint;
-- check 表
DESC student;
-- 如果我们修改字段时,仅需要修改数据类型或约束, 不需要修改字段名称, 也需要再写一遍旧字段名称
-- 需求: 将students表中的stu_id字段 修改为int 类型, 约束为 not null
ALTER TABLE student CHANGE stu_id stu_id int NOT NULL ;
-- 查看表中的字段详情
DESC student;
-- 扩展: 如果进需要修改字段的数据类型或约束, 不需要修改字段名称,我们也可以使用modify进行修改
-- 格式: alter table 表名 modify 字段名称 字段类型 [约束];
ALTER TABLE student MODIFY stu_id bigint;
DESC student;
-- 4. 删除表中的字段
-- 格式: alter table 表名 drop 字段名称;
-- 需求: 删除表中的gender字段
ALTER TABLE student DROP gender;
-- 查看表中的字段详情
DESC student;
-- 5. 修改表的名称
ALTER TABLE student RENAME TO xuesheng;
-- 查看表名是否发生改变
SHOW TABLES ;
库表注释
comment
-- 1.创建一个数据库
CREATE DATABASE db_1 CHARSET = 'utf8';
-- 使用数据库db_1
USE db_1;
-- 2.创建一个数据表
CREATE TABLE person(
id int COMMENT '身份证号',
name varchar(30) COMMENT '名字',
gender varchar(30) COMMENT '性别'
)COMMENT '人口表';
-- 3.查询表的创表语句
SHOW CREATE TABLE person;