MYSQL(新手向,持续更新中)

入门的语法,还是比较简单的,至于更高级的,后面在更了

MYSQL

介绍

Mysql:关系型数据库(建立在关系模型基础上,由多张相互连接的二维表组成的数据库)sql,事务,存储引擎,索引,优化,锁,日志,分库分表,读写分离等

基础

(概述,SQL,函数,约束,多表查询,事务)
 



SQL通用语法及分类。



1.SQL通用语法


1.1 SQL语句可以单行或多行书写,以分号结尾。

1.2 SQL语句可以使用空格/缩进来增强语句的可读性。

1.3 MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

1.4 注释:单行注释:-- 注释内容 或 # 注释内容 ;多行注释:/* 注释内容 */


2.SQL分类


2.1 DDL:数据定义语言

2.2 DML:数据操作语言

2.3 DQL:数据查询语言 

2.4 DCL:数据控制语言

 DDL
DDL-数据库操作:

->查询

查询所有数据库: SHOW DATABASES;

查询当前数据库:SELECT DATABASES();

->创建

CREATE DATABASES[ IF NOT EXISTS ] 数据库名字 [ DEFAULT CHARSET 字符集] [ COLLATE 排序规则];

->删除

DROP DATABASES [ IF EXISTS ]数据库名;

->使用

USE 数据库名;

DDL-表操作

DDL-表结构-查询

查询当前数据库所有表: SHOW TABLES;

查询表结构:DESC;

查询指定表的建表语句:SHOW CREATE TABLE;

DDL-表结构-创建

CREATE TABLE 表名(

     字段一 字段类型[comment 字段一 注释],

.....

   )

DDL-表结构-修改

->添加

alter table 表名 字段名 类型

->修改

1.0修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型 comment 申明;

1.1 修改数据类型

alter table 表名 modify 旧字段名 新字段名 类型 comment 申明;

1.2 删除字段

alter table 表名 drop 字段名;

1.3 修改表名

alter table 旧表明 rename to 新表名

DDL-表结构-删除

删除表 drop table 表名

重新创建表(表会留下,信息格式)truncate table 表明

DML

->添加数据 INSERT

->修改数据 UPDATE

->删除数据 DELETE

DML- 添加数据

1.1 给指定字段添加数据

INSERT INTO 表名(字段1 ,字段2...)VALUES( 值1, 值2)

1.2给全部字段加入数据

INSERT INTO 表名 VALUES( 值1, 值2)

1.3批量添加数据

INSERT INTO 表名(字段1 ,字段2...)VALUES( 值1, 值2),( 值1, 值2)

INSERT INTO 表名 VALUES( 值1, 值2),( 值1, 值2)

DML- 修改数据

UPDATE 表名 SET 字段1 = 值1 ,字段名2=值2,...[WHERE 条件];

DML- 删除数据

DELETE FROM 表名 [WHERE 条件];

//没有where就删除全部数据

DQL

1.基本查询

1.1

SELECT 字段一 字段二 字段三 ... FROM 表名

1.2

SELECT 字段名 as '别名' from 表名

1.3 去除重复记录

SELECT distinct 字段名 as '别名' from 表名

2.条件查询

SELECT 字段名 as '别名' from 表名 where 条件列表(注:可多个)

例如查询 年龄为20的员工信息

select *from user where age=20;

3.聚合函数

把一列数据作为整体 进行纵向运算

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sum

求和

SELECT 聚合函数(字段) from 表名 where(条件)

null不参与统计

4.分组查询

select 字段列表 from 表名 [where 条件] group by 字段名 聚合函数部分 having 条件

注:having是分组后

5. 排序查询

select 字段列表 from 表名 order by 字段一 排序方式1,字段二 排序方式2;

ASC 升序

DASC 降序

6.分页查询

limit

select 字段列表 from 表名 dmit 起始索引 查询记录数; 

DCL

用户管理

权限控制

常用函数:

数值函数

函数(参数1,参数2 )

CELL(x)

向上取整

FLOOR(x)

向下取整

MOD(x,y)

取模

RAND()

随机数

ROUND(x,y)

四舍五入x,保留小数y

//生成六位随机数

selsect lpad(round(rand()*100000,0),6,'0');

日期函数

curdate()

返回当前日期

curtime()

返回当前时间

now()

返回当前日期和时间

year(date)

获取date的年

month(date)

获取date的月

day(date)

获取date的日

DATE_ADD(date,interval expr type)

返回上一个日期/时间值加上一个时间间隔expr的时间值

datediff(date1,date2)

返回两个之间的天数

还是使用select

流程控制函数

if(value ,t ,f)

ifnull(value 1,value2 )

(case 字段 when value 条件 then ”显示内容“ end)‘自定义名字’

多表查询

多表关系

-> 1对多

-> 多对多

-> 1对1

1. 1对多

例如:部门 员工

实现在多的一方建立外键

2.多对多

例如 学生和课程

实现;

建立中间表:至少有两个外键,分别关连两方主建

3 一对一

案例:用户和用户信息

用于单标拆分

在任意一方加入外键,关联另一方主键,加上唯一约束 unique

多表查询

加上where条件

内连接:查询两张表交集部分

1.隐式内链接

SELECT 字段列表 FROM 表1 表2 WHERE 条件

2.显式内连接

SELECT 字段列表 FROM 表1 INNER JOIN 表2 ON 条件

外连接:

1.左外连接

SELECT 字段列表 FEOM 表一 LEFT OUT JOIN 表二 ON 条件

2.右外连接

SELECT 字段列表 FEOM 表一 RIGHT OUT JOIN 表二 ON 条件

自连接:

SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件

联合查询

多次查询结果合并

SELECT 字段列表 FROM 表一 where 条件

UNION

SELECT 字段列表 FEOM 表二 where 条件

注:union 直接合并    union all 会去重

子查询

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值