热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQL学习笔记

SQL学习笔记文章目录SQL学习笔记1.问题2.SQL基本语句3.SQL基本数据查询4.SQL复杂点的数据查询5.DML操作6.数据表操作1.问题什么是数据库?是一个仓库,可以按照




SQL学习笔记


文章目录


      • SQL学习笔记
        • 1.问题
        • 2.SQL基本语句
        • 3.SQL基本数据查询
        • 4.SQL复杂点的数据查询
        • 5.DML操作
        • 6.数据表操作




1.问题

什么是数据库?


是一个仓库,可以按照数据结构来组织,存储和管理数据。 是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。


什么是数据库管理系统?


一种操作和管理数据库的大型软件,用户可以通过它访问到数据库里的数据。


什么是SQL?


结构化查询语言(Structured Query Language)简称SQL
(发音:/ˈes kjuː ˈel/ “S-Q-L”)(的确,我最开始一直skrskr地读) 是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。


什么是MySQL?


MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品,是最流行的关系型数据库管理系统之一。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,由于其体积小、速度快、开放源码等特点,一般中小型网站的开发都选择MySQL作为网站数据库。


PHPstudy帮我备好了环境?


YES,真香哈 在PHPstudy软件管理中,下载phpMyAdmin4.8.5
打开谷歌浏览器,输入http://localhost/phpMyAdmin4.8.5进入



2.SQL基本语句

理应大写
西卡西,小写好像也没啥问题
记得加分号!!!!!

show databases; -- 查看所有数据库
create database 数据库名 ; -- 创建数据库
create database 数据库名 charset=utf8; --创建指定字符集的数据库(mysql中utf8没有-)
create database if not exists mlgb; --如果不存在mlgb就创建mlgb
show create database 数据库名 ; --展示创建的数据库
alter database character set utf8; --修改数据库
drop database 数据库名 ; --删库跑路
use database 数据库名; #使用数据库
select database(); #查看当前使用的数据库

3.SQL基本数据查询

查询出来的表是虚拟表

select 列名 from 表名; #查啥表啥列
#select * 表示所有列
select 列名1 as 'XXX', 列名1 as 'YYY' from 表名; #给查询的表起别名
select distinct 列名 from 表名; #去重

排序查询

select 列名 from 表名 order by 排序列 排序规则 [列2] [规则];
asc升序
desc降序

条件查询

select 列名 from 表名 where 条件;
等值判断,就用 =
逻辑判断 and or not
不等于 <> !=
范围 between x and y
枚举 in (x,y,z)
空的判断 is null
is not null
直接查=null是不行滴
模糊查询 like 符号
% 表示任意多个任意字符
_ 表示一个任意字符
分支结构查询 select 列
case
when 条件 then 'A'
when 条件 then 'B'
when 条件 then 'C'
when 条件 then 'D'
else 'E'
end as 成绩

时间查询

select 时间函数([参数列表])
比如
select sysdate(); 当前系统时间
剩下一些函数可以自行百度

字符串查询

select 字符串函数([参数列表])
select concat(firstname,lastname) as 'name' from people ;
查询几列并连接在一起
insert(str,pos,len,newstr)
将str中pos位置开始len长度的内容替换为newstr,字符串下标从1开始
upper() 转大写
lower() 转小写
substring(str,num,len)
将str字符串指定num位置开始截取len个内容

聚合函数

select count() from XX; 一列的总行数,会忽略NULL值
select max() from XX ; 最大值
select min() from XX ; 最小值
select sum() from XX ; 求和
select avg() from XX ; 平均值

分组查询

select XX from XX where XX group by 分组依据(列);
group by + having 分组之后过滤

限定查询

select XX from XX limit 起始行,总条数

执行顺序


(1)from
(2) where
(3)group by
(4) 聚合函数
(5)having
(6) select
(7)distinct
(8) order by
(9) limit



4.SQL复杂点的数据查询

子查询


在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select语句称之为子查询语句,外部那个select语句则称为主查询。
嗯,记得加括号。
子查询结果可以是单行单列,可以是多行单列,也可以是一张表。
结果是一张表时,可以放到FROM里,但要给一个临时的表名。


select * from students
where age > (select avg(age) from students);
关键字 all any 所有 部分

合并查询

select XX from XX union select XX from XX ; (去掉重复记录)
select XX from XX union all select XX from XX ;(不去重复记录)
两表列数必须相同

内链接查询

select XX from XX inner join XX on XX.YY = XX.YY ;
如果不指定连接条件,则会造成笛卡尔积的结果

左右外连接

左外链接以左表为主表,依次向右匹配,如果匹配不到,返回NULL
右外连接以右表为主表,依次向左匹配,如果匹配不到,返回NULL
select XX from XX left join XX on XX.YY = XX.YY ;
select XX from XX right join XX on XX.YY = XX.YY ;

5.DML操作

新增(INSERT)

insert into 表名(列1,列2 ...) values(值1,值2...);
列与值一一对应

修改(UPDATE)

update 表名 set 列1=值1,列2=值2...... where 条件;
如果不加where条件的话整个表都会修改。

以下为删库跑路的主要操作
删除(DELETE)

delete from 表名 where 条件
如果不加where条件的话整个表都会被删除。

清空整张表的数据

truncate table 表名

6.数据表操作

如果表名和关键字冲突,可以在前后加 `符号来避免 。
数据类型


int
double
decimal
date
datetime
char
varchar…


创建表

create table 表名(
列名 数据类型 [约束],
列名 数据类型 [约束],
列名 数据类型 [约束] #最后一列末尾不加逗号
) [charset = utf8] #可以指定字符编码集

修改表

alter table 表名 add 列名 类型
alter table 表名 drop 列名
drop table 表名
alter table 表名 modify 列名 类型
alter table 表名 change 旧列名 新列名 类型
alter table 表名 rename 新表名

(未完待续)



推荐阅读
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • MySQL外键1对多问题的解决方法及实例
    本文介绍了解决MySQL外键1对多问题的方法,通过准备数据、创建表和设置外键关联等步骤,实现了用户分组和插入数据的功能。详细介绍了数据准备的过程和外键关联的设置,以及插入数据的示例。 ... [详细]
author-avatar
蜗牛的家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有