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 当下是一个大数据的时代,各 ...
随机推荐
- ios基金会-XCode温馨提示
(一个)代号规格pragma mark 1.定义 #pragma 开头的代码是一条编译器指令,是一个特定于程序或编译器的指令. 不一定适用于其他编译器或其他环境.假设编译器不能识别该指令.则会将其忽略 ...
- 浅析 JavaScript 中的 函数 currying 柯里化
原文:浅析 JavaScript 中的 函数 currying 柯里化 何为Curry化/柯里化? curry化来源与数学家 Haskell Curry的名字 (编程语言 Haskell也是以他的名字 ...
- T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响!
原文:T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst.语言版本影响! CSDN 的 Blog 太滥了!无时不刻地在坏! 开始抢救性搬家 ...
- SQL点滴18—SqlServer中的merge操作,相当地风骚
原文:SQL点滴18-SqlServer中的merge操作,相当地风骚 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在tec ...
- WEB开发中常用的正则表达式集合
在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...
- 安装Windows2008操作系统 - 初学者系列 - 学习者系列文章
Windows2008这款服务器操作系统不知道有多少服务器在使用,毕竟前面有经典的2003系统,后续有2012操作系统.具体就不讨论这些了.下面就对Windows2008服务器操作系统的安装进行介绍. ...
- xheditor 进阶
xhEditor提供两种方式初始化编辑器: 方法1:利用class属性来初始化和传递各种初始化参数,例: class="xheditor {skin:'default'}" 方法 ...
- Mysql插入内容过长(Packet for query is too large)
原文:Mysql插入内容过长(Packet for query is too large) 这个以前一直没有碰到过,一次性向Mysql数据库插入内容过长的话会出现这个问题,解决办法就是在Mysql配置 ...
- DEBUG不能进断点 “exited with code -1073741515”
需要把相关的DLL文件加入到项目对应的DEBUG路径下 IDE :Qt Creator 系统:Win7
- Net 4.0 之 Dynamic 动态类型
Net 4.0 之 Dynamic 动态类型 本文主要旨在与网友分享.Net4.0的Dynamic 对Duck Type 的支持. 一..net4.0主要新特性 .Net4.0在.Net3.5 ...