select函数

MySQL-视图-触发器-事务-存储过程-函数-流程控制-索引与慢查询优化-06

醉酒当歌 提交于 2019-11-28 11:14:39
目录 视图 *** 什么是视图 为什么要用视图 如何生成视图 修改视图 --> 最好(千万)不要 关联表数据改动前 关联表数据改动之后 触发器 什么是触发器 触发条件 触发器语法结构 修改mysql的默认结束符(;) 触发器死循环 六个触发器的执行时机 新增前、新增后、删除前、删除后、更新前、更新后 NEW对象指代的就是当前记录(对象) 事务 ***** 什么是事务 事务的四大特性 ACID A:原子性 atomicity C:一致性 consistency I:隔离性 isolation D:持久性 durability 如何开启事务 事务回滚 永久性更改 小案例 存储过程 什么是存储过程 如何创建存储过程 语法结构 案例 定义存储过程 在mysql中调用存储过程 在pymysql中调用存储过程 案例-- 使用存储过程监测事务 函数 MySQL内置函数 常见函数及练习 date_format() 函数(需掌握) 自定义函数 流程控制 if 条件语句 while 循环 索引与慢查询优化 ** 详细内容参考egon 的博客 前言(摘抄) 索引 扩展阅读 常见 索引 索引的本质 索引的缺点 小结 索引的数据结构 -- B+ 树 聚集索引非聚集索引 联合索引 慢查询优化 注意这块的小点能提高sql语句性能 测试索引 正确使用索引 小科普 核心业务逻辑代码一般都是 放在服务端 的

spring中的JdbcTemplate简单记录

寵の児 提交于 2019-11-28 10:27:03
JdbcTemplate主要提供以下五类方法: execute方法: 可以用于执行任何SQL语句,一般用于执行DDL语句; update方法及batchUpdate方法: update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句; query方法及queryForXXX方法: 用于执行查询相关语句; call方法: 用于执行存储过程、函数相关语句。 JdbcTemplate类支持的回调类: 预编译语句及存储过程创建回调: 用于根据JdbcTemplate提供的连接创建相应的语句; PreparedStatementCreator :通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的PreparedStatement; CallableStatementCreator: 通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的CallableStatement; 预编译语句设值回调: 用于给预编译语句相应参数设值; PreparedStatementSetter: 通过回调获取JdbcTemplate提供的PreparedStatement,由用户来对相应的预编译语句相应参数设值; BatchPreparedStatementSetter:

MySQL存储过程中的IN,OUT,INOUT类型

大城市里の小女人 提交于 2019-11-28 09:24:32
MySQL存储过程中有IN,OUT,INOUT类型 ----------------------------------- ## IN IN参数只用来向过程传递信息,为默认值。 ## MySQL存储过程"in"参数:跟C语言的函数参数的值传递类似,MySQL存储过程内部可能会修改此参数, ## 但in类型参数的修改对调用者(caller)来说是不可见的(not visible) mysql>use test; mysql> drop procedure if exists pr_param_in; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> delimiter // mysql> create procedure pr_param_in(in id int) -> begin -> if (id is not null) then -> set id=id+1; -> end if; -> select id as id_inner; -> end; -> // Query OK, 0 rows affected (0.03 sec) mysql> delimiter ; mysql> set @id=10; Query OK, 0 rows affected (0.00 sec) mysql> call pr

第三十九天

删除回忆录丶 提交于 2019-11-28 08:36:33
视图 什么是视图?   一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来,它就变成了一个视图 为什么要用视图? 当频繁需要用到多张表的连表结果,你就可以事先生成号视图之后直接调动即可,避免了反复写连表操作的sql语句 如何使用? create view teacher_course as select * from teacher INNER JOIN course on teacher.tid = course.teacher_id; 1.视图只有表结构,视图中的数据还是来源于原来的表2.不要改动视图表中的数据3.一般情况下不会频繁的使用视图来写业务逻辑 触发器 到达某个条件时自动触发 当你在对数据进行增、删、改的情况下会自动触发触发器的运行 触发器分为六种情况 固定语法结构 create trigger 触发器的名字 after/before insert/update/delete on 表名 for each row begin sql语句 end # 详细版本 create trigger tri_before/after_insert/update/delete_t1 after/before insert/update/delete on t1 for each row begin sql语句 end 增前   可以修改MySQL默认的结束符(;)

day39_8_23mysql的其他内容(视图等)

一曲冷凌霜 提交于 2019-11-28 08:29:35
一。视图   MySQL中有一种比较方便的表,就是视图(view)。   什么是视图?   视图就是通过查询获得一张虚拟表,然后将其保存,下次可以直接使用这个视图。   使用视图就可以不需要重复查询/连接表,在代码层次比较方便。   视图创建的语法: #语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher_view as select tid from teacher where tname='李平老师';   修改了视图里的数据后,原数据表中的数据也会跟着修改,所以,视图只是复制了他的表结构,。   而且,设涉及多个表的视图是无法修改的。 # 修改视图 ALTER VIEW 视图名称 AS SQL语句   删除视图 语法:DROP VIEW 视图名称 DROP VIEW teacher_view   视图不会被频繁的使用。视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能。 二。触发器。   触发器使得当某个操作数据表的增删改之前或者之后,自动触发一些语句。   触发器的操作有:

