sql server开发工具
查询分析器的使用
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开发工具的更多相关文章
- 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 ...
- SQL Server客户端工具到底使用的是哪个provider呢?
SQL Server客户端工具到底使用的是哪个provider呢? 转载自:http://blogs.msdn.com/b/apgcdsd/archive/2013/01/10/sql-server- ...
- pl/sql developer开发工具的beautifier美化插件
对于存储过程中需要编写大量的sql语句,这必然需要美化语句,使得程序可读性更高. pl/sql developer开发工具自带美化工具,不过美化的时候容易使得语句全部改变成大写格式,这样就需要一个插件 ...
- SQL Server跟踪工具Profiler的使用
一.什么是SQL Profiler SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果. 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进 ...
- SQL Server Profiler工具
一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...
- SQL Server 开发利器 SQL Prompt 6.5 T-SQL智能感知分析器 下载地址 完全破解+使用教程
SQL脚本越写越多,总是觉得编写效率太过于低下,这和打字速度无关.在我个人编写SQL脚本时,至少会把SQL的格式排列成易于阅读的,因为其他人会阅读到你的SQL,无论是在程序中或是脚本文件中,良好的排版 ...
- SQL Server Profiler工具【转】
一.SQL Profiler工具简介 转自:http://www.cnblogs.com/kissdodog/p/3398523.html SQL Profiler是一个图形界面和一组系统存储过程,其 ...
- 详解SQL Server 2008工具SQL Server Profiler
一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 1.图形化监视SQL Server查询: 2.在后台收集查询信息: 3.分析性能: 4.诊 ...
- SQL Server 开发指南
SQL Server 数据库设计 一.数据库设计的必要性 二.什么是数据库设计 三.数据库设计的重要 四.数据模型 实体-关系(E-R)数据模型 ...
随机推荐
- codeforces749B
Parallelogram is Back CodeForces - 749B 已知平行四边形的三个顶点,求第四个顶点可能的位置.Input输入有三行,每行包括两个整数x和y ( - 1000 ≤ x ...
- Sql Server设置主键和外键
设置主键 https://jingyan.baidu.com/article/9158e0003349a7a2541228fd.html 设置外键 https://jingyan.baidu.com/ ...
- Git秘钥生成以及Gitlab配置
安装Git:详见http://www.cnblogs.com/xiuxingzhe/p/9300905.html 开通gitlab(开通需要咨询所在公司的gitlab管理员)账号后,本地Git仓库和g ...
- Spring 使用介绍(六)—— AOP(二)
一.切入点语法 1)通配符 AOP支持的通配符: *:匹配任何数量字符 ..:匹配任何数量字符的重复,在类型模式中匹配任何数量子包,在方法参数模式中匹配任何数量参数 +:匹配指定类型的子类型,仅能作为 ...
- python的图形模块PIL小记
前言: 跟我一块住的室友是个搞通信,每天下班后基本必须做的事情是,第一P图,将那些不合格的图片上的数据,p成合格的.第二就是将做好的P图以及产生的日志文件按照固定的名字重新命名.我为了他能够早点睡觉, ...
- python之旅六【第七篇】面向对象
面向对象三大特性 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强... 面向对象编程 ...
- 欧拉筛法模板&&P3383 【模板】线性筛素数
我们先来看欧拉筛法 •为什么叫欧拉筛呢?这可能是跟欧拉有关 •但是为什么叫线性筛呢?因为它的复杂度是线性的,也就是O(n),我们直接来看代码 #include<cstdio> #inc ...
- appium 原理解析(转载雷子老师博客)
appium 原理解析 原博客地址:https://www.cnblogs.com/leiziv5/p/6427609.html Appium是 c/s模式的appium是基于 webdriver 协 ...
- MySql的CURRENT_TIMESTAMP
在创建时间字段的时候 DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候,该字段默认值为当前时间 ON UPDATE CURRENT_TIMESTAMP表示每次更新这条数据的时候, ...
- python学习日记(生成器函数进阶)
迭代器和生成器的概念 迭代器 对于list.string.tuple.dict等这些容器对象,使用for循环遍历是很方便的.在后台for语句对容器对象调用iter()函数.iter()是python内 ...