一.创建文件(三种方式)
1.touch xxx
[root@st10 ~]# touch 1.log
2. vim/vi xxx [编辑文件的名命令]
[root@st10 ~]# vim 2.log
3.echo "xxx" > 3.log
echo "xxx" => 控制台打印
> =》 创建或者覆盖一个文件
>> => 追加到一个文件
echo "xxx" >> 3.log
二.vim 编辑文件+文件里面添加内容
vim 命令:
三种模式:
命令行模式
编辑模式
尾行模式
编辑一个文件:
1.打开文件 vim 1.log => 命令行模式
2.编辑文件 【往文件里面添加内容】 =》
命令行模式 -> 编辑模式
i
添加内容
3.退出保存 =》 编辑模式
编辑模式 =》 命令行模式 =》尾行模式
esc =》
尾行模式【保存退出】:
1.进入尾行模式 : shift+; => :
w 保存
q 退出
! 强制
三.查看文件(4个)
1.cat xxx 文件内容全部显示 【查看文件内容比较少】
[root@st10 ~]# cat 1.log
2.查看大文件
more xxx 文件内容一页一页往下翻 按 空格往下翻 q退出 ctrl+ c ctrl+ z
less xxx 文件内容一页一页往下翻 按 空格往下翻 q退出 ctrl+ c ctrl+ z
3.实时查看
tail -f / -F xxx
f
F = f+ retry
四.tar归档文件
1.log 2.log 3.log => xxx.tar => xxx.tar.gz
linux:
gzip
1.创建归档文件
[root@st10 ~]# tar -cf log.tar 1.log 2.log 3.log
1.加 一个 压缩
[root@st10 ~]# tar -zcf log.tar.gz 1.log 2.log 3.log
2.用户有感知 -v
tar -zcvf log1.tar.gz 1.log 2.log 3.log
2.取出归档文件里面的文件
[root@st10 ~]# tar -xf log.tar -C ./bigdata/
1.取出一个 压缩
[root@st10 ~]# tar -zxf log.tar.gz -C ./dir1/
2.用户有感知 -v
tar -zxvf log1.tar.gz -C ./dir2/
gz:
-z
-zxvf 取出
-zcvf 创建
普通:
-xvf 取出
-cvf 创建
linux 安装软件:
1.rpm
2.yum
3.tar
软件:
1.配置文件
rpm -qa 查询linux下 有哪些 rpm的包
| 管道符 =》 上一个命令的结果作为下一个命令的输入
grep 过滤
五.linux 部署mysql
1.安装包
1.解压
[root@st10 ~]# tar -xvf ./mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar -C ./mysql
2.卸载 linux自带的 mysql 子类包
1).查询:
rpm -qa|grep mariadb
2).卸载
rpm -e --nodeps mariadb-libs
再次查看:
rpm -qa|grep mariadb
3.安装
rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm
4.启动
mysql日志文件:/var/log/mysqld.log
1).mysql 初始化
mysqld --initialize --user=mysql
2).启动mysql
systemctl start mysqld
mysql对外服务的端口:
port: 3306
5.登录mysql
mysql -uroot -pUJsboU3cqD.r
需要转义: (
mysql -uroot -p\(
mysql:
database 库 文件夹
table 表 excel
6.修改密码
alter user root@localhost identified by '123456';
7.远程连接
1).修改mysql 任意ip都可以访问
update mysql.user set host='%' where user='root';
2).刷新权限
flush privileges;
3).关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
4).远程登录的软件
netcat
dbvear
10.win
MySQL语法:
database =》 数据库 文件夹
table =》 表 excel
table:
1).列名 column
2).列的类型 type
1.字段类型:
数值类型 :
int 整型
long 长整型
float 单精度
double 双精度
decimal 小数值 钱有关的
字符串:
char 字节 定长 0-255 bigdataxxxxxx 自动补齐的
varchar 字符串 变长 0-65535 bigdata
text
日期:
date 日期 YYYY-MM-DD
time 时间 HH:MM:SS
datetime 年月日时分秒 YYYY-MM-DD HH:MM:SS
timestamp 年月日时分秒 YYYY-MM-DD HH:MM:SS
2.sql类型
ddl 数据定义语言:create drop alter
dml 数据操作语言: select insert update delete 增删查改
dcl 数据控制语言: grant 【不需要掌握】
3.基本语法 【sql】
database
table
1).创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {'Y' | 'N'}
}
create database zl;
2).查看数据库
show databases;
3).创建一个表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
4).切换数据库
use bigdata;
create TABLE student(
id int(11),
name varchar(20),
age int(3)
);
5).查看库下面的表
show tables;
6).补充 建表:
create TABLE student(
id int(11),
name varchar(20),
age int(3)
);
create TABLE student_info(
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(20) COMMENT '姓名',
age int(3),
create_user varchar(20),
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY(id)
);
注意:
1.表名称 一定要写英文
2.建表风格
3.第一字段 使用自增主键 【本身没有任何业务意义】
4.字段 要加上注释
7.insert 插入数据
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[(col_name [, col_name] ...)]
{ {VALUES | VALUE} (value_list) [, (value_list)] ... }
insert into bigdata.student_info(name,age) VALUES ('俊松',18);
insert into bigdata.student_info(name,age) VALUES ('junsong',18),("xinyu",38);
8.查看表中数据
select
select_expr => [ column ]
from bigdata.student_info
where [ 过滤]
* [ 代表所有字段]
select
*
from bigdata.student_info;
select
name,age
from bigdata.student_info
9.update 更改数据 【 注意:是否要加 where 】
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
update bigdata.student_info set age=20 where name='zhangli';
update bigdata.student_info set age=20 ;
10.delete 语句 删除某条数据 【 注意:是否要加 where 】
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias]
[PARTITION (partition_name [, partition_name] ...)]
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
delete FROM bigdata.student_info where name='zhangli';
delete FROM bigdata.student_info;
6.其他语法
1.where 【过滤条件】
where column expresion
1.> < = and or in not in
insert into bigdata.student_info(name,age) VALUES ('张莉',18);
insert into bigdata.student_info(name,age) VALUES ('zhangli',18),("xueqing",38);
insert into bigdata.student_info(name,age) VALUES ('zhangli',18),("java",38);
insert into bigdata.student_info(name,age) VALUES ('lb',18),("lb01",38);
insert into bigdata.student_info(name,age) VALUES ('lb02',18),("qqg",38);
insert into bigdata.student_info(name,age) VALUES ('lb',20);
insert into bigdata.student_info(name,age) VALUES ('lb',30);
select
*
from bigdata.student_info
where age <20;
select * from bigdata.student_info where name='lb' and age=18;
select * from bigdata.student_info where name='lb' or age=38;
select * from bigdata.student_info where name in ("张莉",'zhangli');
2.order by 排序语法
select * from bigdata.student_info order by age asc;
select * from bigdata.student_info order by age desc;
select * from bigdata.student_info order by age desc;
select * from bigdata.student_info order by age desc,name asc;
3.like 语法 【 regexp 】
模糊查询 :
1.% 模糊
2._ 占位符
select * from bigdata.student_info where name like "%j%";
select * from bigdata.student_info where name like "_b%";
4.合并表
union 去重
union all 不去重
create table a(id int,name varchar(20));
create table b(id int,name varchar(20));
insert into a VALUES(1,'zl');
insert into b VALUES(1,'zl');
insert into b VALUES(2,'xq');
select * from a
union
select * from b ;
select * from a
union all
select * from b ;
5.null 语法
insert into bigdata.student_info(name,age,create_user) VALUES ('lb',30,"arsd");
1.过滤空值 :
null
''
'null'
is null :
select * from student_info where create_user is null;
is not null :
2.处理空值 : etl 数据清洗
null =》
1.数值类型 0
2.字符串 unknown 、 --
select *,处理空值的函数(create_user) as create_user_etl from student_info;
处理空值的函数:
ifnull
coalesce
select *,ifnull(create_user,'--') as create_user_etl from student_info;
select name,age,create_user,coalesce(create_user,'--') as create_user_etl from student_info;
6.聚合函数(分组的语法)
1.分组 : group by xxx,... [以谁进行分组]
2.聚合函数 sum avg max min count
1.不加分组 =》 全表 =》聚合函数 =》 指标
平均年龄
select avg(age) as avg_age from student_info;
2.分组+ 聚合函数
select name, avg(age) as avg_age from student_info group by name;
原本数据:
俊松
zhangli
xueqing
zl
java
lb
lb01
lb02
qqg
lb
lb
lb
分组+聚合函数【统计指标】=》
1.分组
lb,<20,30,30>
zhangli,<18>
lb02,<20>
2.聚合函数【统计指标】 avg
lb , 80/3
zhangli ,18/1