不得不吐槽啊!!! {:soso_e118:} 开了个网页然后浏览器崩溃了,刚才帖子都快写完了{:soso_e109:} -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
今天看了SQL入门视频,简单的记录下。
Catalog(分类)又叫数据库DataBase、表空间TableSpace。 将不同类的数据放到不同的数据库中,存储在不同的表中,表中每一列(Column)代表数据的一项属性。 分类的好处:1.便于对各个Catalog的管理 2.避免命名冲突 3.安全性更高
是数据行的唯一标识。不会重复的列才能当主键。分为业务主键和逻辑主键。 业务主键:使用有业务意义的字段做主键。 逻辑主键:使用没有任何业务意义的字段做主键。 SQL中常用的主键类型:int(bigint)+标识列(自动增长字段)和 uniqueidentifier 类型(GUID) SQL中使用newid()方法得到一个GUID,C#中使用Guid.NewGuid()方法获得GUID。
SQL语句是标准的数据库操作语句。对大小写不敏感。 需要注意的一些地方:sql中字符串用单引号表示,而不是用双引号;等于判断用“=”,不等判断用“!=”或者“<>”。 一般将sql语句分为两类:DDL和DDM。 DDL(数据定义语言):create、drop、alter操作 DDM(数据操作语言):insert、delete、update、select操作
bit 只能选择0或者1 int 32位数 bigint 64位数 char(lenth) 指定lenth长度的字符串 varchar(lenth) 可变长字符串,长度最大值lenth nvarchar(lenth) 允许字段含有非ASCII码的字符串,如中文
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
排序方式: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 必须放在 where 之后。没有出现在 group by 子句中的列是不能放在 select 语句的列名列表中的。 select age, name from Person group by age 使用就是错误的,对age分组后,每一组中可能有多个name值
用于对分组进行过滤。聚合函数不能出现在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 all 两种联合方式。 union 会默认去掉完全相同的数据,因为需要进行重复值扫描,所以 union 效率低。 union all 不进行重复行合并。 select name, salary from Person union select '工资合计', sum(salary) from Person
-The End- © Jervis
|