------- android培训、java培训、期待与您交流! ---------
sql里面的一些数据类型
bit类型就相当于c#中的boo了类型在数据库里面只有两种值一个是0一个是1
char(10)表示长度是10的一个字符
varchar(50)长度50的字符
nvarchar(50)可以书写一些中文或者日文的字符在这里面比如就可以写一些名字什么的
在sql语句中字符串用单引号引起来
Sq了语言分为ddl语言:数据定义语言。例如creat table还有drop table
dml语言:数据操作语言。例如select insert update delete等。
Sql一般选用两种类型作为主键一个是int 一个是uniqueidentifier作为主键。主要是这两种
Id一般在数据库中被设为主键,另外标识规范设为是,另外要注意一个表只有一个标识规范
Int自增字段的优点:占用的空间小,无需开发人员的干预,易读:缺点:效率低,数据导入导出的时候很痛苦
Guid的优点:效率高,数据导入导出方便,缺点:占用的空间大,不易读
业界主流倾向于用guid
insert into person2(name,name1)values('xulu','nihao');
insert into person3(id,name,name1)values(newid(),'xulu','nihao');
delete 用于删除数据,而drop table用于把整个表给删除掉包括里面的所有数据。
Sql聚合函数:max(最大值)min(最小值)avg(平均值)sum(和)count(数量)
大于25岁的员工的最高工资
Select max(fsalary) from person1 where age>25
最对工资和最高工资 select min(fsalary),max(fsalary) from person1
排序 order by asc 升序排序 order by desc 降序排序
Order by语句要放在where语句之后使用。
Group by语句要放在where语句之后使用。
没有出现在group by字句中的列是不能放在select 语句后的列名列表中的(聚合的函数式可以的)
比如错误 select fage,fsalary from person1 group by fage这一句是错误的语句
正确:select fage,max(fsalary) from person1 group by fage 这一句的语法是正确的。
聚合函数是不能出现在where的语句中的,聚合函数有count()max()min()avg()sum()等
Having 放在group by语句之后使用,并且having是对分组后信息的过滤,能用的列和select中能用的列是一样的。
Getdate():去的当前日期时间
Dateadd(datepart,number,date)计算增加以后的日期
参数date为带计算的日期,number为增量,datepart为计量的单位,可选值见备注dateadd(day,3,date)计算日期为date的3天以后的日期。
Datediff(datepart,startdate,enddate):计算两个日期之间的差数,datepart为计量单位,startdate为开始日期,enddate为结束日期
Datepart(datepart,date):返回日期的特定部分。
Cast(’123’as int)把’123’的字符串变成了int类型。
Convert(int,’123’)把’123’的字符串变成了int类型
这是sql里面的两种数据转换的方法。
练习表中有abc三列值,用sql语句实现:当a>b时选择a列的值,否则选择b,当b>c列是选择b列否则选择c列
Select
(
Case
When a>b then a
Else b
end
),
(
Case
When b>c then b
Else c
end
)
From t
使用索引能提高查询效率,但是索引也是占据空间的,而且添加、更新、删除数据的时候也要同步更新索引,因此会降低insert update delete 的速度,所以只在经常检索的字段上创建索引。
子查询:把一个查询结果当做语句供给其他sql语句使用
-------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------