assql

【笔记】MySQL的基础学习(二)

蓝咒 提交于 2021-02-18 04:00:40
【笔记】MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1、创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4 2、删除视图 格式:DROP VIEW 视图名称 DROP VIEW V1 3、修改视图 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME FROM A LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid WHERE A.id > 2 AND C.nid < 5 4、视图的使用 视图就是虚拟表,只能用作查询 SELECT * FROM v1 二 触发器 当对某张表做:增删改操作时,可以使用触发器自定义关联行为 1、创建基本语法 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END 插入后 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN ... END

解析MYSQL(二)

允我心安 提交于 2021-01-22 23:33:51
上一篇文章讲的是mysql的基本操作,这一篇会有一点难以理解,本节主要内容mysql视图,存储过程,函数,事务,触发器,以及动态执行sql 视图view 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据。 1、创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM tab1 WHERE nid > 4 2、删除视图 --格式:DROP VIEW 视图名称 DROP VIEW v1 3、修改视图 -- 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid,B. NAME FROM tab1 LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid

最新Mysql面试核心知识点汇总(含解析)

让人想犯罪 __ 提交于 2020-07-29 10:23:16
数据库设计三范式 : 第一范式:数据库表的每一列都是不可分割的原子数据项,即列不可拆分。 第二范式:建立在第一范式的基础上,要求数据库表中的每个实例或记录必须是可以唯一被区分的,即唯一标识。 第三范式:建立在第二范式的基础上,任何非主属性不依赖与其他非主属性,即引用主键。 视图 视图是虚拟表,并不储存数据,只包含定义时的语句的动态数据。 create view view_name as sql查询语句 存储过程 一条或多条sql语句集合,其优点为(浓缩:简单/安全/高性能): 存储过程能实现较快的执行速度 存储过程允许标准组件是编程。 存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 存储过程可被作为一种安全机制来充分利用。 存储过程能够减少网络流量 delimiter 分隔符 create procedure|proc proc_name() begin sql语句 end 分隔符 delimiter ; --还原分隔符,为了不影响后面的语句的使用 默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外) show procedure status like ""; --查询存储过程,可以不适用like进行过滤 drop procedure if exists;--删除存储过程 存储过程和函数的区别 ? 相同点

SQL Server 占用内存太高,查找占用内存高以及影响其性能的sql语句

雨燕双飞 提交于 2020-04-25 06:31:11
当发现SQL Server 占用的资源过高,有时重启电脑也解决不了问题时,建议通过如下语句检查SQL语句的问题, 如果是当天出的问题增加{ order by last_worker_time desc ,想看一下今天哪些sql执行出现问题了} SELECT s2.dbid, s1.sql_handle, (SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 , ( (CASE WHEN statement_end_offset = -1 THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2) ELSE statement_end_offset END) - statement_start_offset) / 2+1)) AS sql_statement, execution_count, plan_generation_num, last_execution_time, total_worker_time, last_worker_time, min_worker_time, max_worker_time, total_physical_reads, last_physical_reads, min_physical_reads, max_physical_reads,