查询分析器的使用

SQL语言包含四个部分:

1、数据定义语言(DDL) : 例如 create, drop, alter等语句

2、数据操作语言(DML) : 例如 insert,delete, update等语句

3、数据查询语言(DQL) :例如 select

4、数据控制语言(DCL):例如grant, revoke, commit, rollback

----------------------------------------------------------------------

 --建表
create table hero
(heroId int,
heroName varchar(),
heroNickname varchar(),
sex char(),
sal int
) --
insert into hero values(, '宋江', '及时雨', '男', )
insert into hero values(, '卢俊义', '转地鼠', '男', )
insert into hero values(, '吴用', '智多星', '男', )
insert into hero values(, '公孙胜', '入云龙', '男', )
--查询
select * from hero
select * from hero where sal < --把工资低于100提高10% (update)
-- update 表名 set 字段名1 = ?,字段名2 = ? where 条件
update hero set sal = sal * 1.1 where sal <
-- 请删除性别为女的
delete from hero where sex = '男'
---表名规范案例
---1表名以字母和_开头
---2不能大于128
---3不能使用保留字 -----unicode编码:用两个字节表示一个字符(可以使英文字母s,可以使汉字)-->对汉字支持比较ok
-----非unicode编码: 用一个字节表示一个字母,用两个字节表示一个汉字 ----char和varchar
---如果一个字段的长度是确定的,则使用char, 比如存放学号

字符类型:

一般带有汉字的段用nvarchar,全英或者符号的用varchar,因为nvarchar为unicode字符集,该类型的字段无论是单个字母还是单个汉字都占两个字节,而varchar 字母占一个字节,汉字占两个。nvarchar处理汉字或其他unicode字符集的速度要比varchar字段快.

数字型

1.bit 范围0或1

2.int

3.bigint

4.float存放小数,不推荐使用

5.numeric 小数,存放小数最好使用 numeric(20, 2) 总位数是20位,小数位数2位

日期类型:

datetime(表示日期) datestamp(时间戳)

-----------------------------

--建表
create table hero
(heroId int,
heroName varchar(50),
heroNickname varchar(50),
sex char(2),
sal int
)

--
insert into hero values(1, '宋江', '及时雨', '男', 100000)
insert into hero values(2, '卢俊义', '转地鼠', '男', 10410)
insert into hero values(3, '吴用', '智多星', '男', 50)
insert into hero values(4, '公孙胜', '入云龙', '男', 20)
--查询
select * from hero
select * from hero where sal < 100

--把工资低于100提高10% (update)
-- update 表名 set 字段名1 = ?,字段名2 = ? where 条件
update hero set sal = sal * 1.1 where sal < 100
-- 请删除性别为女的
delete from hero where sex = '男'
---表名规范案例
---1表名以字母和_开头
---2不能大于128
---3不能使用保留字

-----unicode编码:用两个字节表示一个字符(可以使英文字母s,可以使汉字)-->对汉字支持比较ok
-----非unicode编码: 用一个字节表示一个字母,用两个字节表示一个汉字

----char和varchar
---如果一个字段的长度是确定的,则使用char, 比如存放学号 6

create table spname
(bir datetime)
--sql server为我们提供了一个专门的时间函数
--getdate()
insert into spname values(getdate())
select * from spname
--主键不能为空
create table clerk
(clerId int primary key,
cleName nvarchar(50),
age int
)

insert into clerk values(1, '贾宝玉', 19)
insert into clerk values(2, '贾政', 18)
--插入部分字段,需要在表名后面指定字段列表
insert into clerk (clerId, cleName) values (3, '林黛玉')
--把贾政的年龄设为38
update clerk set age = 38 where cleName = '贾政'
--把2号人物,名字改为 薛蟠,年龄改为40
update clerk set cleName = '薛蟠', age = 40 where clerId = 2
--主键可以修改,不能重复
update clerk set clerId = 4 where cleName = '薛蟠'
--把age为null的名字修改为 薛宝钗
update clerk set cleName = '薛宝钗' where age is null

insert into clerk values(5, '贾母', 70)
insert into clerk values(6, '焦大', 75)

--删除 年龄 > 70并且<=75 或者age是null
delete from clerk where (age > 70 and age <= 75) or age is null

--查询
--1 查询所有列 select * from 表名 where 条件
--2 查询指定列 select 字段1, 字段2 from 表名where 条件
--3 如何取消重复行 (distinct)

