vlambda博客
学习文章列表

软件学习笔记【MySQL】

一、概述

  1. 概念辨析:数据库(DB) & 数据库管理系统(DBMS) & 关系型数据库(RDBMS)。

2.连接操作

# 在本机上 按键 windows+A+X 打开powershell ;cd ...\bin 位置net start mysql #启动mysql -u root -q  #客户端连接


二、SQL

  1. 通用:分号结尾;单行注释:# ;多行注释: /* */。

  2. 分类:DDL【定义】;DML【增删改】;DQL【查询】;DCL【控制权限】。

  3. DDL:

#数据库操作:查询、创建、删除、使用show database; select database() create database 数据库名;drop database;use database;
#表操作-查询show tables;DESC 表名;show create table 表名;
#表操作-创建create table 表名(字段1 字段1类型 comment ‘字段1命名’,字段2 字段2类型 comment ‘字段2命名’)comment '命名';
#表操作-修改:添加字段、修改类型、删除、修改表名Alter table 表名 Add 字段名 字段类型 comment ‘命名’;
Alter table 表名 modify 字段名 字段类型;Alter table 表 change 旧字段 新字段 新字段类型;
Alter table 表名 drop 字段名 字段类型;
Alter table 表名 rename to 字段名 字段类型;
#表操作-删除:删除表、删除表名Drop table [if exist] 表名;Truncate table 表名;


数据类型

(1)数值:int   float   double    decimal

(2)字符串:char   varchar   blob   text

(3)时间:date   time   year   datetime   timestamp


4.DML

#添加数据Insert into 表名(字段名1,字段名2...) values(值1,值2,...);Insert into 表名 values(值1,值2,...)
#修改数据Update 表名 set 字段名1=值1,字段名2=值2 where 条件;
#删除数据Delete from 表名 where 条件;


5.DQL

#基础查询select 字段 from 表名;select distinct 字段 as a from 表名;
#条件查询select 字段 from 表名 where 条件; #条件:> < = between...and in like
#聚合查询:count max min avg sumselect count(*) from 表名
#分组查询select 字段 from 表名 where 条件 group by 分组字段名 Having 分组后条件#分组前过滤:where#分组聚合后:having
#排序查询select 字段 from 表名 where 条件 group by 分组字段名 having 分组后条件order by 字段1,排序方式;#排序方式:DESC ASC
#分页查询select 字段 from 表名 limit 起始索引,查询记录数;

执行顺序:

from---where---group by ---having---select---order by---limit.


6.DCL:管理用户和权限控制。


三、函数

  1. 字符串函数

Concat(s1,s2,...)

Lower(str)               Upper(str)

Lpad(str,n,pad)       Rpad(str,n,pad)

Trim(str)                  Substring(str,start,len)


2.数值函数

ceil(x)    floor(x)   mod(x,y)   rand()   roundn(x,n)


3.日期函数

curdate()   curtime()   now()

Year(now())

Date_add(date,Interval expr  type)

Datediff(date1,date2)


4.流程函数

If(value,T,F)    Ifnull(value1,value2)

case ... when...then else end

case [expr] when [val1] then [res1]...else[default] end

四、多表查询

  1. 内连接

(1)隐式:select 字段 from 表1,表2 where 条件;

(2)显式:select 字段 from 表1 inner join 表2 on 连接条件;

2. 外连接

(1)左外(完全包含左表数据)

select 字段 from 表1 left join 表2 on 连接条件;

(2)右外(完全包含右表数据)

select 字段 from 表1 right join 表2 on 连接条件;


3.自连接

select 字段 from 表1 别名1 join 表1 别名2 on 连接条件;


4.联合查询:列数和字段类型必须一致

select 字段 from 表1

union 

select 字段 from 表2;


5.子查询

select 字段 from 表1 where col1=(select col1 from 表2);

(1)标量子查询:数值、日期、< > =

(2)列子查询:all   any

(3)行子查询:in   not   = >  <

(4)表子查询:in


五、事务

1.四大特性:原子性、一致性、隔离性、持久性。

2.事务操作:

开启:start transaction 、 Begin

提交:commit

回滚:rollback


六、窗口函数

函数(排序函数 or 聚合函数 or 其他函数 )

over (

partition by <分组列>

order by <排序列>

rows between...and...

);