阶段二 Linux数据库

Rudy 2025-3-3 29 3/3

一、Linux文件系统和目录

阶段二 Linux数据库

确定linux当中ssh的服务是否开通

netstat -anpt | grep ssh

-a‌(all)-n‌(numeric)-p‌(program)-t‌(tcp)

ls -lha /usr/bin #  查看/usr/bin文件夹里面的内容

阶段二 Linux数据库

rm -i 表示交互式执行删除操作,删除前会有提示

rm -f 表示强制删除,忽略不存在的文件

rm -r 表示删除目录及目录下所以的内容

文件或目录的复制:cp

命令格式:cp 源文件 目标文件

查看系统进程

ps -aux | grep top

进程号

kill -9 进程号

查看系统监听端口

netstat -anptu | grep mysql

netstat -anptu | gerp 3306

二、数据库

1、分类

常用关系型数据库

Oracle、MySQL、Microsoft SQL Server、SQLite

非关系型数据库

redis、mongodb、hbase

2.mysql使用

netstat -anptu | grep 3306

mysql -u root -p

主键:id(唯一标识)外键:book_id(与其他表相关联)

desc database;查看表结构

添加多行数据

insert into students (id, name) values(0,'张三');

修改数据

update students set name='ᇲՌ๼ ',age=22 where id=5

删除数据

delete from students where id=6;

此方法为物理删除,工作中大部分使用逻辑删除

逻辑删除是指通过设定一个字段来标识当前记录已经删除,如is_delete

其他删除数据的方式:

truncate table studens;  清除表里面所有的数据,但是表结构会保留,自增长字段的值会从1开始。

drop table students; 删除数据表,包括数据和表结构

模糊查询:

select * from students where name like '孙%';

范围查询:

select * from students where hometown in ('北京','上海 ','广东');

排序:

select * from ᤒݷ order by 字段1 asc|desc,  字段2 asc|desc ........

求表的总的记录数

select count(*) from students;

分组查询:

select sex,count(*) from students group by sex;

分组加条件:

select sex,count(*) from students group by sex having sex='男';

分页查询:

select * from students limit (n-1)*m, m;  (n为第n页数据,m为条数 )

3.连接查询

阶段二 Linux数据库

内连接 select * from 表名1 inner join 表名2 on 表1.列=表2.列;

查询的是两个表的交集的数据

表1的列与表2的列一定是存在关联关系

内连接连接时可以连接多个表

select * from 表1 left join 表2 on 表1.列=表2.列

左连接查询的是左表特有的数据,对于右表中不存在的数据用null来填充

右连接

select * from 表1 right join 表2 on 表1.列=表2.列

右连接查询的是右表特有的数据,对于左表中不存在的数据用null来填充

自关联

自连接的应用场景

省、市、区的信息,一般不会分开放在不同的表里面进行存储,而是放在同一个表当中。

阶段二 Linux数据库

要通过自关联进行查询时,当前自关联的表当中一定会存在两个相关联的字段

select * from 表名 as 别名1 inner join 表名 as 别名2 on 别名1.列=别名2.列

-- 查询出河南省所有的市

select * from areas as a1 inner join areas as a2 on a1.aid=a2.pid where a1.atitle='河南省';

子查询

将一条SQL查询的语句嵌入在其他的SQL语句中,被嵌入的SQL语句称之为子查询,其他的SQL称之为主查询

子查询select语句,要么是充当条件,要么充当数据源

子查询语句是一条完整的select语句,且可以单独执行

-- 例1:查询王昭君的成绩,要求显示成绩(标量子查询)

select studentNo from students where name='王昭君';

子查询充当条件

select * from scores where studentNo=(select studentNo from students where name='王昭君');

子查询充当数据源

-- 例1:查询数据库和系统测试的课程成绩

select * from scores as sc inner join (

select * from courses where name in ('数据库','系统测试')

) as co on sc.courseNo=co.courseNo;

实战:

查看数据库表的字段

关联表

- THE END -
最后修改:2025年5月3日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论