SQL_server 的基本操作
2014-07-20 17:01
239 查看
1.---------------数据库基本操作
主键 : 1.不重复 2.不为NULL
外键
1.取消重复行(消除完全一样的行,保留一行)
select distinct cloumname1,cloumname2 from tablename
2.区间查询(两种是一个意思)
select * from emp where sal > 2000 and sal < 2500
select * from emp where sal between 2000 and 2500(效率会高一点)
3. 模糊查询
select * from emp where name like '%s%'
(查询name 的第三个是s的行记录,_匹配任意单个字符串)
select * from emp where name like '__s%'
4.批量查询(两种相同,一个是针对多种情况,一个是针对少数情况)
select * from emp where empno = '123' or empno = '234' or empno = '456'
select * from emp where empno in ('123','234','456')
5.顺序
select * from emp order by empno ASC(升序)
select * from emp order by empno DESC(降序)
select * from emp order by empno DESC,sal ASC
6.别名排序
select sal*12 as count_sal from emp order by count_sal
7.分组查询
select max(sal),deptno from emp group by deptno
having 可以对分组查询到的结果进行筛选
select max(sal) from emp group by deptno having sal < 2000
8.多表查询
select * from emp,dept,dept.deptno where dept.dname = 'sun' and emp.no = dept.no;
(取别名查询,加快sql的执行速度)
select * from emp e,dept d where d.dname = 'sun' and e.no = d.no;
9.内连接
select emp.name,dept.name from emp,dept where emp.no = dept.no
10.单行子查询和多行子查询
要知SQL里面能返回多条记录集,可以内连接的时候却是不能循环的。
所以,要在SQL里面使用循环,
单行子查询
select * from emp where job = (select job from emp where depton = '10')
多行子查询
select * from emp where job in (select job from emp where depton = '10')
把查询到的结果当做一个临时表
select emo.ename ,emp.sal tem.myavg from emp,(select avg(sal) myavg.deptno from emp group by deptno ) tem where emp.deptno = tem.deptno and emp.sal > tem.myavg
11.分页查询
前几个
select top 4 * from emp order by clownname
不在某个范围的前几个
select top 4 * from emp where empno not in (
select top 10 empno from emp order by clownname
)order by clownname
12.删除一个表的重复语句
select distinct *(选择一个字段,) into(到一个临时表中去) #temp from cat
delete from cat
insert into cat from select * from #temp
drop table #temp
13.外连接(左连接,右连接)
select w.ename,b.ename from emp w left t join emp b on w.mgr = b.empno
左外连接指:左边的表记录全部显示,没有匹配的记录,没有匹配的记录用NULL填
-----------2.约束
not null (非空) null 和 ''不一样
unique (唯一)--和主键不一样,都不允许重复,unique能放空(可是只能有一个空),主键不能放空
primary key (主键)主键只能有一个,不过可以有组合主键,就是字段联合做主键
复合主键
primary key (clownname1,clownname2)
foreign key (外键)定义主表和从表之间的关系,定于在从表上
check (范围) clownname int ckeck(clownname > 1000 and clownname <25000)
default(默认)
3.-----
备份数据库
backup database dataname(数据库名) to disk = 'f:/sp.bak'(备份到的路径)
删除数据库
drop database dataname
恢复数据库
restore database dataname(数据库名) from disk = 'f:/sp.bak'(备份到的路径)
主键 : 1.不重复 2.不为NULL
外键
1.取消重复行(消除完全一样的行,保留一行)
select distinct cloumname1,cloumname2 from tablename
2.区间查询(两种是一个意思)
select * from emp where sal > 2000 and sal < 2500
select * from emp where sal between 2000 and 2500(效率会高一点)
3. 模糊查询
select * from emp where name like '%s%'
(查询name 的第三个是s的行记录,_匹配任意单个字符串)
select * from emp where name like '__s%'
4.批量查询(两种相同,一个是针对多种情况,一个是针对少数情况)
select * from emp where empno = '123' or empno = '234' or empno = '456'
select * from emp where empno in ('123','234','456')
5.顺序
select * from emp order by empno ASC(升序)
select * from emp order by empno DESC(降序)
select * from emp order by empno DESC,sal ASC
6.别名排序
select sal*12 as count_sal from emp order by count_sal
7.分组查询
select max(sal),deptno from emp group by deptno
having 可以对分组查询到的结果进行筛选
select max(sal) from emp group by deptno having sal < 2000
8.多表查询
select * from emp,dept,dept.deptno where dept.dname = 'sun' and emp.no = dept.no;
(取别名查询,加快sql的执行速度)
select * from emp e,dept d where d.dname = 'sun' and e.no = d.no;
9.内连接
select emp.name,dept.name from emp,dept where emp.no = dept.no
10.单行子查询和多行子查询
要知SQL里面能返回多条记录集,可以内连接的时候却是不能循环的。
所以,要在SQL里面使用循环,
单行子查询
select * from emp where job = (select job from emp where depton = '10')
多行子查询
select * from emp where job in (select job from emp where depton = '10')
把查询到的结果当做一个临时表
select emo.ename ,emp.sal tem.myavg from emp,(select avg(sal) myavg.deptno from emp group by deptno ) tem where emp.deptno = tem.deptno and emp.sal > tem.myavg
11.分页查询
前几个
select top 4 * from emp order by clownname
不在某个范围的前几个
select top 4 * from emp where empno not in (
select top 10 empno from emp order by clownname
)order by clownname
12.删除一个表的重复语句
select distinct *(选择一个字段,) into(到一个临时表中去) #temp from cat
delete from cat
insert into cat from select * from #temp
drop table #temp
13.外连接(左连接,右连接)
select w.ename,b.ename from emp w left t join emp b on w.mgr = b.empno
左外连接指:左边的表记录全部显示,没有匹配的记录,没有匹配的记录用NULL填
-----------2.约束
not null (非空) null 和 ''不一样
unique (唯一)--和主键不一样,都不允许重复,unique能放空(可是只能有一个空),主键不能放空
primary key (主键)主键只能有一个,不过可以有组合主键,就是字段联合做主键
复合主键
primary key (clownname1,clownname2)
foreign key (外键)定义主表和从表之间的关系,定于在从表上
check (范围) clownname int ckeck(clownname > 1000 and clownname <25000)
default(默认)
3.-----
备份数据库
backup database dataname(数据库名) to disk = 'f:/sp.bak'(备份到的路径)
删除数据库
drop database dataname
恢复数据库
restore database dataname(数据库名) from disk = 'f:/sp.bak'(备份到的路径)
相关文章推荐
- VBA SQLServer 基本操作
- vba基本操作 -- MS SQL Server操作
- VBA SQLServer 基本操作
- 存储过程的基本操作(SQL Server Management Studio)
- Microsoft SQL server 2000基本操作
- vb sql server创建数据库实现增、删、改、查等基本操作
- oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
- Microsoft SQL server 2005的基本操作
- 数据库开发基本操作-Microsoft SQL Server Management Studio Express下载和安装
- C# Excel 基本操作、MS SQL Server
- 补充:用Ms SQL Server 存储过程操作DBF文件
- SQL Server基本函数详细介绍
- SQL基本操作---数据查询
- SQL Server Mobile 学习(二):通过 VS2005 创建和连接及操作 SQL Server Mobile 数据库
- 使用VS.NET2003操作SQLServer DTS
- SQL基本操作练习
- Oracle命令行工具基本操作及SQL 命令
- 操作MS SQL Server 存储过程的类(外加ASP.NET MessageBox类)
- 操作 SQL Server Mobile 2005 数据库的常用 C# 代码 (转自黎波)
- SQL Server Mobile 学习(二):通过 VS2005 创建和连接及操作 SQL Server Mobile 数据库