当前位置: 首页 > news >正文

SQL:数据库查询语言的核心技术

SQL:数据库查询语言的核心技术

一、SQL 基础概念
  1. 定义与发展历程

    • 结构化查询语言(Structured Query Language)
    • 从 1970 年代 IBM 研发到 ANSI 标准化

核心功能分类

  • 数据定义语言(DDL):CREATE, ALTER, DROP
  • 数据操作语言(DML):INSERT, UPDATE, DELETE
  • 数据查询语言(DQL):SELECT
  • 数据控制语言(DCL):GRANT, REVOKE

命令

INSERT INTO [dbo].[葛大侠公司]
([姓名]
,[性别]
,[籍贯]
,[出生日期]
,[身份证号码]
,[工资]
,[电话号码]
,[职位]
,[备注])
VALUES
(<姓名, nvarchar(50),>
,<性别, nvarchar(50),>
,<籍贯, nvarchar(50),>
,<出生日期, nvarchar(50),>
,<身份证号码, varchar(50),>
,<工资, money,>
,<电话号码, nvarchar(11),>
,<职位, nvarchar(50),>
,<备注, nvarchar(2000),>)
GO
新建表

USE [sjh]
GO
###############################################################################
SELECT [编号]
,[姓名]
,[性别]
,[籍贯]
,[出生日期]
,[身份证号码]
,[工资]
,[电话号码]
,[职位]
,[备注]
FROM [dbo].[青大侠公司]

GO
查询
###############################################################################
UPDATE [dbo].[青大侠公司]
SET [姓名] = <姓名, nvarchar(50),>
,[性别] = <性别, nvarchar(50),>
,[籍贯] = <籍贯, nvarchar(50),>
,[出生日期] = <出生日期, nvarchar(50),>
,[身份证号码] = <身份证号码, varchar(50),>
,[工资] = <工资, money,>
,[电话号码] = <电话号码, nvarchar(11),>
,[职位] = <职位, nvarchar(50),>
,[备注] = <备注, nvarchar(2000),>
WHERE <搜索条件,,>
GO
修改
###############################################################################

SELECT *  
FROM  [dbo].[青大侠公司]
where   姓名 like '李%'  AND   [工资]   >= 10000
查询公司里所有姓*的并且工资高于10000的人员的姓名
###############################################################################

UPDATE [dbo].[青大侠公司]
SET [工资]= 6000
WHERE [性别]= '女'
GO
将所有女员工的工资调整到6000

###############################################################################
UPDATE [dbo].[青大侠公司]
SET [职位]= 'java工程师'
WHERE [姓名]= '张泽宇'
GO
将张泽宇的职位调整为java工程师

###############################################################################
SELECT [工资],[姓名]
FROM [dbo].[青大侠公司]
WHERE [身份证号码] LIKE '42%'
查询身份证号前两位为42的员工的姓名和工资

SELECT*
FROM [dbo].[青大侠公司]

GO
查询所有列
###############################################################################
SELECT [姓名],[职位],[工资]
FROM [dbo].[青大侠公司]

GO
查询特定列

###############################################################################

SELECT [姓名]
FROM [dbo].[青大侠公司]
WHERE [职位]= 'java工程师'
GO
条件查询
###############################################################################
SELECT*
FROM [dbo].[青大侠公司]
WHERE [工资]
BETWEEN 8000 AND 100000

GO
查询表中工资 8000到 100000
###############################################################################

SELECT*
FROM [dbo].[青大侠公司]
WHERE [工资]<10000   OR  [工资]>15000


查询表中工资低于10000或高于15000
###############################################################################

SELECT*
FROM [dbo].[青大侠公司]
WHERE [工资] IN (6000,10000,40000)

GO
查询表中工资等于 6000 10000 40000的
###############################################################################
SELECT*
FROM [dbo].[青大侠公司]
WHERE [身份证号码]LIKE '42%'
GO
查询身份证号42开头的
###############################################################################
SELECT*
FROM [dbo].[青大侠公司]
WHERE [姓名] LIKE '张%'AND [职位]= 'java工程师'
GO
查询表中姓张的java工程师
###############################################################################
SELECT*
FROM [dbo].[青大侠公司]
WHERE [备注] is not NULL
GO
查询表中填有备注的列

