sql数据黑马程序员——SQL入门
最近研究sql数据,稍微总结一下,以后继续补充:
---------------------- ASP.Net+Android+IO开辟S、.Net培训、等待与您交流! ----------------------
今天看了SQL入门视频,简单的记录下。
Catalog、Table、Column
Catalog(分类)又叫数据库DataBase、表空间TableSpace。
将不同类的数据放到不同的数据库中,存储在不同的表中,表中每一列(Column)代表数据的一项属性。
分类的利益:1.便于对各个Catalog的管理
2.防止定名冲突
3.安全性更高
主键 PrimaryKey
是数据行的独一标识。不会重复的列才能当主键。分为业务主键和逻辑主键。
业务主键:应用有业务意思的字段做主键。
逻辑主键:应用没有任何业务意思的字段做主键。
SQL中经常使用的主键类型:int(bigint)+标识列(主动增加字段)和 uniqueidentifier 类型(GUID)
SQL中应用newid()方法失掉一个GUID,C#中应用Guid.NewGuid()方法获得GUID。
SQL语句
SQL语句是标准的数据库操纵语句。对大小写不敏感。
需要注意的一些地方:sql中字符串用单引号表现,而不是用双引号;等于判断用“=”,不等判断用“!=”或者“<>”。
一般将sql语句分为两类:DDL和DDM。
DDL(数据定义语言):create、drop、alter操纵
DDM(数据操纵语言):insert、delete、update、select操纵
SQL中常见的类型
bit 只能选择0或者1
int 32位数 bigint 64位数
char(lenth) 指定lenth长度的字符串
varchar(lenth) 可变长字符串,长度最大值lenth nvarchar(lenth) 允许字段含有非ASCII码的字符串,如中文
一些基本的SQL语法
create table Person(id int not null, name varchar(50), age int)
insert into Person(id, name, age) values(1, 'A', 10)
update Person set age=18 where id=1
select * from Person
delete form Person 与drop不同的是:drop删除全部表结构,delete删除的是表中的数据
drop talbe Person
排序 order by
排序方式:ASC递增,DESC递减。
需要注意 order by 要放在 where 语句之后, select * from Person where age > 10 order by age
当对多个项目排序时早年往后进行, select * from Person order by age DESC,name ASC
分组 group by
group by 必须放在 where 之后。没有出现在 group by 子句中的列是不能放在 select 语句的列名列表中的。
select age, name from Person group by age 应用就是错误的,对age分组后,每一组中可能有多个name值
虽然你现在还只是一株稚嫩的幼苗。然而只要坚韧不拔,终会成为参天大树;虽然你现在只是涓涓细流,然而只要锲而不舍,终会拥抱大海;虽然你现在只是一只雏鹰,然而只要心存高远,跌几个跟头之后,终会占有蓝天。
Having语句
用于对分组进行过滤。聚合函数不能出现在where子句中,除非该聚合位于Having语句或选择列表所包含的子查询中。
Having 要位于group by 之后。并且Having中不能应用为参数分组的列。
select age, count(*) from Person group by age having coung(*)>1
通配符过滤(模糊匹配)
分为单字通配符和多字通配符两种。
单字通配符用“_”表现,只能代表一个字符。多字通配符用“%”。
select * from Person wher name like 'A%' 查找结果为所用姓名以A扫尾的数据
空值处置
在sql中null表现不知道的意思,而不是编程语言中的空。
应用 is null, is not null 可以进行空值的判定。
select * from Person where name is not null
多值匹配
应用 and、or、between and 做判定范围的连接。
select * from Person where age=10 or age=18
制约结果集行数
select top 3 * from Person order by age 按照年龄升序排列后,取得排前三的数据行
select top 3 * from Person where id not in (select top 5 id from Person order by age DESC) order by age DESC 取得年龄降序排6、7、8的三个数据行
去掉重复数据
应用 distinct 关键字可以去掉查询结果中重复的数据行。
select distinct age from Person
结合 union
要求进行结合的每个结果集必须有相同的列数,并且列必须类型相容。
有 union 和 union all 两种结合方式。
union 会默认去掉完全相同的数据,因为需要进行重复值扫描,所以 union 效率低。
union all 不进行重复行合并。
select name, salary from Person
union
select '工资合计', sum(salary) from Person
-The End-
© Jervis
---------------------- ASP.Net+Android+IOS开辟、.Net培训、等待与您交流! ----------------------
详细请查看:http://edu.csdn.net
文章结束给大家分享下程序员的一些笑话语录:
程序员喝酒
我偶尔采用“木马策略”、“交叉测试”,时间不长就开始“频繁分配释放资源”,“cache”也是免不了的了,
不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
克制的。
---------------------------------
原创文章 By
sql和数据
---------------------------------
sql数据黑马程序员——SQL入门的更多相关文章
- 黑马程序员+SQL基础(上)
黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...
- 函数sql黑马程序员——SQL常用函数
最近使用开辟的过程中出现了一个小问题,顺便记录一下原因和方法--函数sql ---------------------- ASP.Net+Android+IO开辟S..Net培训.等待与您交流! -- ...
- 黑马程序员+SQL基础(下)
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net ...
- 大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17
黑马程序员_超全面的JavaWeb视频教程vedio\黑马程序员_超全面的JavaWeb教程-源码笔记\JavaWeb视频教程_day17-资料源码\day17_code\day17_1\ 大数据 目 ...
- 2019年最新超级有趣好玩的html+css网页布局课程,前端入门基础,html5+css3零基础入门课程-黑马程序员pink老师精心录制
大家好,我是黑马程序员pink老师!! 本次视频是前端零基础入门的课程,pink老师采取有趣好玩讲法,带你快乐的学习枯燥的html+css知识,学完之后让你能快速布局pc端页面.代码也可以讲的好玩有趣 ...
- 黑马程序员:轻松精通Java学习路线连载1-基础篇!
编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...
- 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具
Java学习路线图引言: 黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...
- 黑马程序员:3分钟带你读懂C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移 ...
- 【转】Python用数据说明程序员需要掌握的技能
[转]Python用数据说明程序员需要掌握的技能 https://blog.csdn.net/HuangZhang_123/article/details/80497951 当下是一个大数据的时代,各 ...
随机推荐
- Android小应用-----画画板
public class MainActivity extends Activity { private ImageView iv; float startX = 0; float startY = ...
- 间支付系统,DataGridView
我们通常看到很多的学习使用控制数据库和接口连接--DataGridView,在我们的房间,当我们敲开使用第一遍阶段似该控件--MSHFlexGrid,随着学习的深入,发现我们用到的平台越来越人性化了, ...
- openSUSE13.2安装Nodejs并更新到最新版
软件源中直接安装Nodejs即可 sudo zypper in nodejs 查看nodejs版本 sincerefly@linux-utem:~> node --version v0.10.5 ...
- Spring之SpringMVC(源码)启动初始化过程分析
1.说明 SpringMVC作为Spring提供的MVC实现,可以实现与Spring的天然无缝联合,因为具有很广泛的用途.具体的关于SpringMVC的处理流程逻辑我在这里就不在赘述了.还是来通过源码 ...
- leetcode[164] Maximum Gap
梅西刚梅开二度,我也记一题. 在一个没排序的数组里,找出排序后的相邻数字的最大差值. 要求用线性时间和空间. 如果用nlgn的话,直接排序然后判断就可以了.so easy class Solution ...
- 证明中序遍历O(n)
算法导论12.1 什么是二叉搜索树 二叉搜索树应满足的性质: 设x是二叉搜索树中的一个结点.如果y是x左子树中的一个结点,那么y.key <= x.key.如果y是右子树中的一个结点,那么y.k ...
- 自己动手实现Expression翻译器 – Part Ⅲ
上一节实现了对TableExpression的解析,通过反射创建实例以及构建该实例的成员访问表达式生成了一个TableExpression,并将其遍历格式化为”Select * From TableN ...
- Web面试之JQuery
程序员Web面试之JQuery 又到了一年一度的毕业季了,青春散场,却等待下一场开幕. 在求职大军中,IT行业的程序员.码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了 ...
- CentOS 6.4源码编译安装httpd并启动测试
今天来总结一下在Linux中软件安装,通常我们应该知道,安装软件有两种方法:一种是软件包的安装,也就是rpm包的安装,就是指这些软件包都是 已经编译好的二进制rpm包,我们通过rpm安装工具和yum安 ...
- let和const关键词
ECMAScript 6中的let和const关键词 2013-11-28 21:46 by BarretLee, 21 阅读, 0 评论, 收藏, 编辑 ECMAScript 6中多了两个定义变量的 ...