好贷网好贷款

SQL总结

发布时间:2016-12-5 8:41:31 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"SQL总结",主要涉及到SQL总结方面的内容,对于SQL总结感兴趣的同学可以参考一下。

------SQL总结------ --1:建数据库 create database aaa on ( name=aaa_mdf, filename='e:\aaa.mdf', size=15, maxsize=40, filegrowth=5 ) log on ( name=aaa_ldf, filename='e:\aaa.ldf', size=10, maxsize=25, filegrowth=5 ) use master select name from sysdatabases          --查看有几个数据库 exec sp_dbremove database_name              --删除数据库 ------------------------------------------------------------------- --2:修改数据库属性 exec sp_dboption 'aaa','read only','true' exec sp_dboption 'aaa','autostrink','true' ------------------------------------------------------------------- --3:创建表 use aaa create table student ( stuid int identity(1,1) primary key,          ----主键约束 stuname nvarchar(20) unique not null,     ----唯一约束 非空约束 class_num int foreign key references class(class_num), ----外键约束 stuage int check(stuage>0 and stuage<100),     ----检查约束 sex char(5) default '男',     ----默认值 [primary key(stuid,stuname)]        --设组合键为主键 ) ------------------------------------------------------------------- --4:约束 exec sp_help             --查看默认约束名 exec sp_helpconstraint '表名' exec sp_helptext --(1)主键约束: alter table student add constraint pk_stuid primary key(stuid)     --创建主键约束 alter table student drop constraint pk_stuid           --删除主键约束 alter table student add constraint pk_stuid_stuname primary key(stuid,stuname)    --设组合键为主键 --(2)外键约束 alter table student add constraint fk_class_num foreign key(class_num) references class(classnum) alter table student drop constraint fk_class_num /*特别注意:  外键必须是被引用表的主键*/ --(3)唯一约束 alter table student add constraint uq_stuname unique(stuname) alter table student drop constraint uq_stuname --(4)一次增加多个约束 alter table student add constraint pk_stuid primary key(stuid),constraint uq_stuname unique(stuname) --(5)检查约束 alter table student add constraint check_age check(stuage>0 and stuage<100) --(6)default 约束 alter table student add constraint df_sex default '男' for sex ------------------------------------------------------------------- --5:数据的插入,删除,修改 --(1)插入 insert into student[(stuname,sex)] values('zhao','男') select * into b /*(新表)*/ from a/*('源表')*/ where 1<>1 select * into test6 from test where 1<>1                --只复制了表结构没有数据 select * into test6 from test                --数据和表结构一起复制 insert into student select /*字段列*/ from /*另一表*/ where 条件 --(2)删除 delete from student where '条件' delete from student                                    --删除全部数据 truncate table student --注意: truncate 不能删除有外键约束的主表 --(3)修改 update student set name='',sex=''        --不加条件是全部修改 where '条件'  --================================================================= --6:全球唯一鉴别号 create table aa ( id uniqueidentifier default newid(), name char(10) ) insert into aa(name) values('qian') insert into aa values(newid(),'sun') --================================================================= --7:表结构修改 --(1)增加新列 alter table student add aa int not null check(aa>54) --(2)删除列 alter table student drop column aa --注意:删除列时必须保证基于该列的所有约束和索引(包括默认值约束)首先被删除掉 --(3)修改列 alter table student alter column stuname char(10) unique /*  特别注意一:修改列时如果表里有数据就不能添加主键约束和唯一约束,              因为表里有NULL值,必须是空表时才可以*/ /*  特别注意二:不能对有约束的列进行更改      不对:   alter table student alter column stuname char(8) not null   */ --(4)表和表字段的重命名 exec sp_rename '旧表名','新表名' exec sp_rename '旧字段名','新字段名','column' --===================================================================== --8:identity set identity_insert 表名 on/off --为 on 时可以自己输入数据 insert into student(num) values(58)    --58为自己设置的,此句有效 --为 off 时不可以 --===================================================================== --9:连接 --(1)连接 select * from table1,table2 --等价于 select * from table1 cross join table2 select * from table1,table2 where table1.row=table2.row --(2)自连接 --笛卡耳集    select * from emploly e1 ,emploly e2 select e1.name,e2.name from employ e1,employ e2 where e1.name=e2.name --(3)内连接 select stuname as '姓名',classname as '班级' from student inner join class on student.stuid=class.stuid inner join '表名' on 条件             --连接多个表 --它等价于: select stuname as '姓名',classname as '班级' from student,class where student.stuid=class.stuid --------------操作过程---- 1)从student 表中取出一条符合条件的记录 2)扫描 class 表,分别检查每条记录是否在连接属性上同表 student 取出的记录相等 3)相等就显示信息,继续从表 class 中取下一条记录,重复步骤2 --(4)外连接:(outer join) 允许限制一张表中的行,而不限制另外一张表中的行。 --注意:外连接不一定非要有外键约束 1: left outer join           --不能用left out join 左表中的记录全部会出现在结果集中,匹配不上的显示NULL 2: right outer join 右表中的记录全部会出现在结果集中,匹配不上的显示NULL 3: full outer join|full join      --不能用full out join 返回两个表中的匹配和不匹配的所有记录。 --===================================================================== --10:查询 --(1)select select * from student where '条件' --(2)order by select * from student order by stuname [asc|desc]     --asc 为升序 select * from student order by stuid desc,stuname desc,classnum [asc] --不能对数据类型为 text 或 image 的列使用 ORDER BY --(3)group by select * from student group by classnum having classnum>3 --(4)示例 use northwind select * from customers select city,count(*) from customers where city in ('berlin','México D.F.')     --where 的位置不能放在 group by 之后,必须在其前边 group by city having city in ('México D.F.','Berlin','Strasbourg') order by count(*) desc /*group by的特征:1.能按列分组 2.同聚合函数一起用,为每一组产生一个值。对数据分组时,也可以用条件 进行选择,这就是having子句。having子句与where子句相似,都是给出查询条件,所不同的是,where子句是 检查每条记录是否满足条件,而having子句是检查分组之后的个组是否满足条件。having子句是针对group by子 句的,没有group by 子句时不能使用having子句*/ /*1)where子句排除不满足条件的行   2)group by子句收集满足where子句的搜索行,并将哪些行分组。   3)having 子句排除不符合条件的组。*/ --group by all 能够显示所有组,即使是被where子句排除的组也将显示,不过不进行计算,计算值补null ---------------------------------------------------------------------------------------------USE Pubs SELECT title_id +':'+ title + '->' + type FROM titles --(5)其他 --1:top子句 top n [percent]           --percent 为可选项 select top 5 *|'字段名' from student /*如果一个select 语句既包含top又包含order by,那么返回的行将会从排序后的结果集中 选择。整个结果集按照指定的顺序建立并且返回排号序的结果集的前n行*/ --2:as子句 --表也可以用别名标识,尤其是自连接时 select * from student as s1,student as s2 --3:count函数 count(*) 返回组中项目的数量,这些项目包括 NULL 值。 COUNT(列名) 返回该列非空值的数量  --注意:是非空值 --4:模糊查询 --注意:模糊查询时,中文用两个%,即%% %,_,[],[^] --5:运算符 BETWEEN…AND… ,NOT BETWEEN…AND… IN (项1,项2……), NOT IN (项1,项2……) LIKE、NOT LIKE IS NULL、IS NOT NULL NOT、AND、OR >、>=、=、<、<=、<>、!>、!<   --=========================================================================================== 管理员在2009年8月13日编辑了该文章文章。 --> --> 阅读(738) | 评论(0) | 转发(0) | 0 上一篇:有一种思念不是爱情 下一篇:标准 sql 建立数据库方案 相关热门文章 Oracle_11g_自带的行列转换_SQ... 大数据如日中天,您中暑了吗?... 分页SQL USB固件开发总结(一)... 常青iTop运维管理门户实施讲座... ABAP文章索引 数据库课程设计报告(仓库管理... 拼音汉字对照表 sql isnull函数的使用 数据挖掘电子书下载 php集成环境和自己配置的区别... flash播放控件 查看nginx某一时段的日志... ftp服务器日志分析 mpi 目标机器积极拒绝,下面错... 热门推荐 --> 给主人留下些什么吧!~~ 评论热议

上一篇:有一种思念不是爱情
下一篇:RO里使用TParams参数一点体会

相关文章

关键词: SQL总结

相关评论