数据库

一些概念

数据库的好处
•实现数据持久化
•使用完整的管理系统统一管理,易于查询
DB
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS
数据库管理系统(Database Management System)。数据库是通过DBMS创
建和操作的容器
SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语
言。

SQL的优点
1、不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
2、简单易学
3、虽然简单,但实际上是一种强有力的语言,灵活使
用其语言元素,可以进行非常复杂和高级的数据库操作。

数据库的特点

1、将数据放到表中,表再放到库中
2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中“类”的设计。
4、表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
5、表中的数据是按行存储的,每一行类似于java中的“对象”。

MySQL语法规范
不区分大小写
每句话用;或\g结尾
各子句一般分行写
关键字不能缩写也不能分行 即要严格书写大小写
用缩进提高语句的可读性
单行注释:1.#注释文字 2.-- 注释文字(–和文字之间有一个空格)
多行注释:/* 注释文字 */
一些常见命令
在这里插入图片描述

基础查询

语法:
select 查询列表· from 表名;
1.查询列表可以是:表中的字段,常量值,表达式,函数。
2.查询的结果是一个虚拟的表格
#1查询表中的单个字段
SELECT last_name FROM employees;
#2查询表中的多个字段
SELECT last_name,emial,salsry FROM empliyees;
#3查询表中所有字段
SELECT *FROM employees;

在使用之前 最上面最好先打开要使用的库
USE myemployees;(myemployees是个库名)
#4 查询常量值
SELECT 100; (就会只显示100)
SELECT ‘join’ ;(显示join)
#5包括运行表达式
SELECT 100*98 ;(结果会是9800)
#6查询函数
SELECT VERSION();(意思相当于调用该方法并获得其返回值)
#7 起别名
SELECT 100%98 AS 结果;(会出现:结果 2)
SELECT last_name AS 姓, first_name AS 名FROM employee;(会出现 姓 然后一列表 名 一列表)
也可以不使用AS 可以使用空格 如:
SELECT last_name 姓, first_name 名FROM employee;
1
1
1

别名建议加引号单双引号都行 因为有可能与关键字重复: 即 标准该如此:::
1
1

SELECT last_name AS “姓”, first_name AS ‘名’FROM employee;
#8 去重
查询员工表中涉及到的所以的部门编号(有重复的 要去重)
SELECT DISTINCT department_id FROM employee;(即在要去重的字段面前加上DISTINCT)
#9 +号的作用
mysql中加号的作用只有一个功能 就是运算符
select 100+90 ;(输出结果为190)
如果其中一方为字符型,则试图将其转换为字符型 如果转换成功 再做加法运算
如: select ‘123’+90;(会自己转换 然后输出213)
如果转换失败 会把转换失败的一方看作0来参与运算,
如:select ‘join’+90;(会输出90)
如果其中一方为null ,则结果肯定为null
如select null + 10 ;(会输出null)
#10 如果连接 则使用一个 字符 CONCAT
具体例子如下
在这里插入图片描述
在这里插入图片描述

条件查询

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

模糊查询

like
between and
in
is null | is not null

1.like
在这里插入图片描述
通配符: % 代表任意多个值 包含0个
_代表一个字符

在这里插入图片描述
ESCAPE转义字符的使用
在这里插入图片描述
2,between a and b
左小右大 a<b
在这里插入图片描述
3 in
判断某字段的值是否属于in列表中的某一项
特点:使用in提高语句简洁度
in列表的值类型必须统一或兼容(‘123’字符可转为整型123)
in中不可使用通配符 %

在这里插入图片描述
4.is null 和 is not null

=不可以判断null 所以有了这两个判断语句
在这里插入图片描述

安全等于 也可判断null值
<=> 此符号不光可以判断null 也可判断正常的值 就是可读性比较差 乍一看不知道要找什么

排序查询

在这里插入图片描述
排序格式如上例子如下,其中 DESC表示从高到低,ASC表示从低到高
order by 子句中可以支持单个字段,多个字段,表达式,函数,别名
order by 子句一般是放在查询语句最后面,limit子句除外。
在这里插入图片描述
细看各个案例 下图
在这里插入图片描述

11111 常见函数

分为
一,单行函数 如 concat 或 length或 ifnull
二, 分组函数

其中单行函数又可细分为
字符函数
数学函数
日期函数
其他函数
流程控制函数

1# 字符函数
1,length 获得当前字节长度(注:一般来说只有这一个length指的是字节长度 ,其他多为字符长度)
SELECT LENGTH(‘john’); 得出结果为4

SELECT LENGTH(‘张三丰hahaha’);结果为15

3,upper 变大写 lower 变小写 具体如下图
在这里插入图片描述
4 substr,substring (截取字符,两个都一样,前面是简写)在这里插入图片描述
上图中 输出从第七个开始的后面所有字符 即(陆展元) 注意:字符索引从1开始 不是Java的0
还有个功能 截取从指定索引处指定字符长度的字符 如下图
在这里插入图片描述
上图 意思就是从第一个字符开始 三个长度的字符 即 输出(李莫愁)
综合案例 如下

在这里插入图片描述
5,instr (str,str)
用于返回后面字串在前面大父串中的起始索引
如有多个 则返回第一次出现的位置 如果没有 则返回0
在这里插入图片描述
如上图 原为 殷六侠 则返回的是3 现为八 则返回0

6,trim 去掉前后空格或字符
具体操作如下图
在这里插入图片描述
去掉前后指定字符操作是第二条指令 结果 下面有
如果去aa 则会两个两个的去去掉 如果余下一个 则不去掉
7, lpad 用指定的字符 实现左填充
在这里插入图片描述
如图 不够十个 则 左边会用*填满直到加上殷素素够十个i个字符,如果 有三个 让填充2 则显示两个 是 殷素 从右边第二个往后截断
8.rpad 指定字符右填充 于左无异。。
9,replace 替换
在这里插入图片描述
如图 周芷若 被替换成赵敏
且 如果前面字符串有多个周芷若 则替换多个

数学函数

  1. round 四舍五入
    SELECT ROUND (1.56);
    输出的是2 不管是正负数 都是先四舍五入后 在加正负号(一般情况下 默认取整 不过可以重写方法如下)
    SELECT ROUND(1.567,2)则小数点后保留两位
    2.ceil 向上取整
    SELECT CEIL (1.001)都会取整为2,但1.00 会是1, 大于等于它的最小整数 如-1.02 返回是-1
    3.floor 向下取整 与向上类似
    4。 truncate 截断
    SELECT TRUNCATE (1.664, 2)则保留1.66相当于小数点后两位保留
    5,mod 取余
    select mod(10,3)输出 1 相当于运算符%
    结果的正负 看第一个数的正负 与其同号

日期函数

1,now 返回当前系统日期+时间
SELECT NOW(); 即可

curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
curtime返回当前时间,不包含日期
SELECT CURTIME();
还可以获取指定的部分:年 月 日 时 分 秒
具体如下

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
具体例子
在这里插入图片描述
反着来
在这里插入图片描述

其他函数

SELECT VERSION(); 查版本
SELECT DATABASE(); 查看当前数据库
SELECT USER(); 查看当前用户

流程控制函数

1,if 函数
SELECT IF (10>5,’大‘,’小’);
上面语句会输出小 以此格式类推
比较复杂的例子如下图
在这里插入图片描述

2,case 函数

在这里插入图片描述
case使用方式一案例 (等值判断)
在这里插入图片描述
case使用方式二案例(区间判断)
在这里插入图片描述
案例
在这里插入图片描述

222分组函数

功能:作统计使用,又称为聚合函数,统计函数或组函数
分类
sum 求和----- avg 平均------ max 最大值----min 最小值 ----count 计算非空的值的个数

1, 简单使用

在这里插入图片描述

参数支持哪些类型??

在这里插入图片描述

在这里插入图片描述

分组查询

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值