select函数

最简单的XML用法

 ̄綄美尐妖づ 提交于 2019-12-23 16:07:24
在传递数据时,XML和JSON是最常用的数据格式,SQL Server从很早的版本就开始支持XML格式,而对于JSON格式,SQL Server从2016版本开始支持。大多数数据库系统并没有升级到SQL Server 2016版本,因此在传递格式化的数据时,通常还是使用XML格式。对我而言,查询和解析XML格式的数据需要掌握的知识点较多,MSDN上关于XML的文档,又试图把XML的各个方面都讲解地清清楚楚,以至于内容冗杂,使学习过程变得困难。我十分不喜欢学习这些不常用的数据结构,再说,在平时的数据库开发中,用到XML的地方也很少,可是,一旦在应用程序中用到XML,就只有头疼的份了,既然避不开XML,那就用最简单的方法学习它,了解它,使用它,以备不时之需。写这篇文章,就是以最简单的方式,分享XML最常用的使用方法。 一,XML数据格式的简单介绍 1,最简单的XML格式 XML数据最简单的格式是: 开始标签 :<tag> 标签的属性 ,属性值用双引号:<tag id="1" name="azure">,在单个节点中,属性名不能重复,属性之间使用空格分隔,在开始标签中,才能设置属性; 结束标签 :</tag>,结束标签不能有属性; 子节点 :在开始标签和结束标签,可以包含节点,叫做子节点; 节点值 :在开始标签和结束标签的标量值,叫做节点值; 2,使用字符串对 XML数据 赋值

MySQL 聚合函数(一)聚合(组合)函数概述

