A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jerviscui 中级黑马   /  2013-6-22 15:18  /  1596 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



不得不吐槽啊!!!  {:soso_e118:}   开了个网页然后浏览器崩溃了,刚才帖子都快写完了{:soso_e109:}

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


今天看了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



1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马