select函数

3.《SQLSERVER2012之T-SQL教程》T-SQL单表查询(三)

有些话、适合烂在心里 提交于 2019-12-07 02:28:44
表结构与数据: https://github.com/XuePeng87/TSQLV4 使用字符数据 设计字符数据的查询操作,包括数据类型、排序规则、运算符和函数,以及模式匹配。 数据类型 SQL Server支持两种字符数据类型,即常规和Unicode。常规数据类型包括CHAR和VARCHAR,Unicode数据类型包括NCHAR和NVARCHAR。常规字符的每个字符使用1个字节存储,而Unicode数据的每个字符要求2个字节,并且需要一个代理项对时,要求4个字节。如果为列选择了常规字符类型,会被限制除英语之外仅能使用一种语言。列支持的语言取决于列的有效规则。使用Unicode数据类型可以支持多种语言,所以如果你需要存储多种语言的字符数据,请确保使用Unicode字符类型,而不是常规字符类型。 名称中没有VAR元素的任何数据类型(CHAR、NCHAR)具有固定长度,即SQL Server按照列定义的大小保留行空间,而不是按照字符串中的实际字符数保留空间。 名称中含有VAR元素的数据类型(VARCHAR、NVARCHAR)具有可变长度,即SQL Server根据存储需要,在行中使用尽可能多的存储空间存储字符串中的字符,外加两个额外的字节偏移数据。 可变长度数据类型的数据更新效率低于固定长度数据类型。 还可以使用MAX来定义可变长度数据类型,而不是使用最大字符数

南邮CTF - Writeup

╄→尐↘猪︶ㄣ 提交于 2019-12-06 22:52:30
南邮CTF攻防平台Writeup By:Mirror王宇阳 个人QQ欢迎交流:2821319009 技术水平有限~大佬勿喷 ^_^ Web题 签到题: 直接一梭哈…… md5 collision: 题目源码提示: $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{*****************}"; } else { echo "false!!!"; }} else{echo "please input a";} 呃……脑中闪过“ PHP弱类型 ”于是乎……当然是Google找一下喽! QNKCDZO的md5(32)加密后: 0e830400451993494058024219903391 结合 $md51 == $md52 就要0e开头的md5碰撞!感谢 Google ! 构造: http://chinalover.sinaapp.com/web19/?a=s878926199a 签到2: 本能的直接源码搜哈…… 发现了字符输入限制10位字符,而给出的指令是11位!得嘞……前端能看见的都能改 maxlength="11" 只要限制字符数超过11或等于11位就行!

oracle的一些函数收集

倖福魔咒の 提交于 2019-12-06 13:59:35
coalesce coalesce (expression_1, expression_2, ...,expression_n)    功能      依次遍历括号内的表达式,遇到非null值的时候返回该值。    可以解决的问题:      处理多表查询的时候,处理空值 。    举例: select '','b','c' from dual; select coalesce('','b','c') from dual; --第一个字为空时,返回一个后面不为空的值 select to_number(''),0 from dual --所有的表达式的值类型必须为第一个值的类型 select coalesce(to_number(''),0) from dual; --让为空的值,默认为0 持续收集、更新... 来源: https://www.cnblogs.com/recurision/p/11988388.html

多属性、多分类MySQL模式设计

廉价感情. 提交于 2019-12-06 13:49:50
一、导读 这是来自B乎的一个问答。 当数据同时具备多个属性/分类时,改如何设计表结构和查询? 二、需求描述 我偶尔也会逛逛B乎,看到一些感兴趣的话题也会回复下。 有一次,看到这样的一个话题: 链接: https://www.zhihu.com/questio... [mysql] 当数据同时属于多个分类时,该怎么查询? 分类cate字段为[1,2,3,4,5] ,假如要查询满足分类’2’和’5′ 的数据该怎么查询? 我尝试过用 cate like ‘%2%’ AND cate like ‘%5%’去查。 想问有没有更好的办法,我这样写数据少了还好,多了根本没法查,效率太低了。 恰好我以前做过类似的业务需求设计,所以就回复了这个问题。 三、模式设计思路 这个需求可以有几种不同的解决思路,我们分别展开说一下。 (一)用bit数据类型 大概思路如下: 1、物品属性列c1 用bit数据类型 来表示,也就是只有0、1两种取值 2、当物品属性具备某个分类属性时,其值为1,否则为0 3、假如共有5个分类,当物品拥有全部分类属性时,则其值为11111,若其不具备第3个分类属性,则其值为11011,在数据库中转成十进制存储 4、上述两种情况下,将二进制转换成十进制表示,即分别是31和27 [root@yejr.me] [zhishutang]> select conv(11111, 2, 10),

SQL注入备忘录

旧时模样 提交于 2019-12-06 12:17:21
常见注入类型 联合注入 布尔注入 报错注入 盲注(时间、布尔) 堆叠注入 三个重要表 information_schema.schemata存放库名的表 information_schema.tables存放表名的表 information_schema.columns存放字段名的表 其他信息 version() 查看数据库版本 user()查看当前用户 @@version_compile_os 操作系统 @@datadir 读取数据库路径 @@basedir MYSQL 获取安装路径 先确实构造的SQL语句,常见的类型 数字型、数字括号、单引号、单引号括号、双引号、双引号括号 联合注入 有显示位置的时候可以使用 确定列的数量,常用order by,group by 后面带数字,当数字大于列名就会报错 确定显示位置,让前面sql查找为空,union select 1,2,3 ... 找到显示位置 union select group_concat(table_name) from information_schema.tables where table_schema=database() --+ 暴露表名 union select 1,2,group_concat(column_name) from information_schema.columns where table

数据库入门

≯℡__Kan透↙ 提交于 2019-12-06 09:45:20
知识点 △用数据库的原因 1文件操作的复杂度 2同步 3并发处理 4安全 △数据库系统(DBS) 数据库(DB) + 数据库管理系统 (DBS)+ 数据库应用程序 + 数据库管理员 (BDA)+ 最终用户 △数据库管理系统-DBM 网络应用服务端 我们要使用服务端的数据 - 需要有一个客户端 客户端可以自己写 : 未来写代码的时候 也可以用别人写好的 : 第三方的工具 数据库管理软件的公司出版的官方客户端 数据库管理系统本质上也是管理一堆文件 只不过人家的管理方式比我们更高效 更安全 △数据库管理员-DBA 搭建数据库服务环境 用户的创建 权限的管理 性能\语句的优化 数据库的二次开发 : 让数据库具有公司的特质 △软件 mysql : 小公司 甲骨文 oracle : 事业单位 金融企业 微软 sql server sqllite △数据库的分类 关系型数据库 mysql oracle sqlserver sqllite 非关系型数据库 redis mongodb memcache hbase 关系型数据库 优点: 1、易于维护:都是使用表结构,格式一致 2、使用方便:SQL语言通用,可用于复杂查询 3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询 缺点: 1、读写性能比较差,尤其是海量数据的高效率读写 2、固定的表结构,灵活度稍欠 3、高并发读写需求

MySQL存储过程事务

余生长醉 提交于 2019-12-06 09:23:12
day61 保存在MySQL上的一个别名 > 一坨SQL语句 -- delimiter // -- create procedure p1() -- BEGIN -- select * from student; -- INSERT into teacher(tname) values("ct"); -- END// -- delimiter; call p1(); #把sql语句封装进p1中 注释内容(创建存储过程)执行完,可以通过call调用(执行存储过程)。 在函数中: 也可通过pymysql调用存储过程 1 import pymysql 2 3 #打开 4 conn = pymysql.connect(host= "localhost", user = 'root', password='112358', database = 'db3') 5 #拿 6 cursor = conn.cursor() 7 cursor.callproc('p1')#p1存储过程 8 result = cursor.fetchall() #拿 9 10 print(result) 11 #关闭数据库 12 cursor.close() 13 conn.close() cursor.callproc('p1') 执行结果: ((1, '男', 1, '理解'), (2, '女', 1, '钢蛋'

SQL 标量函数-----日期函数 day() 、month()、year() 转载

纵然是瞬间 提交于 2019-12-06 07:40:30
select day(createtime) from life_unite_product --取 时间 字段的天值 select month(createtime) from life_unite_product --取时间字段的月值 select year(createtime) from life_unite_product --取时间字段的年值 select datepart(yy,createtime) from life_unite_product --取时间字段的年值 select datepart(qq,createtime) from life_unite_product --取时间字段的季度值 select datepart(mm,createtime) from life_unite_product --取时间字段的月值 select datepart(dy,createtime) from life_unite_product --取时间字段是那年的第几天 select datepart(dd,createtime) from life_unite_product --取时间字段的天值 select datepart(wk,createtime) from life_unite_product --取时间字段是那年的第几个星期 select

多属性、多分类MySQL模式设计

陌路散爱 提交于 2019-12-06 06:43:47
一、导读 这是来自B乎的一个问答。 当数据同时具备多个属性/分类时,改如何设计表结构和查询? 二、需求描述 我偶尔也会逛逛B乎,看到一些感兴趣的话题也会回复下。 有一次,看到这样的一个话题: 链接: https://www.zhihu.com/questio... [mysql] 当数据同时属于多个分类时,该怎么查询? 分类cate字段为[1,2,3,4,5] ,假如要查询满足分类’2’和’5′ 的数据该怎么查询? 我尝试过用 cate like ‘%2%’ AND cate like ‘%5%’去查。 想问有没有更好的办法,我这样写数据少了还好,多了根本没法查,效率太低了。 恰好我以前做过类似的业务需求设计,所以就回复了这个问题。 三、模式设计思路 这个需求可以有几种不同的解决思路,我们分别展开说一下。 (一)用bit数据类型 大概思路如下: 1、物品属性列c1 用bit数据类型 来表示,也就是只有0、1两种取值 2、当物品属性具备某个分类属性时,其值为1,否则为0 3、假如共有5个分类,当物品拥有全部分类属性时,则其值为11111,若其不具备第3个分类属性,则其值为11011,在数据库中转成十进制存储 4、上述两种情况下,将二进制转换成十进制表示,即分别是31和27 [root@yejr.me] [zhishutang]> select conv(11111, 2, 10),

2019.11.30 Mysql查询知识

ε祈祈猫儿з 提交于 2019-12-06 04:16:11
不等于:<> 判断为空的条件:null和空格(空字符串) 判断是否为null:xxxx is not null / xxxx is null 判断null: SELECT * FROM student WHERE address IS NULL ; 判断空字符串: SELECT * FROM student WHERE address=''; 包括null和空字符串: SELECT * FROM student WHERE address IS NULL OR address=''; 模糊查询:like SELECT * FROM score WHERE sname LIKE '大%';(%控制多个字符) SELECT * FROM score WHERE sname LIKE '大_';(_控制一个字符) SELECT * FROM score WHERE sname LIKE '__';(两位字符) 聚合查询:sum(求和)avg(平均数)max(最大值)min(最小值)count(总记录数) SELECT SUM(js) FROM score WHERE sclass='j1018'; SELECT AVG(html) FROM score WHERE sclass='JAVA-1018'; SELECT MIN(html+js+jquery) FROM score;