MySQL基础知识整理

1、概述

常见的关系型数据库

在这里插入图片描述
**Oracle:运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域,但是价格昂贵
DB2:速度快、可靠性好,适于海量数据,恢复性极强。适用于大中型企业领域,但是价格昂贵
SQL Server:**全面,效率高,界面友好,操作容易,但是不跨平台。适用于中小型企业领域
**MySQL:**开源,体积小,速度快。适用于中小型企业领域

SQL的定义和规则

定义:
SQL:结构化查询语言(Structured Query Language)。 是关系型数据库的标准语言。
特点:简单,灵活,功能强大。

书写规则:
1.数据库中,SQL语句大小写不敏感
2.为了提高可读性,一般关键字大写,其他小写
3.SQL语句可单行或多行书写
4.在SQL语句中,关键字不能跨多行或缩写
5.正确使用空格和缩进,可以增加代码的可读性

2、MySQL数据库的操作

SELECT语句处理顺序:查询处理的顺序如下:
FROM—>ON—> JOIN—>WHERE—>GROUP BY—>HAVING—>SELECT—>DISTINCT—>ORDER BY
—>LIMIT

1、MySQL列的常用类型
列的类型,主要是用来约束这一列能够存储何种类型的数据.列的数据类型好比就是Java中的对象的数据类型.尤其是以后最多的操作就是将数据库的数据获取出来,使用对象来封装,所以一定要记清楚映射关系.常用类型:
Java                MySQL
----------------------------------------------------
int                 INT
long                BIGINT
boolean             BIT
String              VARCHAR
#java.util.Date     DATE/DATETIME
#BigDecimal         DECIMAL
2、表的创建
创建表(指定表的结构 => 决定表能够存储哪些信息)步骤:
1.先进入某一个数据库,快捷键 CTRL+Q 进入编辑器
2.输入建表的命令,格式如下;
CREATE TABLE 表名(
	列名1 列的类型 [约束],
	列名2 列的类型 [约束],
	....
	列名N 列的类型 [约束]
);
注意:最后一行没有逗号
3、表的约束
约束作用:针对某一列,约束这一列的行为:能否为空,是否有默认值..
	1.非空约束:NOT NULL,不允许某列的内容为空。
	2.设置列的默认值:DEFAULT。
	3.唯一约束:UNIQUE,在该表中,该列的内容必须唯一。
	4.主键约束:PRIMARY KEY, 非空且唯一。
	5.主键自增长:AUTO_INCREMENT,从1开始,步长为1。(MySQL特有)
	6.外键约束:FOREIGN KEY,A表中的外键列的值必须参照于B表中的某一列(B表主键)
4、保存、新增、插入操作
INSERT 插入语句:一次插入操作只插入一行.其含义是把哪些值插入到哪个表的哪些列中
INSERT INTO 表名 (column1,column2,column3...) VALUES (value1,value2,value3...);
注意:
	(1)插入完整数据记录/空值.
	(2)插入的列和值必须一一对应.
	(3)字符串和日期要用单引号包起来
------------------------------------------------------------------------------------------------------------
UPDATE 更新操作:更新哪张表设置哪些列等于哪些值,条件为...
UPDATE 表名 SET column1=value1,column2=value2,...WHERE 条件
注意:如果省略WHERE子句,则全表的数据都会被修改.
------------------------------------------------------------------------------------------------------------
DELETE 删除操作:从哪个表中删除数据
DELETE FROM 表名 WHERE 条件 
注意:如果省略了WHERE字句,则全表的数据都会被删除
5、简单查询操作
SELECT查询操作:
(1)查明确的列: SELECT 查询的表中的列1,2,... FROM 表名 WHERE 条件
此时,查出来的列按SQL语句中的查询顺序排
(2)查所有: SELECT * FROM 表名
此时,查出来的列按建表时的顺序一致
6、简单SQL扩展
1\加入运算
运算符优先级(遵循数学运算符优先级):
    (1)乘法和除法的优先级高于加法和减法
    (2)同级运算的顺序是从左到右
    (3)表达式中使用"括号"的地方会优先进行运算

2\拼接列值
CONCAT:可以把多个值以字符串的形式拼在一起
SELECT CONCAT(str1,str2,...),1,2,... FROM 表名 WHERE 条件
注意:
    (1)返回结果为连接参数产生的字符串。
    (2)如有任何一个参数为NULL ,则返回值为 NULL3\设置列名的别名
AS:可以省略,但写上可读性更好.
作用:
    (1)改变表的名字;
    (2)用于表示计算结果的含义;
    (3)作为列的别名;
7、过滤查询
1\比较运算符
比较运算符		含义
-----------------------------
= 				等于
> 				大于
>= 				大于或等于
< 				小于
<= 				小于或等于
!=(<>)	 		不等于

