SQL学习整理_2
字符串处理,字符串函数不会改变存储在表中的数据内容,他们只是把函数结果当成查询结果返回。
1. SELECT right(name,2) FROM my_list --从my_list列表中取出name列前两个字符,同理可使用left()
SELECT right(name,len(name)-charindex(',',name)) FROM my_list --取出逗号前的所有字符
2. SELECT substring(name,1,2) FROM tablename --取出从第一个字符开始截取两个两个字符
3. 大小写转换 upper() lower()
4. 反转字符串顺序 reverse()
5. 清除左边或右边空格 ltrim() rtrim()
5. 返回字符串长度 len()
Case when then:
use test1
select stuid,stuname,
(case when stuid=1 then '' when stuid=2 then '' else '' end) as temp
from dbo.Student
排序:order by
默认情况下,SQL按升序排列。如要按降序排序需加DESC。
可以指定两列作为排序依据,也可以指定两列按不同的排序,例如第一列升序,第二列降序
order by title ASC,name DESC
SUM/AVG/min/max/count
Distinct 选取不重复的数值,是SQL中的一个关键字,不是函数,所以不用加() -- Select Distinct id from table
top 限制返回结果的数量, top 3 返回最上3条数据
mysql中为 limit 3
插入外键列的值必须已存在于父表的来源列中,这是引用完整性。 外键不一定必须是父表的主键,但必须具有唯一性。add constraint 约束名 foreign key() reference ()
范式规则:
第一范式1NF:
数据列只包含原子性的值,没有重复数据。
第二范式2NF:
已符合第一范式的表只有所有列都是主键的一部分,没有部分函数依赖。
第三范式3NF:
符合2NF,无传递依赖。
部分依赖就是非主属性对部分主键依赖
完全依赖就是非主属性必须全部依赖于组合主键
传递依赖就是非主列对非主列一列,随着另一列数据的改变而改变。
存在部分依赖则不满足2NF
存在传递依赖则不满足3NF
闭包:属性集的闭包就是属性集的每个子集以及根据每个属性可推导出的属性集。
创建新表是如需要对数据进行检测,可加check约束
create table a(
sex char(2) check (sex in ('男‘,’女‘))
)
SQL是一种声明式语言,声明想要的数据是什么样的,而不是关注计算机怎么得到数据。
SQL的语句执行顺序不按你书写顺序执行,第一步是执行from字句,将数据从硬盘加载到数据缓冲区。
SQL的核心是对数据的引用,对表的引用。
---发于12/14/2016 11:13AM
SQL学习整理_2的更多相关文章
- SQL学习整理_1
数据库是保存表和其他相关SQL结构的容器. 列是存储在表中的一块同类型数据. 行是一组能够描述某个事物的列的集合. SQL不区分大小写,但建议命令采用大写,表名采用小写,便于读写. 建立数据库 CRE ...
- SQL学习整理
SQL整理 SQL 对大小写不敏感! 一.对数据的操作 实现功能分类: 1. 增: 1.1 表存在,插入栏位: //插入新的行(按栏位的顺序插入) INSERT INTO Table_1 VALUES ...
- 一个项目涉及到的50个Sql语句(整理版)
/* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句. */ --1.学生表Student(S,Sname,Sage,Sse ...
- 基于实际项目的SQL学习总结
青云 随笔 - 2, 文章 - 0, 评论 - 1, 引用 - 0 一个项目涉及到的50个Sql语句(整理版) /* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测 ...
- js数组学习整理
原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...
- TweenMax学习整理--特有属性
TweenMax学习整理--特有属性 构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...
- HttpClient学习整理
HttpClient简介HttpClient 功能介绍 1. 读取网页(HTTP/HTTPS)内容 2.使用POST方式提交数据(httpClient3) 3. 处理页面重定向 ...
- !!对python列表学习整理列表及数组详细介绍
1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...
- Java设计模式(学习整理)---命令模式
设计模式之Command(学习整理) 1.Command定义 不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作. 将这些命令封装 ...
随机推荐
- Visual Studio 2013 智能提示
Visual Studio 2013中,智能提示功能突然用不了,查了一下,使用命令行重置VS的方法解决了这个问题.步骤如下: 开始菜单 -->所有程序-->Visual Studio 20 ...
- Spring+SpringMvc+Mybatis框架集成搭建教程一(项目创建)
一.框架搭建环境 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Idea 15.04 二 ...
- 51nod1072(wythoff 博弈)
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1072 题意: 中文题诶~ 思路: 博弈套路是有的, 找np局 ...
- c语言中遇到“警告: the `gets' function is dangerous and should not be used.”的解决办法
写于2016年12月1日. 在用c的库函数gets(str)时,编译出现该提示.原因在于linux下gcc不支持gets命令,要换成fgets(arr,size,stdin).
- dcraw源码解析
dcraw源码解析 Author:Maddock Date:2015-04-22 转载请注明出处: 首先吐槽一点: 程序中使用了相当多的全局变量, 看的人头大.全局变量的坏处参看 http://wen ...
- Centos7 基本shell命令
删除文件 # rm /usr/local/test.txt# rm -f /usr/local/test.txt //强制删除文件,不弹出提示 移动文件或文件夹 # mv webdata /bin/u ...
- JAVA Day11
接口 interface public interface Demo { public abstract void demo(); } 接口中的方法全部都是抽象的. 接口的特性 接口不可以被实例化 ...
- PHP 检查并创建多级目录
<?php //检查并创建多级目录 function checkDir($path){ $pathArray = explode('/',$path); $no ...
- 自动提交Git branch代码评审到Review Board系统
背景 敏捷软件开发中,越小的反馈环,意味着软件质量越容易得到保证. 作为组件团队,我们的开发任务中,往往存在一些特性涉及到几十个功能点,开发周期持续数周或数月的情况.如何在开发过程中保证软件质量,是个 ...
- JavaScript第一天
1.静态的网页技术和动态的网页技术 静态网页是相对于动态网页而言,是指没有后台数据库.不含程序和不可交互的网页.你编的是什么它显示的就是什么.不会有任何改变.静态网页相对更新起来比较麻烦,适用于一般更 ...