| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL数据库(一) -> 正文阅读 |
|
[大数据]MySQL数据库(一) |
目录 1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 1.2 数据库管理系统(DatabaseManagement,DBMS) 5、在windows操作系统当中,启动和关闭mysql的命令是什么? 6、MySQL安装,服务启动,怎么使客户端登陆mysql数据库? 7.2 查看mysql中有哪些数据库?? ?show databases; 7.4 创建数据库?? ?create database 数据库名; 7.5 查看某个数据库下有哪些表?? ?show tables; 7.6 查看mysql数据库的版本号?? ?select version(); 7.7 查看当前使用的是哪个数据库?? ?select database(); 10、导入一下提前准备好的数据 source 路径(不能包含中文) 13.6 计算员工年薪sal * 12:字段可以使用数学表达式 14.7 between … and …. 两个值之间, 等同于 >= and <= 14.8? is null 为 null(is not null 不为空) 14.11 in 包含,相当于多个 or (not in 不在这个范围中) 1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?1.1 数据库(DataBase,DB)按照一定格式存储数据的一些文件的组合。顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据。 1.2 数据库管理系统(DatabaseManagement,DBMS)数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。 1.3 SQL 结构化查询语言程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。 1.4 三者之间的关系DBMS-->执行-->SQL-->操作-->DB 2、安装数据库管理系统MySQL3、MySQL数据库如何卸载第一步:双击安装包进行卸载删除。 第二步:删除目录: 把C:\ProgramData下面的MySQL目录干掉。 把C:\Program Files (x86)下面的MySQL目录干掉。 具体位置根据自己的安装位置查找 4、看一下计算机上的服务,MySQL的服务在哪里?计算机-->右键-->管理-->服务和应用程序-->服务-->找mysql服务 MySQL的服务,默认是“启动”的状态,只有启动了mysql才能用。默认情况下是“自动”启动,自动启动表示下一次重启操作系统的时候?自动启动该服务。 可以在服务上点击右键:启动、重启服务、停止服务 还可以改变服务的默认配置: 服务上点击右键,属性,然后可以选择启动方式: 自动(延迟启动)、自动、手动、禁用 5、在windows操作系统当中,启动和关闭mysql的命令是什么?语法:
其它服务的启停都可以采用以上的命令。 6、MySQL安装,服务启动,怎么使客户端登陆mysql数据库?使用bin目录下的mysql.exe命令来连接mysql数据库服务器
7、mysql常用命令7.1 退出mysql?? ?exit
7.2 查看mysql中有哪些数据库?? ?show databases;
7.3 怎么选择使用某个数据库?? ?use 数据库名;
7.4 创建数据库?? ?create database 数据库名;
7.5 查看某个数据库下有哪些表?? ?show tables;
7.6 查看mysql数据库的版本号?? ?select version();
7.7 查看当前使用的是哪个数据库?? ?select database();
8、数据库当中最基本的单元是表:table什么是表table?为什么用表来存储数据呢? 姓名? ? 性别? ? 年龄? ? (列:字段)? 数据库当中是以表格的形式表示数据的。 任何一张表都有行和列: 行(row):被称为数据/记录。 列(column):被称为字段。姓名字段、性别字段、年龄字段。 每一个字段都有:字段名、数据类型、约束等属性。 字段名可以理解,是一个普通的名字,见名知意就行。 数据类型:字符串,数字,日期等,后期讲。 约束:约束也有很多,其中一个叫做唯一性约束,这种约束添加之后,该字段中的数据不能重复。 9、关于SQL语句的分类?9.1 DQL:数据查询语言凡是带有select关键字的都是查询语句 select... 9.2 DML:数据操作语言凡是对表当中的数据进行增删改的都是DML insert delete update insert 增、delete 删、update 改 这个主要是操作表中的数据data。 9.3 DDL:数据定义语言凡是带有create、drop、alter的都是DDL,DDL主要操作的是表的结构。不是表中的数据。 create:新建,等同于增 drop:删除 alter:修改 这个增删改和DML不同,这个主要是对表结构进行操作。 9.4 TCL:事务控制语言事务提交:commit; 事务回滚:rollback; 9.5 DCL:数据控制语言。例如:授权grant、撤销权限revoke.... 10、导入一下提前准备好的数据 source 路径(不能包含中文)
11、 看一下文件里有几个表dept是部门表 emp是员工表 salgrade 是工资等级表 查看表中的数据:
这个查看语句在Qt数据表中也学过
列从左到右: 员工序号、员工名字、员工职位、上级领导编号、入职日期、工资、补助、部门编号
DEPTNO 字段是外键,DEPTNO 的值来源于 dept 表的主键,起到了约束的作用 列从左到右:部门编号、部门名称、部门位置
列从左到右:工资等级、最低工资、最高工资 12、不看表中的数据,只看表的结构? ? ?desc有一个命令:
行从上到下:部门编号、部门名字、地理位 行从上到下:员工编号、员工姓名、工作岗位、上级编号、入职日期、工资、补助、部门编号
行从上到下:工资等级、最低工资、最高工资 13、简单查询13.1查询一个字段
其中要注意: 13.2 查询部门名字
13.3 查询两个字段,或者多个字段使用逗号隔开“,”查询部门编号和部门名:
?? 查询所有字段: 第一种方式:可以把每个字段都写上
第二种方式:可以使用*
?? 13.4 给查询的列起别名:使用as关键字起别名。
注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname 记住:select语句是永远都不会进行修改操作的,因为只负责查询 as关键字可以省略:
?? 13.5 假设起别名的时候,别名里面有空格,怎么办?
DBMS看到这样的语句,进行SQL语句的编译,不符合语法,编译报错。怎么解决?
? ? ?注意:在所有的数据库当中,字符串统一使用单引号括起来,单引号是标准,双引号在oracle数据库中用不了。但是在mysql中可以使用。 13.6 计算员工年薪sal * 12:字段可以使用数学表达式
??
?
??
? ?14、条件查询什么是条件查询?
都有哪些条件? 14.1 = 等于查询薪资等于800的员工姓名和编号?
查询SMITH的编号和薪资?
?? 14.2 <>或!= 不等于查询薪资不等于800的员工姓名和编号
? 14.3 < 小于查询薪资小于2000的员工姓名和编号
14.4 <= 小于等于查询薪资小于等于3000的员工姓名和编号
14.5? > 大于查询薪资大于3000的员工姓名和编号
14.6 >= 大于等于查询薪资大于等于3000的员工姓名和编号
?? 14.7 between … and …. 两个值之间, 等同于 >= and <=查询薪资在2450和3000之间的员工信息,包括2450和3000 第一种方式:>= and <= (and是并且的意思。)
?? 第二种方式:between … and …
14.8? is null 为 null(is not null 不为空)查询哪些员工的津贴/补助为null
? 注意:在数据库当中null不能使用等号进行衡量。需要使用is null。因为数据库中的null代表什么也没有,它不是一个值,所以不能使用等号衡量。 查询哪些员工的津贴/补助不为null
?? 14.9 and 并且查询工作岗位是MANAGER并且工资大于2500的员工信息
14.10 or 或者查询工作岗位是MANAGER和SALESMAN的员工
??
? ?注意:and优先级比or高,当and和or同时出现,会先执行and,然后执行or。
?? 这个语句表示找出工资大于2500并且部门编号为10的员工,或者20部门所有员工找出来。
?? 查询工资大于2500,并且部门编号为10或20部门的员工 所以and和or同时出现,and优先级较高。如果想让or先执行,需要加“小括号” 14.11 in 包含,相当于多个 or (not in 不在这个范围中)查询工作岗位是MANAGER和SALESMAN的员工
注意:in不是一个区间。in后面跟的是具体的值。 查询薪资是800和5000的员工信息
??
?
not 可以取非,主要用在 is 或 in 中 is null、is not null、in、not in 14.12 like称为模糊查询,支持%或下划线匹配%匹配任意多个字符 下划线:任意一个字符。(%是一个特殊的符号,_ 也是一个特殊符号) 找出名字中含有O的?
?找出名字以T结尾的
找出名字以K开始的
? ?找出第二个字每是A的
找出第三个字母是R的
? 现在有这么一个表 t_student学生表 找出名字中有“_”的 首先把这个表创建出来:? 正常的思路肯定是下面这样的,肯定不行,因为_是特殊的,不能直接大摇大摆的放在那,这样让电脑怎么想,他是正经的下划线,还是包含某种含义的,电脑自己也乱了啊,所以要通过某种方式来告诉电脑,我这个下划线是单纯的下划线,还是不单纯的下划线~?
?? 就像下面这样添加一个转义字符,这就相当于一个标志,给电脑看,看,我这个是正经的下划线。?
15、排序15.1 查询所有员工薪资,排序
15.2 指定降序
15.3 指定升序
15.4 两个字段,或者多个字段排序?查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,再按照名字升序排列。
15.5 根据字段的位置也可以排序?
按照查询结果的第2列sal排序。 了解一下,不建议在开发中这样写,因为不健壮。因为列的顺序很容易发生改变,列顺序修改之后,2就废了。 16、综合案例找出工资在1250到3000之间的员工信息,要求按照薪资降序排列。
?关键字顺序不能变: 17、数据处理函数17.1、数据处理函数又被称为单行处理函数?? ?单行处理函数的特点:一个输入对应一个输出。 ?? ?和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!) 17.2、lower 转换小写
14个输入,最后还是14个输出。这是单行处理函数的特点。 17.3?upper 转换大写
??
? 17.4?substr 取子串(substr( 被截取的字符串, 起始下标,截取的长度))
注意:起始下标从1开始,没有0. 找出员工名字第一个字母是A的员工信息 第一种方式:模糊查询
第二种方式:substr函数
首字母大写:
? 17.5??concat函数进行字符串的拼接
17.6?length 取长度
17.7?trim 去空格
? 17.8?str_to_date 将字符串转换成日期17.9?date_format 格式化日期17.10?format 设置千分位17.11?case..when..then..when..then..else..end当员工的工作岗位是MANAGER的时候,工资上调10%,当工作岗位是SALESMAN的时候,工资上调50%,其它正常。
17.12? round 四舍五入select 字段 from 表名;
? 结论:select后面可以跟某个表的字段名(可以等同看做变量名),也可以跟字面量/字面值(数据)。
?
17.13?rand() 生成随机数
17.14?ifnull 可以将 null 转换成一个具体值ifnull是空处理函数。专门处理空的。
?计算每个员工的年薪 年薪 = (月薪 + 月补助) * 12 ?注意:NULL只要参与运算,最终结果一定是NULL。为了避免这个现象,需要使用ifnull函数。 ?ifnull函数用法:ifnull(数据, 被当做哪个值) 如果“数据”为NULL的时候,把这个数据结构当做哪个值。 补助为NULL的时候,将补助当做0
|
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:11:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |