Mysql笔记

数据库概述

一 数据库的好处

1.持久化的将数据保存到本地
2.可以实现数据化查询,方便管理

二数据库的相关概念

DB(database)数据库 数据的容器类比于"仓库"
DBMS(database management system) 数据库管理系统
常用的 DBMS:Mysql Oracle DB2 SQL server 等
SQL 结构化查询语言
专门用来与DBMS沟通的语言

三数据库的启动与登录

数据库的启动与停止
doc命令:以管理员身份
启动 net start mysql
停止 net stop mysql
登录: mysql -h主机号 -p端口号 -u 用户名 -p密码

SQL语言

分别有

数据查询语言DQL

数据操作语言DML

一.数据查询语言DQL

基础查询
语法:select 查询列表
form 表名
特点:查询列表可以是表中的字段,常量值,表达式,函数查询的结果是虚拟的表格
select *
form表名
表中所有字段

起别名
select 查询列表 AS或空格 别名
可以给查询列表起别名
注意:关键字必须用双引号引起来

去重
select distinct 字段名 from 表名
去掉表里的重复元素

+号的作用
MySQL中的加号只用作运算符
select ‘123’+12
他会先是试着将他转换成数值
转换成功,则继续做加法运算
转换失败,则将字符转换成0,在做运算
select null+任意 其结果都为null

可以用concat来实现连接
select concat(str1,str2,…)

条件查询
语法 :select 查询列表
from 表名
where 筛选条件
分类:
一按条件表达式分类
条件运算符 <,>,=,<=,>=,<>(不等于)
二按逻辑表达式筛选
逻辑运算符 and,or,not
三按模糊查询 like,between and,in,is null

模糊查询
1,like
一般与通配符搭配使用
通配符:%任意多个字符,包含0字符
_任意单个字符
where 查询列表 like ‘_a%’
即查询列表中第二个字母为a的

2 between and
where
查询列表 >=100and查询列表<=200
等价于
where
查询列表 between100and200

3.in
含义:用于判断某字段的值是否为in列表中的某一项
注意:in列表中的值应该类型统一
where
查询列表 in(值1,值2,值3,…)

4 is null 没有
is not null 有
安全等于 <=> 数值
查询工资为17000的员工信息

排序查询
语法:select 查询列表
from 表名
[where 筛选条件]
order by 排序列表 [asc/desc]
特点:1.asc代表升序,desc代表降序
如果不写就是默认是升序
2.order by 子句中可以支持单个字段,多个字段,表达式,函数,别名
3.order by 子句一般在查询语句的最后面,limit除外

常见函数
概念:类似Java中的方法,将一组逻辑语句封装在方法中,对外暴露方法名
好处:1.隐藏了实现细节 2.提供了代码的重用性
调用 select 函数名() [from]
特点:1.叫什么(函数名)
2.是什么(函数功能)
分类:1.单行函数
如 concat,length,ifnull,isnull等
2.分组函数
功能:做统计使用,又称统计函数,聚合函数,组函数

一 字符函数
1.concat 拼接函数

2.length 获取参数值的字节个数(UILT-8 中文有三个字节)

3.upper,lower
select upper() 大写
select lower () 小写

4.substr,substring
注意:索引从1开始
截取从指定索引出后面所以字符
select subster(‘我是大哥’ from 3)
截取从指定索引处指定字符长度的字符
select subster(‘我是大哥’ from3 for 4)

5.instr
返回子串第一次出现的索引的位置,返回位置的数值,如果找不到返回0
select instr (‘我是大哥哥’,‘大哥哥’)

6.trim (去掉前后的空格或去掉前后指定字符)
select trim(‘a’ from ‘aaaaa我是大哥aaaaaa’)

7.lpnd
select lpnd (‘大哥哥’,10,’*’) 超过字符长度填充小于截断
rpad

8.replace 替换
select replace (‘aaaaaaannnnnn’,‘n’,‘c’) 把n换成c

数学函数
1 round 保留几位小数,并四舍五入
select round (1.6666,3)

2 ceil 向上取整 返回>=该参数的最小整数
select ceil(-1.5) -1
floor 向下取整 返回<=该参数的最大整数
select foolr(-1.5) -2

3.truncate 取整无四舍五入

4.mod 取余
mod(a.b):a-a/b*b a/b 取整

5.日期函数
now 返回现在的日期时间
curdate 返回当前系统日期包含时间
curttime 返回当前系统时间不包含日期
str_to_date 将不规范时间格式,转换成规范的时间格式
SELECT STR_TO_DATE(‘6-02-2020’,’%m-%d-%Y’)
date-format 将日期转换成字符
SELECT DATE_FORMAT(NOW(),’%Y年-%m跃-%d日’)
2020年-02跃-21日

四其他函数
select version 查mysql版本号
database 查当前库
user 当前用户

五流程控制函数
if 函数
if(条件表达式,如果是怎么样,如果不是怎么样)

case函数
case 要判断的字段或者表达式
when 常量1 then
when 常量2 then

end
要判断的字段或表达式等于常量

case
when 条件一 then

end
要判断的字段或表达式范围在那个区间

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

特点:
1 sum,avg 一般用于处理数值型
max min count 都可以处理
2 都忽略null值
3 可以搭配distinct 去重 使用
4 count的详细介绍
count( 随意传任何参数都行
5 和分组函数查询的字段有限制 要求是 grood by 后字段
补充 dateniff 返回两个日期相差的天数

分组查询
语法:select 分组函数 列(要求出现在gorud by 后面的字段
from 表名
[where 筛选条件]
groud by 分组列表
[order by 排序列表
注意:查询列表 必须是分组函数和groud by 后面的字段

where是在原有的表中筛选,而
having是在分组之后的新列表中进行筛选
能用where就不用having
group by 支持多个字段,函数,表达式

连接查询
含义:又称多表查询
笛卡尔乘积:当查询多个表时,灭有添加连接条件时,会导致多个表所有行实现完全连接 M*N
分类
按年代分
sql 92 标准:仅仅支持内连接
sql 99 标准:支持内连接+外连接(左外和右外)+交叉连接
按功能分类
内连接:等值连接
非等值连接
自连接
外连接: 左外连接
右外连接
全外连接
交叉连接

内连接
sql 92 :
内连接语法
select 查询列表
from 表一
inner john 表二
on 表一 key=表二key

左外连接语法
select 查询列表
from 表一主表
left join 表一
on 表一 key=表二key

右外连接语法
select 查询列表
from 表一主表
left join 表一
on 表一 key=表二key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值