select distinct 字段1 from 表名 where 条件
--4 使用算数表达式
----计算每个雇员的年工资(包括基本工资+奖金)
----isnull(comm,0) 如果comm是null返回0,否则返回该数, 年工资作为列别名
select ename, sal * 13 + isnull(comm, 0) * 13 年工资 from emp
--5 如何查询入职时间是1982年1月1日之后的
select * from emp where hiredate > '1982-1-1'
--6 工资在2000到2500之间
select * from emp where sal > 2000 and sal < 2500
select * from emp where sal between 2000 and 2500
--7 如何使用like(模糊查询) %表示0到多个字符 _表示1个字符
----查询首字母为s的姓名和工资
select ename, sal from emp where ename = 's%'
----查询第三个字母是o的姓名和工资
select ename, sal from emp where ename = '__o%'

如何按照工资从低到高顺序排序

order by 默认升序

order by sal desc

--计算每个雇员的年工资(包括基本工资+奖金)并按照年工资从低到高排序

--可使用别名排序

select ename, sal * 13 + isnull(comm, 0) * 13 年工资 from emp order by 年工资

--如何查询empno为123,456,800的雇员的信息
--使用 in 关键字效率更高
select * from emp where empno in (123, 456, 800)
--显示最低工资和该雇员的名字
select ename, sal from emp where sal = (select min(sal) from emp)
--显示平均工资和总工资
select avg(sal) 平均工资, sum(sal) 总工资 from emp
--计算有多少员工
select count(*) from emp
--请显示高于平均工资的员工信息
select ename, sal from emp where sal > (select avg(sal) from emp)
--如何显示每个部门的平均工资和最高工资
select avg(sal), max(sal), deptno from emp group by deptno
--显示每个部门每种岗位的平均工资和最低工资
select avg(sal), min(sal),deptno, job from emp group by deptno, job order by deptno
--显示平均工资低于2000的部门号和它的平均工资
--having往往和group by结合使用,可以对分组查询结果进行筛选, 并按照从低到高排序
select avg(sal), deptno from emp group by deptno having avg(sal) < 2000
order by avg(sal) asc

--如何查询empno为123,456,800的雇员的信息
--使用 in 关键字效率更高
select * from emp where empno in (123, 456, 800)
--显示最低工资和该雇员的名字
select ename, sal from emp where sal = (select min(sal) from emp)
--显示平均工资和总工资
select avg(sal) 平均工资, sum(sal) 总工资 from emp
--计算有多少员工
select count(*) from emp
--请显示高于平均工资的员工信息
select ename, sal from emp where sal > (select avg(sal) from emp)
--如何显示每个部门的平均工资和最高工资
select avg(sal), max(sal), deptno from emp group by deptno
--显示每个部门每种岗位的平均工资和最低工资
select avg(sal), min(sal),deptno, job from emp group by deptno, job order by deptno
--显示平均工资低于2000的部门号和它的平均工资
--having往往和group by结合使用,可以对分组查询结果进行筛选, 并按照从低到高排序
select avg(sal), deptno from emp group by deptno having avg(sal) < 2000
order by avg(sal) asc

--多表查询
---显示雇员名,雇员工资及所在部门的名字,部门号
---如果两种表都有相同名字的字段,则需要带表名
select ename, sal, loc, e.deptno
from emp e, dept d
where e.deptno = d.deptno
---如何显示部门号为10的部门名,员工名和工资
select d.dname, e.ename, e.sal from emp e, dept d
where d.deptno = 10 and e.deptno = d.deptno
--自连接(同一张表的连接查询)
---?显示公司每个员工的名字和上级名字
----分析把emp看做两个表,分别是worker 和 boss
select worker.ename 雇员, boss.ename 老板 from emp worker, emp boss
where worker.mgr = boss.empno
--子查询
---如何显示与smith同一部门的员工
select * from emp where deptno =
(select deptno from emp where empname = 'smith')
---如何显示高于部门平均工资的员工名字,薪水,还有其他部门的平均工资
--1首先知道各部门的平均工资
select avg(sal), depno from emp group by depno
--2把上述查询结果,当一个临时表对待
select emp.ename, emp.sal, temp.myavg, emp.deptno from emp,
(select avg(sal), depno from emp group by depno) temp
where emp.depno = temp.depno and emp.sal > temp.myavg

--备份
backup database 你要备份的数据库 to disk = '路径名'
backup database test to disk='e:/aaa.bak'
use master
--恢复数据库
drop database test
restore database 数据库名 from disk = '路径名'
restore database test from disk = 'e:/aaa.bak'