###############################################################################
SELECT TOP 5 *
FROM [dbo].[青大侠公司]
GO
查询前五行查询数据
###############################################################################
SELECT [姓名] AS nama,[身份证号码] AS idcard 
FROM [dbo].[青大侠公司]
GO
改变查询结果名称
###############################################################################
SELECT*
FROM [dbo].[青大侠公司]
ORDER BY [工资] DESC

  GO

SELECT*
FROM [dbo].[青大侠公司]
ORDER BY [工资] ASC

  GO

查询结果排序
注:ASC表示降序  DESC表示升序


###############################################################################
SELECT DISTINCT [职位]
FROM [dbo].[青大侠公司]
GO
查询结果去重
###############################################################################
SELECT [姓名] AS name,[身份证号码],[职位],[工资]
FROM [dbo].[青大侠公司]
WHERE [身份证号码] LIKE '__0%'  AND 职位 != '总经理'
ORDER BY 工资 DESC
GO

综合查询
###############################################################################
SELECT[姓名],[身份证号码],[职位] INTO [副公司]
FROM [dbo].[青大侠公司]
使用SELECT生成新数据
###############################################################################
INSERT INTO 极速 (姓名,职位,出生日期)
SELECT [姓名],[职位],[出生日期]
FROM [dbo].[葛大侠公司]  
WHERE [工资]>=15000
GO
INSERT使用SEELECT
###############################################################################
INSERT INTO TOC (姓名,职位,出生日期)
SELECT '大傻','经理','1988/11/11' UNION
SELECT '2傻','经理','1988/11/11'  UNION
SELECT 姓名,职位,出生日期
FROM [dbo].[青大侠公司]
GO
使用UNION关键字
###############################################################################
SELECT'运维'+[姓名]+'的基本工资是:'+ CAST(工资 as varchar (10))+'元'
FROM [dbo].[青大侠公司]
WHERE [职位]='运维'
GO
查询表中运维的姓名和工资和时间
###############################################################################
SELECT DATEADD (DD,10,GETDATE()) 
查询10天之后的日期和时间
###############################################################################
SELECT [姓名],DATEDIFF (YYYY,出生日期, GETDATE()) AS 年龄 
FROM [dbo].[青大侠公司]
查询表中所有人的年龄和姓名
YYYY-MM-DD 年-月-日
HH-MM-SS 时-分-秒
###############################################################################
SELECT [姓名],DATENAME (YYYY,出生日期) AS 出生年份
FROM [dbo].[青大侠公司]
WHERE 出生日期 BETWEEN    '1990-01-01' AND '1999-12-31' 
查看表中90后员工姓名和出生年份
###############################################################################
SELECT SUM (工资) AS 总工资 
FROM [dbo].[青大侠公司]
查询表里总工资
###############################################################################
SELECT MAX (工资) AS 最高工资,MIN (工资) AS 最低工资
FROM [dbo].[青大侠公司]
查询表中最低工资和最低的工资
###############################################################################
SELECT COUNT (*) AS 总行数
FROM [dbo].[青大侠公司]
查询表中总行数
###############################################################################
SELECT COUNT (出生日期) AS'90后人数'
FROM [dbo].[青大侠公司]
WHERE [出生日期]>='1990-01-01'
查询表中90后员工人数
###############################################################################
SELECT [职位], AVG(工资) AS 职务平均工资 
FROM [dbo].[青大侠公司]
GROUP BY [职位]
查询表中每个职位的基本工资
###############################################################################
SELECT [职位], AVG(工资) AS 职务平均工资 
FROM [dbo].[青大侠公司]
GROUP BY [职位]
HAVING AVG(工资)<10000
查询表中职务平均小于10000的
###############################################################################
SELECT [职位], AVG(工资) AS 职务平均工资 
FROM [dbo].[青大侠公司]
WHERE [姓名]!='刘婉清'
GROUP BY [职位]
HAVING AVG(工资)<10000
查询表中职务平均小于10000的 把刘琬清排除在外
###############################################################################
SELECT 姓名,出生日期,DATEDIFF(YYYY,出生日期,GETDATE()) AS 年龄,DATEDIFF(DD,GETDATE(),DATEADD(YYYY,30,出生日期))AS 距离30岁天数
FROM [dbo].[青大侠公司]
WHERE DATEDIFF(YYYY,出生日期,GETDATE())<=30
ORDER BY 出生日期
查询表中未满30岁的员工年龄 并计算距离30岁天有多少天
###############################################################################
SELECT'员工'+[姓名]+'的生日'+CONVERT(varchar(10),出生日期,111)+',现在的年龄是'+CAST(DATEDIFF(YYYY,出生日期,GETDATE()) AS varchar(10))+'岁'
+'距离30岁生日还有'+ CAST(DATEDIFF (DD,GETDATE(),DATEADD (YYYY,30,出生日期)) AS varchar(10))+'天'
FROM [dbo].[青大侠公司]
WHERE DATEDIFF  (YYYY,出生日期,GETDATE()) <=30
ORDER BY 出生日期
查询表中未满30岁的员工年龄 并计算距离30岁天有多少天
##############################################################################
--内#联接
select  A.姓名,A.学校,B.姓名,B.职业  
from  A,B 
where  A.姓名=B.姓名
--或者
select  A.姓名,A.学校,B.姓名,B.职业  
from  A  inner   join   B  on  A.姓名=B.姓名
###############################################################################
--外联接

