本文只记录重点,笔记参考[mysql教程](https://www.bilibili.com/video/BV1UE41147KC?
p=13&spm_id_from=pageDriver&vd_source=a42f54c8ad8eeee75e7ab19f3b782a8a)
Navicat for MySQL 是一款专为 MySQL 数据库设计的图形化管理工具,它提供了许多方便的功能来帮助用户管理和维护
MySQL 数据库。它支持连接到本地和远程 MySQL
服务器,支持多种数据库对象管理工具,包括表、视图、存储过程和触发器等,还支持数据库同步、备份和还原等功能。他是指 PostgreSQL 数据库管理系统,与 MySQL
相比,它具有更好的事务处理、并发控制和数据完整性等特性。同时,PostgreSQL 支持更多的数据类型和高级功能,如自定义函数和存储过程等。MySQL是一种DBMS(数据库管理系统),它是一种开源的关系型数据库管理系统。
mysql不管大小写!!!
select语句
取别名AS可以省略**
distinct:去掉重复项
比较运算符
逻辑运算符
not适用于比如除了某个人的剩下全部
in的用法
between用法
**
like用法—字符串搜索
**
REGEXP运算符
**
IS NULL运算符
**
找出空值,找出有某些属性缺失的记录
**
**
回顾
**
ORDER BY子句
**
排序语句,可选加 DESC(逆序)
可多列,可包括没选择的列(MySQL特性,别的数据库这样写会报错),不仅可以是列,也可是列间的数学表达式以及之前定义好的别名列
(MySQL特性),任何一个排序依据列后面都可选加 DESC 最好别用 ORDER BY 1, 2(表示以 SELECT ……
选中列中的第1、2列为排序依据) 这种隐性依据
**
**
LIMIT子句
**
限制返回结果的记录数量,“前N个” 或 “跳过M个后的前N个”
**
**
回顾
**
**
新阶段–在多张表格中检索数据 内连接和外连接,这里先讲内连接 各表分开存放是为了减少重复信息和方便修改,需要时可以根据相互之间的关系连接成相应的合并详情表以满足相 应的查询需求。FROM JOIN ON
语句就是告诉sql:将哪几张表以什么基础连接/合并起来。 语法: from 表A (可在这取别名,AS可省略) join 表B ON
条件(例如A.ID=B.ID) 用了别名后其他地方只能用别名,用全名会报错。
**
跨数据库连接(合并)
**
有时需要选取不同库的表的列,其他都一样,就只是FROM JOIN里对于非现在正在用的库的表要加上库名前缀而 已。依然可用别名来简化
**
自连接
**
一个表和它自己合并。如下面的例子,员工的上级也是员工,所以也在员工表里,所以要想得到的有员工和他的上
级信息的合并表,就要员工表自己和自己合并,用两个不同的表别名即可实现。
**
多表连接
复合连接条件
**
像订单项目(order_items)这种表,订单id和产品id合在一起才能唯一表示一条记录,这叫复合主键,订单项目备注表(order_item_notes)也是这两个复合主键,因此他们两合并时要用复合条件:FROM
表1 JOIN 表2 ON 条件1 【AND】 条件2
**
隐含连接语法
**
就是用 FROM WHERE 取代 FROM JOIN ON
尽量别用,因为若忘记WHERE条件筛选语句,不会报错但会得到交叉合并(cross join)结果:即10条order会分
别与10个customer结合,得到100条记录。最好使用显性合并语法,因为会强制要求你写合并条件ON语句,不至 于漏掉。
**
外连接
**
有的顾客没有下单,最后连接两个表,出来的顾客id只有有订单记录的那一批,所以我们要用到 left join或者right
join(如果是from顾客数据库,就用左