随笔分类 - 数据库
摘要:1.普通公用表达式: 1 #CTE配合使用实现子查询 2 WITH cte_emp 3 AS (SELECT DISTINCT department_id FROM employees) 4 #此处cte_emp就可以表示子查询中()里面的表 5 6 SELECT * 7 FROM departme
阅读全文
摘要:1.窗口函数解析:其相较于聚合函数的区别就是,聚合函数是按照某个特性,如对一类元组进行求和,将求和的结果变成一项进行呈现,即是多变一的过程。 而窗口函数则是在得到这个求和结果后,把这个结果赋给这一类元组的所有元组中去,即仍保留了多个元组的情况 使用实例: 1 #任务:算出每个区域的销售额占自己所在的
阅读全文
摘要:1.IF函数: IF(condition,value1,value2):如果condition条件成立,则返回value1的值,如果condition条件不成立,则返回value2的值 实例: 1 SELECT last_name,salary,IF(salary >= 6000,'高工资','低工
阅读全文
摘要:SQL语句需要按照一定的顺序调用各种结构和关键词,如果顺序颠倒,则无法正常的编译通过,执行出正确的操作结果。 SQL语句的正确顺序: 1 #SQL语句的基本形式 2 SELECT AVG(salary),e.department_id,d.department_name 3 FROM employe
阅读全文
摘要:1.触发器的基本介绍:其创建的样式类似于存储函数和存储过程,但是与存储函数和存储过程不同,触发器的调用触发是经过预先规定的,而不在是通过手动输入代码进行调用。 主要功能:一般用于一个表中的数据改变时,与之相关联的表的更新(因为表的相关性,相关表的数据在原表改变后也需要进行更新同一,如果全部手动操作一
阅读全文
摘要:在之前的操作中,我们都是对整个表,或者是根据条件选出来的表的部分作为一个整体进行操作 缺乏一个对表的每个元组进行逐一操作的语句,所以引入了游标的概念,它的作用有点类似于高级语言中的数组下标,可以对选中的表中的每个元组进行逐一操作 游标的使用方法: 1.创建游标 CREATE 游标名 CURSOR F
阅读全文
摘要:LEAVE和ITERATE主要应用在循环中,LEAVE的作用相当于高级语言中的'break',ITERATE的作用相当于高级语言中的'continue' 其主要是用在循环语句之中 1.LEAVE的使用: 1 DELIMITER // 2 3 CREATE PROCEDURE leave_begin(
阅读全文
摘要:循环结构共有三种类型的语句:1.LOOP 2.WHILE DO 3.REPEAT UNTIL 1.LOOP: 1 DELIMITER // 2 CREATE PROCEDURE test_loop() 3 BEGIN 4 #声明局部变量 5 DECLARE num INT DEFAULT 1; 6
阅读全文
摘要:分支结构主要有两种类型:IF THEN 与 CASE WHEN 1.IF THEN 简单示例: 1 DELIMITER // 2 3 CREATE PROCEDURE test_if() 4 5 BEGIN 6 DECLARE age INT DEFAULT 20; 7 8 IF age > 40
阅读全文
摘要:日期时间函数: 1 #3.1 获取日期、时间 2 SELECT CURDATE(),CURRENT_DATE(),CURTIME(),NOW(),SYSDATE(), 3 UTC_DATE(),UTC_TIME() 4 FROM DUAL; 5 6 SELECT CURDATE(),CURDATE(
阅读全文
摘要:字符串函数: 1 SELECT ASCII('Abcdfsf'),CHAR_LENGTH('hello'),CHAR_LENGTH('我们'), 2 LENGTH('hello'),LENGTH('我们') 3 FROM DUAL; ASCII('Abcdef'):获取对应字符串的第一个字符的ASC
阅读全文
摘要:常用的数值函数汇总: 1 #基本的操作 2 SELECT ABS(-123),ABS(32),SIGN(-23),SIGN(43),PI(),CEIL(32.32),CEILING(-43.23),FLOOR(32.32), 3 FLOOR(-43.23),MOD(12,5),12 MOD 5,12
阅读全文
摘要:1.自己定义一个新的错误类型与系统中的某个错误类型相对应. 1 #格式:DECLARE 错误名称 CONDITION FOR 错误码(或错误条件) 2 3 #举例1:定义“Field_Not_Be_NULL”错误名与MySQL中违反非空约束的错误类型 4 #是“ERROR 1048 (23000)”
阅读全文
摘要:变量与存储过程的综合涉及到两个方面的变量使用: 1.在引入的参数变量中使用变量(参数变量) 2.在函数内部声明的变量中使用变量(内部变量) 3.补充:函数外部的变量(外部标量)不能直接调到存储过程中作为变量执行使用 存储过程与变量的结合使用实例: 1 #方式2:使用局部变量 2 DELIMITER
阅读全文
摘要:1.变量的总体分类 (1).变量总体可以分为系统变量和用户自定义变量 (2).系统变量可以分为全局系统变量(GLOBAL)和会话系统变量(SESSION) 全局系统变量在每次计算机与数据库重连(即重启Mysql服务)时会重置 会话系统变量在新创建一个会话时就会进行重置 2.系统变量 (1).系统变量
阅读全文
摘要:1.常见的几种存储过程: (1).无参数无返回值: 1 #1. 创建存储过程insert_user(),实现传入用户名和密码,插入到admin表中 2 DELIMITER // 3 CREATE PROCEDURE insert_user(IN id1 INT,IN pwd1 VARCHAR(25)
阅读全文
摘要:1.视图即一个连接表的工具,用于辅助对表的查找和修改,是一个虚表,但通过改变该虚表可以改变与之连接的实表内容 2.视图的有关语句的语法,和表的语法基本相同 1.视图的创建与替换: 1 #1. 创建视图emp_v1,要求查询电话号码以‘011’开头的员工姓名和工资、邮箱 2 create or rep
阅读全文
摘要:1.比较表的属性结构和数据元组"增添"区别 (1).表的整体创建: 1 create table dept01 ( 2 id INT(7), 3 name varchar(25) 4 ); 使用create table...的语句 (2).表的属性字段增添: 1 alter table employ
阅读全文
摘要:第一部分:表的约束 常见的约束类型: (1).primary key:主键(用于区分不同元组的唯一标识属性) (2).unique:独特(表示该属性的分量不能在不同元组中重复出现) (3).not null:不为空(表示该属性的分类不能为空值) (4).foreign key ... referen
阅读全文
摘要:相关子查询: 即在查询中除了用到子查询外,还用到了表之间的连接(即多表查询) 以下有几个例子: 1 #18.查询各部门中工资比本部门平均工资高的员工的员工号, 姓名和工资(相关子查询) 2 select employee_id ,last_name ,salary 3 from employees
阅读全文