--左外联接
select  A.姓名,A.学校,B.姓名,B.职业
from  A  left   join  B  on  A.姓名=B.姓名

--右外联接
select  A.姓名,A.学校,B.姓名,B.职业
from  A  right join B  on   A.姓名=B.姓名

--完整外联接
select  A.姓名,A.学校,B.姓名,B.职业
from  A  full  join   B   on  A.姓名=B.姓名
###############################################################################

提醒 写的时候要记得检查标点符号和大小写

http://www.lryc.cn/news/585072.html

相关文章:

  • 语音对话秒译 + 视频悬浮字 + 相机即拍即译:ViiTor 如何破局跨语言场景?
  • FPGA实现SDI转LVDS视频发送,基于GTP+OSERDES2原语架构,提供工程源码和技术支持
  • 每日一SQL 【游戏玩法分析 IV】
  • 物联网应用开发技术趋势与实践指南
  • 华为数据通信网络基础
  • 《Java EE与中间件》实验三 基于Spring Boot框架的购物车
  • 搭建渗透测试环境
  • 每天一个前端小知识 Day 28 - Web Workers / 多线程模型在前端中的应用实践
  • Java Stream流介绍及使用指南
  • 冒泡排序和快速排序
  • 嵌入式C语言-define和const区别
  • 炎热工厂救援:算法打造安全壁垒
  • 【实时Linux实战系列】现有应用迁移到实时环境的步骤
  • 零信任落地难题:安全性与用户体验如何两全?
  • G1 垃圾回收算法详解
  • 类之间的纵向关系——继承
  • rom定制系列------红米note10 5G版camellia原生安卓14批量线刷 miui安卓11修改型号root版
  • bash中||与的区别
  • consul 的安装与服务发现
  • Python PDFplumber详解:从入门到精通的PDF处理指南
  • Java 深入解析:JVM对象创建与内存机制全景图
  • mysql中的自增ID
  • k8s-高级调度(一)
  • cefSharp.WinForms.NETCore 138.xx (cef138/Chromium 138.0.7204.97) 升级测试体验
  • 《从依赖纠缠到接口协作:ASP.NET Core注入式开发指南》
  • tcp/quic 的滑动窗口
  • 基于ASP.NET+SQL Server实现(Web)企业进销存管理系统
  • 虹科分享 | 告别实体钥匙!数字钥匙正在重构你的用车体验
  • 大模型及agent开发6 OpenAI Assistant API 高阶应用 - 流式输出功能
  • 【Kubernetes】Ubuntu 24.04 安装 K3s v1.33.2+k3s