ITPub博客

首页 > 数据库 > SQL Server > SQL Server学习笔记

SQL Server学习笔记

SQL Server 作者:aing88 时间:2009-04-06 09:35:47 0 删除 编辑

 

1.  建库建表及数据库相关操作

增加修改文件的属性包括:Name,(增加)fileName,size,maxSize,fileGrowth,(增加到哪个文件中:to filegroup xx).

删除数据文件:alter database db1 remove file file1;

 

删除数据库:drop database  dbName;

 

修改表:

        添加列:alter table 表名称 add 列定义 | 计算列 | 表约束[,……]

        编辑列:alter table表名称 alter column 列定义

        删除列:alter table表名称 drop column 列名称

如果有多个文件组的话可以将添加的表放于一个指定的文件组中:

        Create table 员工表(编号 bigint(8),Name varchar(30)) on filegroup1;

 

创建一个计算列的表:

              create table 员工表

(

姓名 nvarchar(20) not null,

性别 bit,

年龄 tinyint,

籍贯 nvarchar(20),

出生日期 datetime,

联系电话 varchar(20),

基本工资 money,

奖金     money,

交通补助 money,

住房补助 money,

应缴税款 money,

最后所得 as 基本工资+奖金+交通补助+住房补助-应缴税款

)

 

创建一个编号自增的表:

       Create table 员工(ID bigint identity primary key,Name varchar(20))on filegroup1;

 

命令格式:insert 表名 select 列名 from 表名where [条件]

       此命令可以插入多条记录,但要插入数据的表必须和select 的结果集兼容(列的顺序和数量,数据类型(或者SqlServer可以自动转换)必须相同) ;

 

数据库改名:sp_renamedb ‘旧名’,’新名’

表改名:sp_rename ‘旧表名’,’新表名’

改列名:sp_rename ‘旧列名’,’新列名’,’column ’

 

Like 字符匹配串escape转义字符

如查找以SQL_M开头以il结尾的:select * from 表名 where name like ‘SQL#_M_il’ escape ‘#’;

 

还可以用[ ]将通配符转义为普通字符如查50%开始的

       Select * from 表名 where score like ‘50[%]’;

 

用NOT查询性别为女的员工

Select * from  表名 where not 性别=’女'

 

Between 与notbetween

 

IN关键字,查找和我给定的值有没有相匹配的,有则返回显示,没有则不显示.

NOT IN可查询不在某一个范围内的数据。

  SELECT 列A, 列B FROM

WHERE 列C IN ('Value1', 'Value2', 'Value3');

 

如果要用到的某一个表名或字段名是数据库的关键字,要用[ ]或者双引号标识起来,如:

       Select * from [language]

       Select * from “language”

 

获取每个部门内不同性别的平均工资

       Select 部门,性别,avg(基本工资) from table group by 部门,性别;

 

哪个部门的平均基本工资大于公司的平均工资:

Select 部门,avg(基本工资) from 员工表 group by 部门 having ave(基本工资)>(SELECT avg(基本工资) from 员工表 );

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22249012/viewspace-1118043/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-08-02