位置: 编程技术 - 正文

MSSQL 基本语法及实例操作语句(mysql sqlserver语法)

编辑:rootadmin
MS SQL基本语法及实例操作 一:建表并初始化 ============================ create database mf --创建数据库 use mf --使用数据库 create table dept --创建“部门”表 ( www.gimoo.net deptno int primary key, --部门编号(主键) dname nvarchar(), --部门名称 loc nvarchar() --部门所在的地点 ) ----- create table emp --创建“员工”表 ( empno int primary key, --员工编号(主键) ename nvarchar(), --员工的姓名 job nvarchar(), --员工的工作类型 mgr int, --员工的上级 hiredate datetime, --员工的入职时间(受聘时间) sal numeric(,2), --员工的每月工资 comm numeric(,2), --员工的年终奖金 deptno int foreign key references dept(deptno) --创建一个外键指向部门表(描述该员工属于哪个部门) ) -------- insert into dept values (,'accounting','new york') insert into dept values (,'reasarch','dallas') insert into dept values (,'sales','chicago') insert into dept values (,'operations','boston') ------- insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (,'michael','clerk',,'-1-',.,,) insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (,'allen','salesman',,'-1-',.,.,) insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (,'ward','salesman',,'-1-3',.,.,) insert into emp (empno,ename,job,mgr,hiredate,comm,deptno) values (,'jones','manager',,'-1-1',.,) insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (,'martin','salesman',,'--',.,.,) insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (,'blake','manager',,'--',.,) insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (,'sccot','analyst',,'-1-',.,) insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (,'miller','opreator',,'--',.,) www.gimoo.net insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (,'adamc','opreator',,'--',.0,) insert into emp (empno,ename,job,hiredate,sal,deptno) values (,'king','president','-1-1',.0,) insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values (,'lxliog','opreator',,'--',.0,) ----- select * from dept select * from emp --主键:唯一,非空 --外键:只能指向主键,与指向的主键数据类型必须一致 二:练习 ============================ 1,查询emp表所有列 select * from emp --刘君正 2,查询指定列(例如:姓名,工资两列) select ename,sal from emp --郑朝阳 3,取消重复行(从emp表中查询部门号) select distinct(deptno) from emp --徐绍峰,郝艳芳,刘辉,马东勤 4,从emp表中查询名字为lxliog员工的薪水,工作,所作部门 select sal,job,deptno from emp where 'lxliog'=ename --侯耀文,谭雪玲,黎小龙 5,统计总共有都少个部门(两种方式:从emp或从dept) select count(deptno) from dept --诺布才仁 select count(distinct(deptno)) as 部门总数 from emp --诺布才仁 use mf select * from dept; select * from emp; --6,显示每个雇员的年工资 select isnull(sal,0)*+isnull(comm,0) as 年薪 from emp --扎西多杰 7,如何显示工资高于的员工信息 select * from emp where sal> --邓文文 www.gimoo.net 8,如何查找.1.1后入职的员工 select * from emp where hiredate>'-1-1' 9,如何显示工资在到之间的员工情况 select * from emp where sal between and select * from emp where sal>= and sal<= ,如何显示首字母为S的员工姓名和工资(模糊查询) select ename ,sal from emp where ename like 's%' ,如何显示第三个字母为‘O'的所有员工的姓名和工资(模糊查询) select ename 姓名,sal as 月薪 from emp where ename like '__R%'; ,如何显示empno为,,...的员工情况(在where条件中使用in) select * from emp where empno in(,,,,,); ,如何显示没有上级的雇员的情况(使用is null 的操作符) select * from emp where mgr is null; ,查询工资高于或是岗位为manager的雇员, 同时还要满足他们的姓名首字母为j(使用逻辑操作符) select * from emp where (sal> or job='manager') and ename like 'j%'; ,如何按工资的从低到高的顺序显示雇员的信息 (使用order by字句asc, desc) select * from emp order by sal desc; ,如何按入职的先后顺序显示雇员的信息(使用order by字句asc, desc) select * from emp order by hiredate desc; ,按部门号升序而雇员的工资降序排列显示雇员信息 (使用order by字句asc,desc) select * from emp order by deptno asc,sal desc; ,统计每个人的年薪,并按从低到高的顺序排序(使用列的别名排序) select isnull(sal,0)*+isnull(comm,0) 年薪 from emp order by 年薪; ,如何显示员工中最高工资和最低工资 select max(sal) as "max(sal)",min(sal) from emp; ,如何显示最低工资的员工信息 select * from emp where sal = (select min(sal) from emp); www.gimoo.net ,显示所有员工的平均工资和工资总和 select avg(sal) as "avg(sal)" , sum(sal) as "sum(sal)" from emp; ,把高于平均工资的雇员的名字和他的工资显示出来 select ename,sal from emp where sal>(select avg(sal) from emp); ,计算共有多少名员工 select count(ename) from emp; ,如何显示每个部门的平均工资和最高工资 select avg(sal) as "avg",max(sal) as "max",deptno from emp group by deptno ,如何显示每个部门的高于总平均工资的平均工资和最高工资 select avg(sal) as "avg",max(sal) as "max",deptno from emp where sal>(select avg(sal) from emp) group by deptno 显示每个部门的每种岗位的平均工资和最低工资 select avg(sal),min(sal),deptno,job from emp group by deptno,job order by deptno ,显示平均工资低于的部门号和它的平均工资 (having往往和group by结合使用,可以对分组查询结果进行筛选) select avg(sal),deptno from emp group by deptno having avg(sal)< ,使用企业管理器来操作数据库的分离与附加 见操作步骤 ,使用企业管理器来操作数据库的备份与恢复操作 见操作步骤 ,使用查询分析器器来操作数据库的备份与恢复操作 (1)备份数据库 backup database mf to disk='f:/lxliog.bak'; (2)删除数据库 drop database mf; (3)恢复数据库 restore database mf from disk='f:/lxliog.bak'; 复杂查询(多表查询) ,显示sales部门的位置和其员工的姓名 select d.loc,e.ename from emp e,dept d where d.dname='sales' and d.deptno=e.deptno ,显示雇员名字,雇员工资及所在部门的名字(当字段有歧义的时候要用别名) select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno www.gimoo.net ,显示部门号为的部门名称,及该部门的员工名字和工资 select d.dname, e.ename, e.sal from emp e,dept d where d.deptno= and d.deptno=e.deptno ,显示雇员名字,雇员工资及所在部门的名字,并按部门名称排序 select e.ename, e.sal, d.dname from emp e,dept d where e.deptno=d.deptno order by d.dname 自连接:在同一张表的连接查询 ,显示某个员工的上级领导的姓名(比如:smith) (1)select mgr from emp where ename='adamc' (2)select ename from emp where empno=(select mgr from emp where ename='adamc') ,显示公司每个员工和他上级的名字 select worker.ename, boss.ename from emp worker, emp boss where worker.mgr=boss.empno 子查询:嵌入在其它sql语句中的select语句,也叫嵌套查询。 单行子查询:只返回一行数据的子查询语句。 ,显示与jones同一部门的所有员工 (1)select deptno from emp where ename='jones' (2)select * from emp where deptno=(select deptno from emp where ename='jones') 多行子查询:返回多行数据的子查询。 ,查询和部门号为的工作相同的雇员的名字、岗位、工资、部门号。(注意要使用in,不能用=) (1)select distinct job from emp where deptno= (2)select ename,job,sal,deptno from emp where job in (select distinct job from emp where deptno=); ,在上面查询结果的基础上排除部门的员工 select ename,job,sal,deptno from emp where job in (select distinct job from emp where deptno=) and deptno not in (); 或select ename,job,sal,deptno from emp where job in (select distinct job from emp where deptno=) and deptno <>; 在from字句中使用子查询 ,显示各个部门高于本部门平均工资的员工的信息 (1)先查出各个部门的平均工资 www.gimoo.net select avg(sal),deptno from emp group by deptno (2)把上面的表当成一个临时表来对待 select e.ename,e.sal,tem.myavg,e.deptno from emp e,(select avg(sal) myavg,deptno from emp group by deptno) tem where e.deptno=tem.deptno and e.sal>tem.myavg 注意:(1)当在from字句中使用子查询时,该子查询会被当做一个临时表来对待, (2)当在from字句中使用子查询时,必须给子查询指定一个别名 分页查询:按雇员的hiredate属性升序取出第5条到第条记录 ,显示第5条到第条记录 (1)显示第1到第4条记录 select top 4 empno from emp order by hiredate (2)显示后6条记录(第5条到第条记录) select top 6 * from emp where empno not in(select top 4 empno from emp order by hiredate) order by hiredate; ,显示第个到第个入职的人的信息(写法同上) ,显示第5到9的人的信息,按薪水的降序排列(写法类似) select top 5 * from emp where empno not in (select top 4 empno from emp order by sal desc) order by sal desc; ,同一张表中的数据复制 (1)创建一张临时表:identity(1,1)表示该testId字段自增,从1开始每次+1 create table test( testId int primary key identity(1,1), testName varchar(), testPass varchar() ) (2)插入一条数据 insert into test(testName, testPass) values('zhangsan',''); (3)复制数据 insert into test(testName, testPass) (select testName,testPass from test); ,查询testId为第-的数据,看看性能。 select top * from test where testId not in (select top testId from test order by testId) order by testId 用查询结果创建一张新表(一种快捷的建表方法) ,语法:select *(这里可以选择字段) into 另一张表面 from 表 select testName,testPass into mytest from test where testId<8 表mytest在上述语句中已经创建好了,并且初始化好了数据 并且把testId设置为主键:ALTER TABLE test ADD primary key(testId) www.gimoo.net ,删除一张表中的重复数据 (1)create table cat( catId int, catName varchar() ) (2)insert into cat values(1,'aa'); //重复执行几次 insert into cat values(2,'bb'); //重复执行几次 (3)select distinct * into #temp from cat;//把cat的记录distinct后的结果,插入到临时表#temp中 delete from cat;//把cat表的记录清空 insert into cat select * from #temp;//把#temp表的数据(没有重复的数据)插入到cat表中 drop table #temp;//删除表#temp3 左外连接和右外连接 左外连接:左边表的查询数据全部显示,右边的表中如果没有匹配的数据则用null填充 右外连接:右边表的查询数据全部显示,左边的表中如果没有匹配的数据则用null填充 ,显示emp表中所有雇员的及其上级的名字(看看区别) (1)左外连接:select e.ename 雇员名字,b.ename 上级名字 from emp e left join emp b on e.mgr=b.empno; (2)右外连接:select e.ename 雇员名字,b.ename 上级名字 from emp e right join emp b on e.mgr=b.empno; 常见约束: (1)not null, 非空 (2)unique, 唯一,允许出现一个null (3)primary key, 主键,唯一,非空 (4)foreign key, 外键,定义主表和从表的关联关系 (5)check,检查,强制数据必须满足定义的条件,例如:sal int check(sal>= and sal<=) (6)default, 默认值,用于数据的完整性,例如:birthday datetime default getdate(), ,复合主键只能用表级定义 例如:create table cat( catId int, catName varchar(), catAge int, primary key(catId, catName) ) www.gimoo.net ,商品售货系统表设计案例:现有一个商店数据库,记录客户及其购物情况,由下面三个表组成:商品(goods),客户(customer),购买(purchase) 商品goods(商品号goodsId, 商品名称goodsName, 单价unitPrice, 商品类别category, 供应商provider); 客户customer(客户号customerId, 姓名name, 住址address, 电邮email, 性别sex, 身份证cardId); 购买purchase(客户号customerId, 商品号 goodsId, 购买数量nums); (1)建表,在定义中要求申明: ü 每个表的主键和外键; ü 客户的姓名不能为空; ü 单价必须大于0,购买数量必须在1到之间 ü 电邮不能够重复 ü 客户的性别必须是:男或女,默认是男 ü 商品的类别是:食物,日用品 ----goods表 Create table goods( goodsid nvarchar() primary key, goodsnamd nvarchar() not null, unitPrice numeric(,2) check (unitPrice>0) category nvarchar(3) check (category in (‘食物','日用品')), provider nvarchar() ) ----customer Create table customer( Customerid nvarchar() primary key, Cusname nvarchar() not null, Address nvarchar(), Email nvarchar() unique, Sex nchar(1) check(sex in(‘男','女')) default ‘男', Cardid nvarchar() ) www.gimoo.net ----purchase Create table purchase( Customerid nvarchar() foreign key references customer(Customerid), goodsid nvarchar() foreign key references goods(goodsid), nums int check(nums>0 and nums<), primary key(customerid, goodsid) ) 作者 qq

推荐整理分享MSSQL 基本语法及实例操作语句(mysql sqlserver语法),希望有所帮助,仅作参考,欢迎阅读内容。

MSSQL 基本语法及实例操作语句(mysql sqlserver语法)

文章相关热门搜索词:mssql与mysql语法区别,mssql与mysql语法区别,mssqlserve,mysql sqlserver语法,mssql go,mssql基本语句大全,msql常用命令,mssql使用教程,内容如对您有帮助,希望把文章链接给更多的朋友!

T-SQL问题解决集锦 数据加解密全集 以下代码已经在SQLServer上的示例数据库测试通过问题一:如何为数据进行加密与解密,避免使用者窃取机密数据?对于一些敏感数据,如密码、卡号

SQL Server 日期相关资料详细介绍 一、日期类型:对于SQLServer来说(因为甚至已经稍微有被淘汰的迹象,所以在此不作过多说明,加上自己工作使用的是R2。所以不保证以前

设置SQLServer数据库中某些表为只读的多种方法分享 一般情况下会有几种情况需要你把数据库设为只读:1.Insert,Update,Delete触发器2.Check约束和Delete触发器3.设置数据库为只读4.把表放到只读文件组中5.拒绝

标签: mysql sqlserver语法

本文链接地址:https://www.jiuchutong.com/biancheng/348460.html 转载请保留说明!

上一篇:MSSQL安全设置的具体步骤和方法小结(sql server安全设置)

下一篇:T-SQL问题解决集锦 数据加解密全集(sql基础问题)

  • 收到退税款怎么入账
  • 本期应补退税额和期末未缴税额
  • 借款合同印花税税率2023
  • t3怎么查资产负债表
  • 固定资产盘盈影响所有者权益吗
  • 其他综合收益影响递延所得税负债吗
  • 以物抵债需要缴纳之前欠的税吗?
  • 编制初始计量有什么要求
  • 个人独资企业租赁收入如何纳税
  • 支付劳务派遣管理费现金流量表里放在哪里
  • 可供出售金融资产是指什么
  • 设置会计科目的步骤
  • 个税手续费返还会计分录
  • 个体户个人所得税税率表2023计算
  • 增值税发票不小心撕坏了怎么办
  • 公车私用情形有哪些
  • 土地出售涉及哪些税
  • 资产改变用途的法律规定
  • 固定资产小于500万一次性扣除政策
  • 融资租赁抵押车辆逾期收车
  • 进项为13%,销售时是否可按9%
  • 事业单位收到投资的账务处理
  • 借款的印花税入哪个账户
  • 回盘的模板
  • 持有至到期投资是什么意思
  • 广告公司结转收入应交税费分录?
  • 采购不签合同
  • 12306打不开怎么回事苹果手机
  • 多计提的房产税怎么做分录
  • 20个健康生活常识
  • 公司财务账目不符怎么办
  • win10打开第二个桌面快捷键
  • vue怎么使用本地存储比较好
  • 银行存款收款凭证属于什么凭证
  • sk是什么软件的缩写
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • 视同销售计税价格如何确定
  • php解压压缩包
  • 公司向股东借款多久必须归还
  • 什么是累计预扣预缴应纳税所得额
  • vue $route
  • javascript创建对象及应用
  • php截取字符串几种方式
  • 公司期货套期保值会计处理方法
  • 真发票假业务会坐牢吗
  • java 类型推导
  • phpcms api
  • 非独立核算的分公司需要独立建账吗
  • SqlServer 2005 T-SQL Query 学习笔记(4)
  • sqlsever注释符号
  • 劳务公司账务处理实操
  • 差额征税如何做分录
  • 暂估入库的商品作暂估冲红会计分录
  • 结转生产成本的数据从哪来的
  • 商贸公司用购进产品吗
  • 差额征税问题
  • 向投资者分配利润或股利为什么减少所有者权益?
  • 专利的费用计入成本吗
  • 销项负数发票怎么冲减成本
  • mysql5.7最新版
  • 用sql语句实现分页效果
  • xp系统无法重装系统
  • sysscjh.exe是什么文件
  • csrss.exe是什么进程 2个
  • eve是什么文件
  • 戴尔dell optiplex 3050MT 安装固态硬盘
  • linux图形界面与命令行
  • win8开机自启动在哪里设置
  • win7旗舰版64位系统开机时软件设置自动启动详细图文教程
  • com.android.phone无响应
  • linux shell命令大全
  • jquery动态添加的元素怎么添加事件
  • javascript如何定义函数
  • jquery如何实现轮播图
  • 重庆市国家税务局电子税务局官网
  • 电子税务局官网湖南省
  • 销售免税货物可以抵扣进项税吗
  • 禅城有什么小孩好玩的地方
  • 税务局窗口人员工作内容
  • 非关税壁垒英语翻译
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设