MYSQL 全篇总结
Posted C小杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL 全篇总结相关的知识,希望对你有一定的参考价值。
(一)mysql 数据库基础
- 数据库是一个长期存储在计算机内有组织、可共享和统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。数据库包含两种含义:保管数据的“仓库”,以及管理数据的方法和技术。
- 数据库系统主要由数据库、数据库管理系统、数据库应用程序和数据库管理员等组成。
- 启动 MySQL :net start MySQL 服务名。
停止 MySQL :net stop MySQL 服务名。 - 连接 MySQL 服务器的命令:“mysql – h MySQL 服务器主机名或 IP 地址 -P 端口号 -u 用户名 -p 密码”。
如: mysql -h localhost -P 3306 -u root -p
(二)表结构管理
- 数据完整性确保数据库中存储数据正确、有效与相容。
- 数据完整性有实体完整性、域完整性与参照完整性。
- 实体完整性有包括主键约束与唯一约束。
- 域完整性约束有非空约束与默认值约束。
- 参照完整性是通过定义一张表中外键与另外一张表中主键的引用来约束这两张表之间的联系。
- 参照其他表主键或唯一约束列的字段称为外键,外键用于实现参照完整性。包含外键的表称为从表或者子表。
(三)DDL 和 DML
- 创建数据表的 DDL 语法
USE 数据库名;
CREATE TABLE 表名(
- 添加字段和外键约束的 DDL 语法
--添加字段语法
ALTER TABLE 表名 MODIFY 字段名 数据类型(长度) 非空......;
--示例
ALTER TABLE t_student MODIFY grandID INT(46) NOT NULL;
--外键约束语法
ALTER TABLE 含有外键的表名 ADD CONSTRAINT 外键名 FOREIGN KEY (含有外键的字段) REFERENCES 主表(主键/唯一约束);
--示例
ALTER TABLE t_deposit ADD CONSTRAINT fk_deposit_user_username FOREIGN KEY(username) REFERENCES t_user(username);
- 解决存在外键约束的主表记录的删除异常:
(1)设置“删除时”状态为“SET NULL”。这样当删除被从表引用的主表记录时,从表中这些引用记录的外键值均被系统赋值为 null。
(2)设置“删除时”状态为“CASCADE”。这样当删除被从表引用的主表记录时,从表中这些引用记录均被级 联删除。
(四)SELECT 数据查询
- select 查询语句中必须的子句是:
(1)select 子句与 from 子句。 - 多列字段排序原则是:
(1)依照排序列从左到右的次序确定优先级别。 - LIKE 运算符常见通配符:
(1)通配符有“%”“”与“[]”。
(2) “%”的意义:匹配 0 到多个任意字符。
“—”的意义:匹配任意一个字符。
(3)“[]”的意义:用于指定一个字符集合。
(五) MySQL 函数
- ceil(x) 与 floor(x) 函数的作用是:
(1)ceil(x) 返回不小于 x 的最小整数值,floor(x) 返回不大于 x 的最大整数值。 - locate(s1,str)、substr(str,pos,len) 与 strcmp(s1,s2) 函数的作用:
(1)locate(s1,str):匹配字符串开始位置的函数。返回子字符串 s1 在字符串 str 中第一次出现的位置。如果 str中没有包括 s1,否则返回 0。
(2)substr(str,pos,len):截取原始字符串 str 中从 pos 开始的 len 长度字符串。len 是可选项,如果该项缺省则获取从 pos 开始的剩余字符串内容。
(3)strcmp(s1,s2):比较字符串大小的函数。如果 s1 与 s2 相等,就返回 0;如果 s1 小于 s2,就返回 -1;如果 s1 大于 s2,就返回 1。 - dayofweek(date)、date_add(date,INTERVAL expr type) 与datediff(date1, date2) 函数的作用:
(1)dayofweek(date):返回日期参数 date 对应的一周的索引位置。返回值的范围是 1 ~ 7。其中,1 表示周日,2 表示周一,3 表示周二,4 表示周三,5表示周四,6 表示周五,,7 表示周六。
(2)date_add(date,INTERVAL expr type):加法计算日期函数,这两个函数作用相同,都是返回一个以参数 date 为起始日期加上时间间隔之后的日期值。expr 参数是希望添加的时间间隔,type 表示时间间隔的类型。
(3)datediff(date1,date2):是计算两个日期之间天数间隔的函数,返回参数 date1 减去 date2 之后的值。如果date1 在 date2 之前,返回的值则为负值。
(六)聚合函数和分组查询
- count 与 sum 函数的区别:
sum 函数是符合条件的记录的数值列求和,count 函数的值是满足查询条件的结果(或记录)个数。count(column) 用于统计 column 列不为 null 的记录个数。 - 如何对查询结果进行过滤之后再分组统计:
先使用 where 子句表达式对查询结果进行过滤筛选;然后,再使用 group by 子句对 where 子句的输出进行分组统计。 - having 子句的用法:
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。having 子句的位置放在 group by 子句之后,常包含聚合函数。
(七)连接查询
- 内连接的定义是?有哪几种类型的内连接?
(1)内连接基于连接谓词,它将两张表(例如 A 和 B)的列组合在一起,产生新的结果表。具体过程是将 A 表的每一行和 B 表的每一行进行比较,并找出满足连接谓词的组合,当连接谓词被满足,A 和 B 中匹配的行会按列组合(并排组合)成结果集中的一行。
(2)内连接有 3 种:交叉连接、相等连接和自然连接。 - 多表连接查询和简单多表连接查询的语法是什么?
--多表连接查询
SELECT fieldlist
FROM table1
JOIN table2
ON table1.column1=table2.column2_1
JOIN table3
on table2.column2_2=table3.column3
[where condition]
--简单多表连接查询
SELECT fieldlist
FROM table1,table2,table3
where table1.column1=table2.column2_1 and table2.column2_2=table3.column3 [and 其他条件]
- 外连接查询的定义是?什么是左外连接?
(1)在内连接查询中,只有满足连接条件的记录才会出现在查询结果里。但是在实际的应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时就需要用到外连接查询。根据不同的外连接形式,外连接所生成的结果集中不仅包含符合条件的数据记录,还包含左表、右表或左右表中所有的数据记录。
(2)左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为 null。
以上是关于MYSQL 全篇总结的主要内容,如果未能解决你的问题,请参考以下文章