基于select的sokct ftp 客户端

僤鯓⒐⒋嵵緔 提交于 2019-11-28 06:14:41
#7512import socket,os,json,time,hashlibclient_addr = ("localhost", 9999)class MyTCPClient(object): socket_family = socket.AF_INET socket_type = socket.SOCK_STREAM messge = [0, ] MYBASS = os.path.abspath("..\log\client") def __init__(self,addr,numb): self.sock = [socket.socket(self.socket_family,self.socket_type) for i in range(numb)] self.connect(addr) self._addr = 'copy' print('''------------------Welcome!!-------------- (help:帮助信息) ''') self.interation() def connect(self,addr): for client in self.sock: client.connect(addr) # client.setblocking(False) def interation(self): while True: for

数据分析-SQL练习

孤者浪人 提交于 2019-11-28 03:00:03
参看链接: 2.https://blog.csdn.net/m0_37636884/article/details/82222891(SQL 常见面试题) 3.https://bbs.csdn.net/topics/392337114(难度高) 4.https://blog.csdn.net/qq_41568597/article/details/84309503 5.https://blog.csdn.net/weederss/article/details/78034364 1.SQL 45题 create database school; use school; #学生表 create table `Student` ( `Sno` varchar(20) not null COMMENT '人名', `Sname` varchar(20) not null COMMENT '姓名', `Ssex` varchar(20) not null COMMENT '性别', `Sbirthday` datetime COMMENT '出生日期', `Class` varchar(20) COMMENT '班级' ); #课程表 create table `Course`( `Cno` varchar(20) not null COMMENT '课程号', `Cname`

mysql关于时间

烈酒焚心 提交于 2019-11-28 02:46:01
1:查看当前时间    2:字符串 与 时间 与时间戳的转换   -- 时间转字符串   select date_format(now(), '%Y-%m-%d %H:%i:%s') as now;   -- 字符串转时间   select str_to_date('2018-05-02 23:59:30','%Y-%m-%d %H');   -- 时间转时间戳   select unix_timestamp(now()) as TIMESTAMP;   -- 时间戳转时间   select from_unixtime(1525263383) as TIME;   -- 字符串转时间戳   select unix_timestamp('2018-05-02');   -- 时间戳转字符串   select from_unixtime(1525263383, '%Y-%m-%d %H:%i:%s'); 3:mysql时间加一天 与 减一天   MySQL 为日期增加一个时间间隔:date_add()   now() //now函数为获取当前时间   select date_add(now(), interval 1 day); - 加1天   select date_add(now(), interval 1 hour); -加1小时   select date_add(now(),

test1

ぐ巨炮叔叔 提交于 2019-11-28 02:07:42
---视图 ---视图的概念:视图就是提供一个查询的窗口,所有数据来自于原表。 ---查询语句创建表 create table emp as select * from scott.emp; select * from emp; ---创建视图【必须有dba权限】 create view v_emp as select ename, job from emp; ---查询视图 select * from v_emp; ---修改视图[不推荐] update v_emp set job='CLERK' where ename='ALLEN'; commit; ---创建只读视图 create view v_emp1 as select ename, job from emp with read only; ---视图的作用? ---第一:视图可以屏蔽掉一些敏感字段。 ---第二:保证总部和分部数据及时统一。 ---索引 --索引的概念:索引就是在表的列上构建一个二叉树 ----达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。 ---单列索引 ---创建单列索引 create index idx_ename on emp(ename); ---单列索引触发规则,条件必须是索引列中的原始值。 ---单行函数,模糊查询,都会影响索引的触发。 select * from emp

oracle语句和内置函数

我与影子孤独终老i 提交于 2019-11-28 00:49:33
1、数值函数 函数      返回值             样例            显示 CEIL(n) 大于或等于数值n的最小整数  SELECT CEIL(10.6) FROM TABLE_NAME; 11 FLOOR(n) 小于等于数值n的最大整数  SELECT FLOOR (10.6) FROM TABLE_NAME; 10 MOD(m,n) m除以n的余数,若n=0,则返回m SELECT MOD (7,5) FROM TABLE_NAME l; 2 POWER(m,n) m的n次方         SELECT POWER (3,2) FROM TABLE_NAME; 9 ROUND(n,m) 将n四舍五入,保留小数点后m位  SELECT ROUND (1234.5678,2) FROM TABLE_NAME; 1234.57 SIGN(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 SELECT SIGN (12) FROM TABLE_NAME; 1 SQRT(n) n的平方根         SELECT SQRT (25) FROM TABLE_NAME; 5 2、常用字符函数 INITICAP(char) 把每个字符串的第一个字符换成大写  SELECT INITICAP (‘mr.ecop’) FROM TABLE_NAME;