最新卷妹带你学数据库---5天冲刺Day1_库课跟天一是什么关系(1),2024年最新2024大厂大数据开发面试必问题目

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

| database() |
±------------+
| bjpowernode |
±------------+

导入一下提前准备好的数据:bjpowernode.sql 这个文件中是练习准备的数据库表。
怎么将sql文件中的数据导入
mysql> source D:\course\03-MySQL\document\bjpowernode.sql #注意:路径中不要有中文!!!!

查看表的结构:
mysql> desc dept; # describe缩写为:desc
±-------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-------±------------±-----±----±--------±------+
| DEPTNO | int(2) | NO | PRI | NULL | |部门编号
| DNAME | varchar(14) | YES | | NULL | |部门名字
| LOC | varchar(13) | YES | | NULL | |地理位置
±-------±------------±-----±----±--------±------+

😁9 表的理解

数据库当中最基本的单元是表:table

什么是表table?为什么用表来存储数据呢?

​ 姓名 性别 年龄(列:字段)

​ 张三 男 20 ------->行(记录)
​ 李四 女 21 ------->行(记录)
​ 王五 男 22 ------->行(记录)

数据库当中是以表格的形式表示数据的。因为表比较直观。

任何一张表都有行和列:
行(row):被称为数据/记录。
列(column):被称为字段。

姓名字段、性别字段、年龄字段。

了解一下:
每一个字段都有:字段名、数据类型、约束等属性。字段名可以理解,是一个普通的名字,见名知意就行。
数据类型:字符串,数字,日期等,后期讲。
约束:约束也有很多,其中一个叫做唯一性约束,这种约束添加之后,该字段中的数据不能重复。

🙂10 SQL分类

SQL语句有很多,最好进行分门别类,这样更容易记忆。
分为:
DQL:
数据查询语言(凡是带有select关键字的都是查询语句)
select…

DML:
数据操作语言(凡是对表当中的数据进行增删改的都是DML)
insert delete update
insert 增
delete 删
update 改
这个主要是操作表中的数据data。

DDL:
数据定义语言
凡是带有create、drop、alter的都是DDL。
DDL主要操作的是表的结构。不是表中的数据。
create:新建,等同于增
drop:删除
alter:修改
这个增删改和DML不同,这个主要是对表结构进行操作。

TCL:
是事务控制语言
包括:
事务提交:commit;
事务回滚:rollback;

DCL:
是数据控制语言。
例如:授权grant、撤销权限revoke…

😏14 简单查询

查询一个字段?
select 字段名 from 表名;

其中要注意:select和from都是关键字。

字段名和表名都是标识符。

强调:对于SQL语句来说,是通用的,所有的SQL语句以“;”结尾。
另外SQL语句不区分大小写,都行。

查询两个字段,或者多个字段使用逗号隔开“,”
查询部门编号和部门名
select deptno,dname from dept;
±-------±-----------+
| deptno | dname |
±-------±-----------+
| 10 | ACCOUNTING |
| 20 | RESEARCH |
| 30 | SALES |
| 40 | OPERATIONS |
±-------±-----------+

查询所有字段
第一种方式:可以把每个字段都写上
select a,b,c,d,e,f… from tablename;

第二种方式:可以使用*
select * from dept;
±-------±-----------±---------+
| DEPTNO | DNAME | LOC |
±-------±-----------±---------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
±-------±-----------±---------+

这种方式的缺点:
    1、效率低
    2、可读性差。
在实际开发中不建议,可以自己玩没问题。
你可以在DOS命令窗口中想快速的看一看全表数据可以采用这种方式。

给查询的列起别名:使用as关键字起别名。
mysql> select deptno,dname as deptname from dept;
±-------±-----------+
| deptno | deptname |
±-------±-----------+
| 10 | ACCOUNTING |
| 20 | RESEARCH |
| 30 | SALES |
| 40 | OPERATIONS |
±-------±-----------+
注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname
记住:select语句是永远都不会进行修改操作的。(因为只负责查询)

