sql语句小知识点

1、将两个表连接时,如果要显示具有相同列的属性,要指定是哪个表的列:

string sql = "select 姓名=sName,学号=studentInfo.sNo,语文=sChinese from studentInfo 
join studentScore on studentScore.sNo=studentInfo.sNo
";

2,查询某列是否有相同的值:

(1)按照姓名分组(就是查询的那一列),查找出个数大于1的姓名和个数。

select name,count(*) from spt_values group by name
having count(*)>1;

 3  创建数据库

(1)在sql2000自带的master数据库中有个表sysdatabases,这个表保存了所有在本地创建的数据库,通过查询这个表

可以知道有哪些数据库已经存在。

在sql 2005中,这个表存在“视图”中,同样可以使用表名sysdatabases进行查询。

(2)有时候需要在客户端安装软件,需要数据库,但是可能本地已经存在,这时可以查询sysdatabases表,如果本地

已经存在这个表,就删除。下面这条语句就是:

use master
go
if exists(select * from sysdatabases where name='student')
drop database student            
go

drop可以彻底删除数据库,delete不能删除数据库,可以删除表,但是仅仅是删除记录而已,drop是彻底删除。

(3)创建数据库

View Code
--系统数据库master中保存了所有本地数据库的名字
use master
go
if exists(select * from sysdatabases where name='student')
drop database student            --如果数据库存在就删除
go

create database student    --数据库名
on
(                            --使用的是小括号
name='student',            --数据库逻辑名
filename='E:\Data\student.mdf',  --数据库文件存放路径,注意路径用\不是/
size=10mb,                        --数据库初始大小
maxsize=100mb,                    --数据库最大文件大小
filegrowth=5mb                    --增长幅度
)
log on                            --日志文件
(
name='student_log',                --日志逻辑名
filename='E:\Data\student_log.ldf',  --日志文件路径
size=5mb,
maxsize=100mb,
filegrowth=5mb
);
go



--注意,分开创建
use student
create table T_Class
(
classid int    identity(1,1)        not null,
name nvarchar(8)                not null,
primary key ( classid )                --主键
);

create table T_StuInfo
(
stuid int primary key identity(1,1) not null, --主键,递增
name nvarchar(8)        not null,
phone nvarchar(11),    
classid int                not null,
foreign key (classid) references T_Class(classid) --定义外键,外键是其他表的主键    
);
posted @ 2012-06-10 11:30  金河  阅读(294)  评论(0编辑  收藏  举报