------------------------------------------------------------------------------------------------------------
2\逻辑运算符
逻辑运算符 含义
----------------------------------------
AND(&&)   如果组合的条件都是TRUE,返回TRUE
OR(||)    如果组合的条件之一是TRUE,返回TRUE
NOT(!)    如果拼接的条件是FALSE,返回TRUE(&)	 :用&连接的两个条件,都是true,结果是true;有一个是false,结果就是false
短路与(&&)&&前面的条件是true,再去判断后面的条件:
			如果第一个条件是false,不再判断后面的条件,结果直接是false(|)     :用|连接的两个条件,有一个是true,结果就是true;两个都是false,结果就是false
短路或(||)||前面的条件是false,再去判断后面的条件:
			如果第一个条件是true,不再判断后面的条件,结果直接是true
------------------------------------------------------------------------------------------------------------
3\运算符
运算优先级 		运算符
------------------------------------
	1 			所有比较运算符
	2 			NOT
	3 			AND
	4			OR
8、范围查询
1\BETWEEN运算符
BETWEEN运算符:
    显示某一值域范围的记录,常见的使用在数字类型数据的范围上,对于字符类型数据和日期类型数据同样可用,且是闭区间。
格式:
SELECT * FROM 表名 WHERE 列名 BETWEEN minValue AND maxValue(包含边界值)
SELECT * FROM 表名 WHERE 列名 NOT BETWEEN minValue AND maxValue(不包含边界值)
------------------------------------------------------------------------------------------------------------
2\集合查询
IN 运算符,判断列的值是否在指定的集合中
SELECT * FROM 表名 WHERE 列名 IN(value1,value2,...);
SELECT * FROM 表名 WHERE 列名 NOT IN(value1,value2,...);
意味:列名在[value1,value2]中
------------------------------------------------------------------------------------------------------------
3\空值查询
IS NULL:判断列的值是否为空。
空值是特指没有值的列
SELECT * FROM 表名 WHERE 列名 IS NULL;
SELECT * FROM 表名 WHERE 列名 IS NOT NULL;
------------------------------------------------------------------------------------------------------------
4\模糊查询
LIKE运算符:执行通配查询,查询条件可包含文字字符或数字:
SELECT * FROM 表名 WHERE 列名 LIKE [%value/value%/%value%]
通配符的作用:用来实现匹配部分值得特殊字符。
    通配符   			含义
-------------------------------------------------------    
      % 		可表示任意个数的任意字符(0个字符,无数个字符)。
      _ 		可表示一个任意字符(有且只有一个字符)。
9、结果排序
ORDER BY子句:实现排序功能.
排序方式:
ASC : 升序,默认,可以缺省。
DESC: 降序。
ORDER BY 子句出现在SELECT语句的最后。
格式:
SELECT * FROM 表名
WHERE 条件
ORDER BY1 [ASC/DESC],2 [ASC/DESC]...;
10、聚合函数
聚合函数:又称分组函数/统计函数/聚集函数,是用来作用于一组数据,并对一组数据返回一条记录.
简单理解,就是函数运算,类似于Excel表格里面的函数.
SELECT MAX(列名),MIN(列名),AVG(列名),SUM(列名) FROM 表名;(列名可以相同)
-----------------------------------------
COUNT: 统计结果记录数
  MAX: 统计计算最大值
  MIN: 统计计算最小值
  SUM: 统计计算求和
  AVG: 统计计算平均值
11、多表查询
1\多表关系
一对多关系: 从表使用主表的主键作为外键
    (1)主表中有的数据,从表中可以没有.
    (2)主表必须有数据,才能向从表中添加数据.
    (3)删除主表的数据,要先删除从表之后,才能删除主表.
注意:一对多/多对一,取决于参照物.

#主表:没有外键的表
#从表:有外键的表

2\交叉连接查询
	SELECT * FROM1,2;
产生笛卡尔积,即得到的是两个表的乘积

3\内连接查询
在交叉连接的基础上,使用外键约束作为查询条件.
(1)隐式内连接:
SELECT * FROM1 ,2 WHERE1(从表).外键 =2(主表).主键;
(2)显示内连接(join...on):
SELECT * FROM1 JOIN2 ON1(从表).外键 =2(主表).主键;
注意:on后面可以继续使用where条件查询.
SELECT * FROM1 JOIN2 ON1(从表).外键 =2(主表).主键
WHERE 条件;

4\外连接查询
(1)左外连接:
SELECT * FROM1 LEFT JOIN2 ON 条件.
以左边表为主,若左边有数据,右边没有使用null代替.
左边没有的数据,右边也不能出现.
(2)右外连接:
SELECT * FROM1 RIGHT JOIN2 ON 条件;
以右边表为主,若右边有数据,左边没有使用null代替.
右边没有的数据,左边也不能出现.

5\子查询
一条select语句结果作为另一条select语句的(查询条件,查询结果等)。
子查询作为查询条件:
SELECT * FROM1 WHERE= (SELECTFROM1 [WHERE 条件])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值