as关键字可以省略吗?可以的
mysql> select deptno,dname deptname from dept;

假设起别名的时候,别名里面有空格,怎么办?
select deptno,dname ‘dept name’ from dept; //加单引号
select deptno,dname “dept name” from dept; //加双引号
±-------±-----------+
| deptno | dept name |
±-------±-----------+
| 10 | ACCOUNTING |
| 20 | RESEARCH |
| 30 | SALES |
| 40 | OPERATIONS |
±-------±-----------+
注意:在所有的数据库当中,字符串统一使用单引号括起来,单引号是标准,双引号在oracle数据库中用不了。但是在mysql中可以使用。

🤗22 条件查询

条件查询
条件查询:不是将表中所有数据都查出来。是查询出来符合条件的。

查询语法格式:
select
字段1,字段2,字段3…
from
表名
where
条件;
都有哪些条件?
= 等于
查询薪资等于800的员工姓名和编号?
select empno,ename from emp where sal = 800;
查询SMITH的编号和薪资?
select empno,sal from emp where ename = ‘SMITH’; //字符串使用单引号

<> 或!= 不等于
查询薪资不等于800的员工姓名和编号?
select empno,ename from emp where sal != 800;
select empno,ename from emp where sal <> 800; // 小于号和大于号组成的不等号

< 小于
查询薪资小于2000的员工姓名和编号?
mysql> select empno,ename,sal from emp where sal < 2000;
±------±-------±--------+
| empno | ename | sal |
±------±-------±--------+
| 7369 | SMITH | 800.00 |
| 7499 | ALLEN | 1600.00 |
| 7521 | WARD | 1250.00 |
±------±-------±--------+

<= 小于等于
查询薪资小于等于3000的员工姓名和编号?
select empno,ename,sal from emp where sal <= 3000;

大于
查询薪资大于3000的员工姓名和编号?
select empno,ename,sal from emp where sal > 3000;

= 大于等于
查询薪资大于等于3000的员工姓名和编号?
select empno,ename,sal from emp where sal >= 3000;

between … and …. 两个值之间, 等同于 >= and <=
查询薪资在2450和3000之间的员工信息?包括2450和3000
第一种方式:>= and <= (and是并且的意思。)
select empno,ename,sal from emp where sal >= 2450 and sal <= 3000;
±------±------±--------+
| empno | ename | sal |
±------±------±--------+
| 7566 | JONES | 2975.00 |
| 7698 | BLAKE | 2850.00 |
| 7782 | CLARK | 2450.00 |
| 7788 | SCOTT | 3000.00 |
| 7902 | FORD | 3000.00 |
±------±------±--------+
第二种方式:between … and …
select
empno,ename,sal
from
emp
where
sal between 2450 and 3000;

注意:
使用between and的时候,必须遵循左小右大。
between and是闭区间,包括两端的值。

is null 为 null(is not null 不为空)
注意:在数据库当中null不能使用等号进行衡量。需要使用is null因为数据库中的null代表什么也没有,它不是一个值,所以不能使用等号衡量。

and 并且

or 或者

and和or同时出现的话,有优先级问题吗?
and和or同时出现,and优先级较高。如果想让or先执行,需要加“小括号”.以后在开发中,如果不确定优先级,就加小括号就行了。

in 包含,相当于多个 or (not in 不在这个范围中)

not 可以取非,主要用在 is 或 in 中

like 称为模糊查询,支持%或下划线匹配

%匹配任意多个字符

#下划线:任意一个字符。

#(%是一个特殊的符号,_ 也是一个特殊符号)

找出名字以T结尾的?
select ename from emp where ename like ‘%T’;

找出名字以K开始的?
select ename from emp where ename like ‘K%’;

找出第二个字每是A的?
select ename from emp where ename like ‘_A%’;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

ike ‘_A%’;

[外链图片转存中…(img-hFiKXOME-1715818945398)]
[外链图片转存中…(img-89BWem3r-1715818945398)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值