【回顾】Mysql基础语法

一、SQL语句分类

1、数据查询语言DQL:select
2、数据操纵语言DML:对数据库的数据进行一些操作。插入insert,删除delete,更新update
3、数据定义语言DDL:用来创建数据库的各种对象--表,视图等。create,drop
4、数据控制语言DCL:用来授予或回收访问数据库的某种特权,并控制数据库操作事务发生的时间及效果,对数据库实行监视等。rollback,commit,grant,revoke等

二、基础

 1. 查看当前所有的数据库: show databases;
 2. 打开指定的库名: use 库名;
 3. 查看当前库的所有表: show tables;
 4. 查看其它库的所有表: show tables from 库名;
 5. 创建表: create table 表名( 			
 				列名 列类型, 			
 				列名 列类型)6. 查看表结构:desc 表名;
 7. 语法字母不区分大小写,每条命令以分号结尾,每条命令可根据需要换行

三、数据查询语言select

查询语句

基础查询

查询表中的字段

select 查询的东西
from 表名;

查询常量、表达式等

select 100select 100%98;    select version();

为字段起别名

select 100%98 as 结果;

去重

select distinct 字段名 from 表名

条件查询

where语句
条件表达式 > < = != >= <=
逻辑表达式 && || and or not
模糊查询 like/ between and /in / is null 和通配符搭配使用,%:任意多个字符,包括0个;_:任意单个字符

排序查询

order by 排序列表 asc|desc
也可按照多个字段进行排序:order by _,_

分组查询

select *
from 表名
[where 条件]
group by 分组列表
[having 条件]
[order by 字段名]

分组查询中的筛选条件分为两类:
分组前筛选:基于原始表,where子句
分组后筛选:基于分组后的结果集,即having子句

连接查询

 1. 内连接【取出连接表中匹配到的数据,匹配不到的不保留】inner join
	等值连接:用=连接两个表
	非等值连接:不是=
	自连接:自己与自己进行连接
 2. 外连接【取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL。即查询的结果为主表中的所有记录】
 	左外连接:left [outer] 左表为主表
 	右外连接:right [outer] 右表为主表
 	全外连接:full [outer] 全外连接 = 内连接 + 表1中有但表2没有的 + 表2中有但表1中没有的

子查询

select * from 表名 where 字段名1 = (select 字段名1 from 表名 where 条件)
in/ not in:等于列表中的任意一个
any/some: 和子查询返回的某一个值进行比较
all:和子查询返回的所有值进行比较
exists:相关子查询,查看里边的查询是否存在,结果为0或者1

分页查询

查询语句的最后一句: limit offset,size
offset是要显示的起始索引(索引从0开始)
size是要显示的条目个数

联合查询

应用场景:要查询的结果来自多个表,且多个表没有直接的连接关系,但查询的信息是一致的。

union:将多条查询语句的结果合并成一个结果,会去重
union all:简单地将两个结果合并后就返回

开窗函数

类似于group by聚合函数,主要实现数据的分组统计,为统计行打开另一扇另类的统计窗口。


 1. row_number() over(order by 字段) 连续不重复
 2. rank() over (order by 字段) 排序相同的值归为一组
 3. dense_rank() over(order by 字段) 排序连续,相同值归为一组

参考

四、数据操纵语言

插入语句

insert into 表名(列名,...) values(值1,...);
insert into 表名 set 列名=值,列名=值;

修改语句

update 表名
set=新值,列=新值...
where 筛选条件;

删除语句

delete from 表名 where 筛选条件;
truncate table 表名;
drop table 表名;
三者的区别:
drop删除内容和定义,并释放空间,将使此表的结构一起删除。
delete只删除内容,释放空间,但不删定义,可以对行删除,也可删除整张表,即可以加where条件,且该操作可以回滚,有返回值(受影响的行数)。
truncate删内容,释放空间,但不删定义,保留表的数据结构,但是只是清空表中的数据。不可以添加where条件,不能回滚,无返回值。

五、数据定义语言

库的管理

库的创建

create database 库名;

库的修改

更改库的字符集
alter database 库名 character set gbk;

库的删除

drop database 库名;

表的管理

表的创建

create table 表名( 			
 				列名 列类型, 			
 				列名 列类型)

表的修改

修改列名:alter table 表名 change 列名 新列名 类型;
修改类型/约束:alter table 表名 modify column 列名 修改类型;
添加新列:alter table 表名 add column 列名 类型;
删除列:alter table 表名 drop column 列名;
修改表名:alter table 表名 rename to 新表名;

表的删除

drop table 表名;

视图的创建删除等与表的操作类似。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值