MYSQL学习记录

1.数据库的概念

DB:datebase,存储一系列有组织的数据

DBMS:database management system 数据库是通过DBMS创建和操作的容器

(常见的数据库管理系统:Mysql、Oracle、DB2、SqlServer)

SQL:Structure Query Language结构化查询语言,与数据库通信的语言

2.DBMS分为两类

-基于共享文件系统的DBMS(Access)

-基于客户机/服务器的DBMS(Mysql、Oracle、SqlServer)

3.MySQL 5.5

链接:https://pan.baidu.com/s/18PDjbqEeDSAjQM0VQye6og

提取码:qjuz

4.数据库登入退出

mysql -h(连接本地)localhost -P 3306(代表端口) -u root(代表用户) -p(代表密码)

exit/ctrl+c

5.MySQL 5.5 4个1自带的数据库

 information_schema:保存元数据信息

mysql:保存用户信息

performance_schema:搜集性能信息

test;代表测试数据库,这个库里是空的,可以直接在里面建表,也可以修改库删除库。

6.mysql常用语句

show databases;查看当前所有数据库

use 库名;选择进入库

show tables;显示表

show tables from 库名;从一个库查看另一个库的表

select database();查看当前库

创建一个表,有两个列,id类型为int,name类型字符串varchar

desc 表名:查看表结构

select * from stuinfo:查看表中数据 

insert into stuinfo (id,name) values(1,'John');向stuinfo 中插入数据,

 update stuinfo set name='HYC' where id=1;修改数据

 delete from stuinfo where id=1;删除

 :查看当前版本信息

:查看当前版本信息

7.mysql语法规范

1)不区分大小写,但建议关键字大写,表名、列名小写

2) 每条命令最好用分号结尾

3)每条命令根据需要,可以进行缩进或换行

4)注释

 

8.mysql图形化界面

SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。

 9.mysql语言分类

DQL:data query language(select)

DML:date management language

DDL:data define language

TCL:Transaction control language

DCL:data  control language

 10.导入SQL脚本

 表字段讲解

 

  

11.基本语法:

 

 

 12.排序查询

日期格式符含义:

 mysql中case用法

 例题:

 13.多表查询

1.多表等值连接的结果是多表的交集

2.n表连接,至少需要n-1个连接条件

3.多表的顺序没有要求

4.一般取别名

5.可以搭配前面介绍的所有子句使用,比如排序、分组、筛选

 

 

 

 【常见函数】

功能:类似于java中的方法

好处:提高可重用性和隐藏实现细节

调用:select 函数名(实参列表)

单行函数

1.字符函数

concat:连接

substr:截取字串

upper:变大写

lower:变小写

replace:替换

length:获取字节长度

trim:去前后空格

lpad:左填充

rpad:右填充

instr:获取子串第一次出现的索引

2.数学函数

ceil:向上取整

round:四舍五入

mod:取模

floor:向下取整

truncate:截断

rand:获取随机数,获取0-1之间的小数

3.日期函数

now:返回当前日期加时间

year:返回年

mouth:返回月

day:返回日

date_format:将日期转化为字符

curdate:返回当前日期

str_to_date:将字符转化为日期

curtime:返回当前时间

hour:小时

minute:分钟

second:秒

datediff:返回两个日期的相差天数

mouthname:以英文形式返回月份

4.其他函数

version:返回当前数据库服务器信息

databases:打开当前的数据库

user:当前用户

password(’字符’):返回该字符的密码形式

MD5(‘字符’):返回该字符的MD5加密形式

【流程控制函数】

1、if(条件式,表达式1,表达式2):如果条件成立,返回1,否则2

2、case情况1

case 变量或表达式或字段

when 常亮1 then 值1

when 常量1 then 值2

。。。

else 值n

end

 3、case情况2

case 

when 条件1 then 值1

when 条件2 then 值2

。。。

else 值n

end

三、分组函数

1、分类

max最大值

min最小值

sum求和

avg平均值

count计数

2、特点

#语法

select max(字段)from 表名;

#支持的类型

sum和avg一般支持数值型

max、min和count可以处理任何数据类型

#以上分组函数都忽略null

#都可以搭配distinct使用,实现去重的统计

select sum(distinct 字段)from 表名;

#count(字段):统计该字段非空值得个数

count(*):统计结果集的行数

count(1):统计结果集的行数

和分组函数一同查询的字段,要求是group by后出现的字段

【分组函数】

一、语法

select 分组函数,分组后的字段

from表

【where 筛选条件】

group by 分组的字段

【having 分组后的筛选】

【order by 排序列表】

二、特点

                                使用关键字     筛选的表      位置

分组前筛选        where            原始表               group by 的后面

分组后的筛选     having          分组后的结果     group by 的后面

【连接查询】

一、含义

当查询中涉及到了多个表的字段,需要使用多表连接

select 字段1,字段2

from 表1,表2,。。。

笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接

如何解决:添加有效的连接条件

二、分类

三、SQl92语法

1、等值连接

2、非等值连接

3、自连接

【排序查询】

一、语法

select 查询列表

from 表

where 筛选条件

order by 排序列表

二、特点

1.asc:升序(默认),desc降序

2.排序列表支持:单个字段、多个字段、函数、表达式、别名

3.order by位置放在查询语句最后(除了limit语句)

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/fengzimu/p/12903049.html