卷妹带你学数据库---5天冲刺Day1

举报
京与旧铺 发表于 2022/06/29 16:27:21 2022/06/29
【摘要】 卷妹带你学数据库---5天冲刺Day1👩‍💻博客主页:京与旧铺的博客主页✨欢迎关注🖱点赞🎀收藏⭐留言✒🔮本文由京与旧铺原创,csdn首发!😘系列专栏:java学习👕参考网课:尚硅谷💻首发时间:🎞2022年5月31日🎠🎨你做三四月的事,八九月就会有答案,一起加油吧🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎...

卷妹带你学数据库---5天冲刺Day1

👩‍💻博客主页:京与旧铺的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创,csdn首发!

😘系列专栏:java学习

👕参考网课:尚硅谷

💻首发时间:🎞2022年5月31日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲


图片


🛒导航小助手🎪


🥩1 数据库概述

什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?

数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。 数据库管理系统: DataBaseManagement,简称DBMS。 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。 常见的数据库管理系统: MySQL、Oracle、MS SqlServer、DB2、sybase等....

😶2 什么是SQL

程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。 SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在mysql中可以使用, 同时在Oracle中也可以使用,在DB2中也可以使用。

三者之间的关系? DBMS--执行--> SQL --操作--> DB

先安装数据库管理系统MySQL,然后学习SQL语句怎么写,编写SQL语句之后,DBMS 对SQL语句进行执行,最终来完成数据库的数据管理。

🤣8 mysql常用命令

退出mysql :exit;

查看mysql中有哪些数据库 : show databases; #注意:以分号结尾,分号是英文的分号。 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ mysql默认自带了4个数据库。 选择使用某个数据库: mysql> use test; Database changed 表示正在使用一个名字叫做test的数据库。

创建数据库: mysql> create database bjpowernode; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | bjpowernode | | mysql | | performance_schema | | test | +--------------------+ 查看某个数据库下有哪些表: mysql> show tables;

查看mysql数据库的版本号: mysql> select version(); +-----------+ | version() | +-----------+ | 5.5.36 | +-----------+ 查看当前使用的是哪个数据库: mysql> select database(); +-------------+ | 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%';

找出第三个字母是R的? select ename from emp where ename like '__R%';

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。