========================================

1、给表增加一列属性: alter table 表名 add 列名 类型 default(' ')

2、给表修改一列属性: alter table 表名 alter column 列名 类型

3、给表修改一列名: exec sp_rename '表名.列名', ‘新列名’

2、给表删除一列属性: 

sql server开发工具的更多相关文章

  1. Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程

    原文:Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程 Red Gate系列之三 SQL S ...

  2. SQL Server客户端工具到底使用的是哪个provider呢?

    SQL Server客户端工具到底使用的是哪个provider呢? 转载自:http://blogs.msdn.com/b/apgcdsd/archive/2013/01/10/sql-server- ...

  3. pl/sql developer开发工具的beautifier美化插件

    对于存储过程中需要编写大量的sql语句,这必然需要美化语句,使得程序可读性更高. pl/sql developer开发工具自带美化工具,不过美化的时候容易使得语句全部改变成大写格式,这样就需要一个插件 ...

  4. SQL Server跟踪工具Profiler的使用

    一.什么是SQL Profiler SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果. 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进 ...

  5. SQL Server Profiler工具

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...

  6. SQL Server 开发利器 SQL Prompt 6.5 T-SQL智能感知分析器 下载地址 完全破解+使用教程

    SQL脚本越写越多,总是觉得编写效率太过于低下,这和打字速度无关.在我个人编写SQL脚本时,至少会把SQL的格式排列成易于阅读的,因为其他人会阅读到你的SQL,无论是在程序中或是脚本文件中,良好的排版 ...

  7. SQL Server Profiler工具【转】

    一.SQL Profiler工具简介 转自:http://www.cnblogs.com/kissdodog/p/3398523.html SQL Profiler是一个图形界面和一组系统存储过程,其 ...

  8. 详解SQL Server 2008工具SQL Server Profiler

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 1.图形化监视SQL Server查询: 2.在后台收集查询信息: 3.分析性能: 4.诊 ...

  9. SQL Server 开发指南

    SQL Server 数据库设计 一.数据库设计的必要性     二.什么是数据库设计     三.数据库设计的重要     四.数据模型          实体-关系(E-R)数据模型        ...

随机推荐

  1. iOS一些高效代码

    一. [Bugly startWithAppId:BUGLY_APP_ID #if DEBUG developmentDevice:YES #endif config:config]; 二.

  2. Random Processes

    对于信号处理来说,有一类信号是非常重要的,这类信号就是随机信号(random signal),也被称为随机过程(random processes/stochastic processes).在各种书籍 ...

  3. Spring 使用介绍(十一)—— Spring事件

    一.简介 spring事件是观察者设计模式的实现,主要有三个元素: 事件 spring事件由ApplicationEvent定义 监听者 由ApplicationListener定义 发布者 由App ...

  4. js判断一个元素是否在数组中

    js判断一个元素是否在数组中 var arr = ['a','s','d','f']; console.info(isInArray(arr,'a'));//循环的方式 function isInAr ...

  5. linux系统命令大全

    文件管理 cat chattr chgrp chmod chown cksum cmp cp cut diff diffstat file find git gitview in indent les ...

  6. UESTC1013-我的魔法栈-模拟/排列组合

    有一个串,有黑色和白色两种元素.一次操作可以把最上面的白色元素变成黑色,同时把这个元素上面的所有元素变成白色. 给你一个30以内的串,计算变成全黑时,元素变化的总和. 我用的方法比较笨,打表处理了1- ...

  7. 洛谷P1373小a和uim大逃离题解

    题目 这个题好坑啊,首先是他会卡空间,然后我们就只能把一种比较好理解的状态给舍弃,因为空间开不下,然而采用一种难理解的状态就是\(dp[i][j][l][0/1]\)表示\(i\),\(j\)位置,两 ...

  8. Codeforces519 E. A and B and Lecture Rooms

    传送门:>Here< 题意:询问给出一棵无根树上任意两点$a,b$,求关于所有点$i$,$dist(a,i) = dist(b,i)$的点的数量.要求每一次询问在$O(log n)$的时间 ...

  9. requirejs 使用实例r.js打包

    在这里,请先看基础文章与相关技术文档: 安装: npm init npm install requirejs --save npm install jquery@1.11.1 --save 创建基本目 ...

  10. Nagios 监控 Mysql

    被监控机的Mysql监控创建专用数据库.专用数据库账户mysql -uroot -pcreate database nagios_monitor;grant select on nagios_moni ...