点点圈 提交于 2019-12-23 11:26:08
  MySQL版本:5.7+   本节介绍对值的集合进行操作的组合(聚合)函数。翻译自: Aggregate (GROUP BY) Function Descriptions 一、MySQL 5.7中的聚合函数   MySQL 5.7中的聚合函数如下:   除非另有说明,否则组合函数会忽略NULL值。   如果在不包含Group By子句的语句中使用组合函数,就等效于对所有行进行分组。(个人理解是,结果总是只有一行。)关于这点的更多信息,后面的小节“MySQL处理Group By的方式”会讲到。   聚合函数中,方差和标准差函数会对数值参数返回DOUBLE值。SUM()和AVG()对精确值参数(integer或DECIMAL)返回DECIMAL值,而对近似值参数(FLOAT或DOUBLE)返回DOUBLE值。   时间类型的参数对SUM()和AVG()无效。它们会把时间类型的值转换成数字,丢弃第一个非数字字符后的所有信息)。如果要解决这个问题,先要将时间类型的值转换为合适的数值单元,在执行聚合操作后,再转换回时间值。如下所示: SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_col))) FROM tbl_name; SELECT FROM_DAYS(SUM(TO_DAYS(date_col))) FROM tbl_name;   诸如SUM(

mysql----常用函数

牧云@^-^@ 提交于 2019-12-23 00:33:59
常用函数: 按功能分类为:字符串函数、数值函数、日期时间函数、流程函数、其他函数 字符串函数: concat(s1,2,...sn):字符串拼接,任何字符串与null连接都是null insert(str,x,y,instr):将str的x开始的y个字符换成instr select insert('helloworld',2,3,'AAAAAA'); #hAAAAAAoworld left(str,n):获得str从左边开始的n个字符,如果x为null不返回任何字符 right(str,n):获得str从右边开始的n个字符,如果x为null不返回任何字符 lpad(str,n,pad):用pad在str的左边进行填充,直到长度是n #select lpad('hello',20,'pad') padpadpadpadpadhello rpad(str,n,pad):用pad在str的右边进行填充,直到长度是n #select rpad('hello',20,'pad') hellopadpadpadpadpad lstrim(str),rstrim(str),strim(str):去除str左边、右边、或左右两边的空格 repeat(str,n):将str重复n次 replace(str,a,b):用b替换str中的a #select replace('helloworld','o

MySQL3:存储过程和函数

。_饼干妹妹 提交于 2019-12-22 21:35:26
什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理。本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用、查看、修改、删除存储过程和存储函数等。使用的数据库和表还是之前写JDBC用的数据库和表: create database school; use school; create table student ( studentId int primary key auto_increment not null, studentName varchar(10) not null, studentAge int, studentPhone varchar(15) ) insert into student values(null,'Betty', '20', '00000000'); insert into student values(null,'Jerry', '18', '11111111'); insert into student values(null,'Betty', '21', '22222222'); insert into student values(null,'Steve', '27', '33333333'); insert into student values(null,'James', '22

HIVE 时间操作函数

情到浓时终转凉″ 提交于 2019-12-22 15:33:21
日期函数UNIX时间戳转日期函数: from_unixtime语法: from_unixtime(bigint unixtime[, string format]) 返回值: string 说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式 举例: hive> select from_unixtime(1323308943,’yyyyMMdd’) from dual; 20111208 获取当前UNIX时间戳函数: unix_timestamp语法: unix_timestamp() 返回值: bigint 说明: 获得当前时区的UNIX时间戳 举例: hive> select unix_timestamp() from dual; 1323309615 日期转UNIX时间戳函数: unix_timestamp语法: unix_timestamp(string date) 返回值: bigint 说明: 转换格式为“yyyy-MM-dd HH:mm:ss“的日期到UNIX时间戳。如果转化失败,则返回0。 举例: hive> select unix_timestamp(’2011-12-07 13:01:03′) from dual; 1323234063 指定格式日期转UNIX时间戳函数: unix

转:EF调用存储过程、函数

ε祈祈猫儿з 提交于 2019-12-22 00:58:15
public int AddVote( int titleId, int blockId, int typeId) { List<SqlParameter> paramArray = new List<SqlParameter>(); paramArray.Add( new SqlParameter( "@titleId", titleId)); paramArray.Add( new SqlParameter( "@blockId", blockId)); paramArray.Add( new SqlParameter( "@typeId", typeId)); SqlParameter param = new SqlParameter( "@num", SqlDbType.Int); param.Direction = ParameterDirection.Output; paramArray.Add(param); using (RPDBContext db = new RPDBContext()) { try { db.Database.ExecuteSqlCommand( "EXEC [AddVote] @blockId,@titleId,@typeId,@num out", paramArray.ToArray()); } catch (Exception ex) {

linux timerfd系列函数总结

不想你离开。 提交于 2019-12-21 08:46:07
网上关于timerfd的文章很多,在这儿归纳总结一下方便以后使用,顺便贴出一个timerfd配合epoll使用的简单例子 一、timerfd系列函数   timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,因此可以配合select/poll/epoll等使用。 下面对timerfd系列函数先做一个简单的介绍: (1)timerfd_create()函数 #include <sys/timerfd.h> int timerfd_create(int clockid, int flags); /* timerfd_create()函数创建一个定时器对象,同时返回一个与之关联的文件描述符。 clockid:clockid标识指定的时钟计数器,可选值(CLOCK_REALTIME、CLOCK_MONOTONIC。。。) CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户改成其他,则对应的时间相应改变 CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响 flags:参数flags(TFD_NONBLOCK(非阻塞模式)/TFD_CLOEXEC(表示当程序执行exec函数时本fd将被系统自动关闭

MySQL高级查询函数(单行函数)

二次信任 提交于 2019-12-21 07:29:27
函数的分类: 1,单行函数:对每一条记录输入值进行计算,得到相应的计算结果,返回给用户,也就是说,每条记录作为一个输入参数,经过函数计算得到每条记录的计算结果。 2,多行函数:对多条记录输入值进行计算,得到多条记录对应的单个结果。 单行函数: ①:字符串函数(用户处理单行的字符数据,比如大小写转换,字符串截取,拼装等) a.LOWER/UPPER(LOWER(str):返回字符串str变为小写字母的字符串.UPPER(str):返回字符串str变为大写字母的字符串)   SELECT UPPER(name) FROM student; //全部大写 SELECT LOWER(name) FROM student; //全部小写 b.CONCAT: CONCAT(str1,str2,...):   1,返回结果为连接参数产生的字符串。   2,如有任何一个参数为NULL ,则返回值为 NULL   3,允许有一个或多个参数 SELECT name,age, CONCAT(name,'-',age) FROM student; 运行的结果为: c.INSERT:把指定(位置,长度)的子字符串替换成目标字符串         格式:INSERT(str,pos,len,newstr)        参数:str:(源字符串) pos:(开始插入的位置, 索引从1开始) len:

Mysql存储过程

本秂侑毒 提交于 2019-12-20 01:36:46
Mysql存储过程 简介 优点 创建语句 删除语句`(目前 Mysql不支持修改存储过程只能删除后再创建` 三种查询语句 参数说明 参数 IN的简单例子 参数 OUT的简单例子 参数 INOUT的简单例子 变量 全局变量 局部变量 控制语句 if语句 case语句 while循环语句 repeat循环语句`(与 while类似, 但不同在于, 首次循环是无条件的执行 true体` loop循环语句`(与其它循环语句自身不带条件语句, 只有结束语句` 简介 存储过程(Stored Procedure)是封装了一些 SQL语句和控制结构的函数 优点 可以在数据库内完成较复杂的判断及运算, 且改动时无需修改项目源代码 从代码请求的 SQL语句, 每次请求都会重新进行编译, 如某一操作中有大量的 SQL语句, 可以通过存储过程实现, 因为存储过程是预编译的, 所以一次处理越多语句速度相对越快 能减少网络负载, 因为从代码请求的 SQL语句都是把整条语句通过网络传到数据库中执行, 不过存储过程是只需传相关存储过程名称和参数 可以作为一种安全机制来使用, 如对某一存储过程进行权限限制, 对特定数据的访问和改动限定指定的存储过程来操作 创建语句 CREATE PROCEDURE 存储过程名称([[IN|OUT|INOUT] 参数名称 数据类形…]) 存储过程体 删除语句 (目前

Socket网络编程--小小网盘程序(5)

核能气质少年 提交于 2019-12-19 08:59:46
  各位好呀!这一小节应该就是这个小小网盘程序的最后一小节了,这一节将实现最后的三个功能,即列出用户在服务器中的文件列表,还有删除用户在服务器中的文件,最后的可以共享文件给好友。   列出用户在服务器中的文件列表   增加一个结构体 1 struct FileList 2 { 3 int cnt; 4 char list[16][128]; 5 };   为了方便我就假设服务器最多可以存16个单个用户的文件。如果想要支持更多的文件,这里可以增加一个int pages;用于分页作用,我们在服务器中获取文件时,可以根据分页进行发送。这样既方便又能支持多文件。   client.cpp这个客户端文件增加一个函数 1 int file_list(struct Addr addr,struct User user) 2 { 3 struct sockaddr_in servAddr; 4 struct hostent *host; 5 struct Control control; 6 struct FileList filelist; 7 int sockfd; 8 9 host=gethostbyname(addr.host); 10 servAddr.sin_family=AF_INET; 11 servAddr.sin_addr=*((struct in_addr *)host->h