




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库操作归纳SqlServer 数据库操作语句 (步骤 ):1. 新建数据库: create database 数据库名称 ; 例: create database LianXi;use 数据库名称 ; 例: use LianXi;2. 新建表: create table 表名称 ( 属性名 /字段名属性 /字段类型属性名 /字段名 属性名 /字段名属性 /字段类型 属性 /字段类型identity(1,1) primary key not null, not null,);例: create table yonghu(primary key not null,uid int identit
2、y(1,1)uname char(10) not null, upass char(10) not null, gender char(2),shouru int,birthday datetime, note text);3. 查询数据 基本查询:- 简单查询 select * from 表名称; 例: select * from yonghu; SELECT DISTINCT 表中字段名 AS 字段名别名 , YEAR(GETDATE()-YEAR( 字 段名如生日 ) AS 如年龄 FROM 表名例:select distinct uname as 姓名 , year(getdate()
3、-year(birthday) as 年龄 from yonghu; 如下图所示: SELECT COUNT(*) AS 总数 FROM 表名 获取表中行的总数例: select count(*) as总数 from yonghu;SELECT AVG字( 段名 ) AS 平均值 FROM 表名 获取平均值例: select avg(shouru) as平均收入 from yonghu;- 带条件查询 条件表达式:可以是单表的条件表达式,又可以是多表之间的条件表达式。比较符: =(等于)、!= (不等于)、(大于) 、(小于 ) 、=(大于等于 ) 、=(小于等于 )、 ( 不等于 ) 例:在
4、用户表中,列出收入在2000 元以上的员工记录SELECT * FROM yonghu WHERE shouru 2000; 例:在用户表中,查出男用户的平均收入SELECT AVG(shouru) AS 平均收入 FROM yonghu WHERE gender=男 ; 例:某表如 employee 表,查询出市场部和销售部的员工名单SELECT d.employee_name, e.employee_name FROM employee.e INNER JOIN department d ON e.department_id = d.department_id WHERE d.depart
5、ment_name IN ( 市场部 , 销售部 )-或-SELECT d.employee_name, e.employee_name FROM employee.e INNER JOIN department d ONe .department_id = d.department_id WHERE(d .department_name = 市场部 ) OR (d.department_name = 销售部 ) 对 yonghu 表,查出月工资在 2000-3000 元之间的员工名单SELECT * FROM yonghu WHERE shouru BETWEEN 2000 AND 3000
6、-或-SELECT * FROM yonghu WHERE shouru = 2000 AND shouru = 3000 对 yonghu 表,查出所有姓“张”的员工名单SELECT * FROM yonghu WHERE uname LIKE 张% -或-SELECT * FROM yonghu WHERE LEFT(uname,1) = 张- 查询结果处理 排序输出( ORDER BY ) ASC :(默认 ) 按升序排列; DESC :按降序排列SELECT uid,uname,upass, shouru FROM yonghu ORDER BY gender , shouru DES
7、C 重定向输出( INTO)INTO子句用于把查询结果放到一个新建的表中 例:某表如,对部门表 department 和员工表 employee ,查询出市场部所有员工的信 息,并将结果存入 newtable 中。SELECT employee.* INTO newtable FROM employee INNER JOIN department ON employee .department_id = department.department_id WHERE department.department_name = 市场部 输出合并( UNION)合并查询就是使用 UNION操作符将来自
8、不同查询的数据组合起来,形成一个具有综合信息的查询结果, UNION操作会自动将重复的数据剔除。必须注意的是,参加合 并查询的各子查询使用的表结构应该相同, 即各子查询中的数据数目和对应的数据 类型都必须相同。例:对某表:如 employee 表,列出部门编号为 D001 或 D002的所有员工姓名 SELECT employee_name,department_id FROM employee WHERE department_id = D001 UNION SELECT employee_name,department_id FROM employee WHEREdepartment_id
9、 = D002如下图示 分组统计( GROUP B)Y 与筛选( HAVING) 例:对某表,如对 employee 表,分别统计男女员工人数SELECT sex,COUNT(sex) as 人数 FROM employee GROUP BY sex 如下图所示例:某表,如对 employee 表,分别统计个部门男女员工的人数SELECT department_id,sex,COUNT(*) AS 人 数 FROM employee GROUPB Y department_id,sex 如下图所示例:某表,如对 employee 表,查出部门平均工资大于 2000 元的部门编号 SELECT
10、department_id,AVG(wages) AS 平均工资 FROM employee GROUP BY department_id HAVING AVG(wages)=2000 使用 COMPUTE和 COMPUTE B子Y 句汇总:使用 COMPUT子E 句可以在查询的结果集中产生成汇总行的同时,还生成明细行, 可以计算子组的汇总值。使用 COMPUTE B子Y 句可以对结果集数据进行分组统计,即计算 分组的汇总值。例:某表, 如对 employee 表中部门编号卧位 D001的员工工资, 按照其部门编号生 成汇总行和明细行SELECT department _id ,wages F
11、ROM employee WHEREd epartment_id = D001 ORDER BY department_id COMPUTE sum(wages) 如下图所示例:某表,如对 employee 表中的部门编号为 D001 或 D002的员工工资,按照其部门编号生成分组汇总行和明细行SELECT department_id,wages FROM employee WHERE department_id = D001 OR department_id = D002 ORDER BY department_id COMPUTE sum(wages) BY department_id如下
12、图所示 嵌套查询:(由里向外处理。子查询的 SELECT语句中不能使用 ORDERB Y 子句, ORDERB Y 子句只能对最终查询结果排序) 单值嵌套查询 子查询的返回结果是一个值的嵌套查询例:某表,如对 Sales 数据库,查询出市场部的所有员工的编号SELECT employee_id FROM employee WHERE department_id = (SELECT department_id FROM department WHERE department_name= 市场部 ) 多值嵌套查询 子查询的返回结果是一列值的嵌套查询a. ANY运算符用法: 例:某表,如对 Sale
13、s 数据库, 列出 D001号部门中工资比 D002 号部门的员工最低工资高的员工和工资SELECT employee_id,wages FROM employee WHERE department_id = D001 AND wagesANY (SELECT wages FROM employee WHERE department_id = D002 )b. All 运算符的用法:例:某表,如对 Sales 数据库,查询出部门编号为 D001 的 员工,这些员工的工资比部门为 D002 的员工的最高工资还要高的员工的编号和工 资。SELECT employee_id,wages FROM e
14、mployee WHERE department_id = D001 AND wagesAll ( SELECT wages FROM employee WHERE department_id = D002)c. IN 运算符的用法:例:某表,如对 Sales 数据库,列出部门为市场部或销售部 的所有员工的编号SELECT employee_id FROM employee WHERE department_id IN (SELECT department_id FROM department WHEREd epartment_name = 市 场 部 OR department_name=
15、销售部 ) 连接查询:(通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点, 也是它区别于其它类型数据库管理系统的一个标志。 )例:某表,如对 Sales 数据库输出所有员工的销售单,要求给出员工编号、姓名、商品 编号、商品名和销售数量。SELECTemployee.employee_id,employee.employee_name,goods.goods_id,goods.good s_name,sell_order.order_num FROM employee,sell_order,goods WHERE employee.employee_id = sell_order
16、.employee_id and sell_order.goods_id =goods.goods_id如下图所示 内连接a. 等值连接:在连接条件中使用等号(=)运算符比较被连接列的列值,按对应列的共同值将一个表中的记录与另一个表中的记录相连接,包括其中的重复 列。例:某表,如 Sales 数据库中部门表 department 和员工表 employee 的等值连 接。SELECT * FROM department INNER JOIN employee ON employee.department_id = department.department_idb. 不等值连接:在连接条件中用
17、除等于(=)运算符以外的其他比较运算符比较被链接的列的列值。这些运算符包括 、=、=、! 、 !和。 例:某表,如 Sales 数据库,列出销售 G00001 产品的员工中,销售数量大于 编号为 E001 的员工销售该类产品销售数量的那些员工的编号和销售数量。 SELECT a.employee_id,a.order_num FROMsell_order a INNER JOIN sell_order b ON a.order_num b.order_num AND a.goods_id = b.goods_id WHERE(b.goods_id = G00001)AND (b.employe
18、e_id = E001)c. 自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,它使用选择列表方式来指出查询结果集合中所包括的列,并删除连接表中的重复列。 例:某表,如 Sales 数据库中部门表 department 和员工表 employee 的自然连 接。SELECTa .department_name,b.*FROM department a INNER JOIN employee b ON b.department_id = a.department_id 外连接:在内连接查询时,返回查询结果集合中的仅是符合查询条件(WHERE搜索条件或 HAVING条件) 和连接条件的
19、行。 而采用外连接时, 它返回到查询结果集合中 的不仅包含符合连接条件的行, 而且还包括左表 (左外连接时) 、右表(右外连接时) 或两个连接表(全外连接)中的所有数据行。a. 使用作外连接:左外连接通过左向外连接引用左表的所有行。 例:某表,如员工表 employee 做外连接销售表 sell_order. SELECTa.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_dat e FROM employee a LEFT OUTER JOIN sell_order b ON a.employee_id = b.employ
20、ee_id 如图所示b. 使用右外连接:右外连接通过右向外连接引用右表的所有行 例:某表,如员工表 employee 右外连接销售表 sell_order 。为了说明方便,先 在 sell_order 表中插入一条销售信息。INSERT INTOsell_order(order_id1,goods_id,employee_id,customer_id,transporter_id,order_num,discount,order_date,send_date,arrival_date,cost)VALUES( S0006,G0005,C0006,T0002,21,0.5 ,GETDATE(),
21、GETDATE(),1 00)SELECT a.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_date,b.ord er_id1 FROM employee a RIGHT OUTER JOIN sell_order b ON a.employee_id = b.employee_idb. 使用全外连接全外连接返回两个表的所有行。不管两个表的行是否满足连接条件,均返回查询结果集。对不满足连接条件的记录,另一个表相对应字段用NULL代替。SELECT a.employee_id,a.employee_name,b.goods_
22、id,b.order_num,b.send_date,b.o rder_id1 FROM employee a FULL OUTER JOIN sell_order b ON a.employee_id = b.employee_id如下图所示 交叉连接:交叉连接不带 WHERE子句,它返回被连接的两个表所有数据行的笛卡尔 积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第 二个表中符合查询条件的数据行数。例 : SELECT a.department_id,a.department_name,b.employee_id,b.employee_name FROM depa
23、rtment a CROSS JOIN employee b如下图所示4插入数据INSERT INTO 表名 ( 属性 1,属性 2,属性 3, ) VALUES ( 属性值 1, 属性值 2,属性值 3, ) 。注: into 可省略。例: INSERT INTO yonghu (uname,upass) VALUES ( 土豆 ,321);5. 删除数据DELETE FROM 表名 WHERE条 件 例: DELETE FROM yonghu WHERE uid=1; 例:在 DELETE中使用联接或子查询某表操作,如下:- 基于 Transact-SQL, 使用表的联接DELETE Se
24、ll_Order FROM Sell_Order SO INNER JOIN customer2 C ON SO.customer_id = C.customer_id WHERE C.address LIKE东方市 % 注: SO,C均为别名- 等同于下列命令DELETE Sell_Order FROM Sell_Order SO,customer2 C WHERE SO.customer_id = C.customer_id AND C.address LIKE东方市 %- 基于 SQL-92 标准,须使用子查询DELETE FROM Sell_Order WHEREc ustomer_id IN (SELECT customer_id FROM customer2 WHERE address LIKE 东方市 % )6. 更新数据UPDATE表 名 SET 属性名 =属性值 , 属
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涤纶纤维在防霉地毯材料中的应用考核试卷
- 塑料鞋制造过程废料处理与回收利用考核试卷
- 生物制药过程中的质量控制实验室建设与管理考核试卷
- 电视广播信号加密与解密技术考核试卷
- 玻璃屋顶搭建考核试卷
- 电视芯片原理与系统集成考核试卷
- 皮革护理技能竞赛策划与实施考核试卷
- 阳泉职业技术学院《单片机技术与应用》2023-2024学年第二学期期末试卷
- 四川托普信息技术职业学院《建设用地管理》2023-2024学年第二学期期末试卷
- 徐州市九里区2024-2025学年四下数学期末复习检测试题含解析
- 中国银联招聘笔试题库2024
- 2024安徽制造业发展报告
- 四年级下册道德与法治(教学设计+素材)第8课《这些东西哪里来》(第二课时)
- 高职旅游专业《旅行社经营管理》说课稿
- DB65-T 4785-2024 耕地质量等级调查评价技术规范
- 财务机器人开发与应用实战 课件 任务5 E-mail人机交互自动化-2
- 2024年个人廉洁自律述职报告(三篇)
- 【华为】通信行业:华为下一代铁路移动通信系统白皮书2023
- 小学家长会-做好孩子手机管理主题班会课件
- Python 程序设计智慧树知到期末考试答案章节答案2024年四川师范大学
- 山东省技能大赛青岛选拔赛-世赛选拔项目55样题(3D数字游戏技术)
评论
0/150
提交评论