第六單元 簡單查詢

来源:https://www.cnblogs.com/xuyubing/archive/2023/12/20/17853371.html
-Advertisement-
Play Games

create database step2; go use step2; go ​ -- 學生表 create table StudentInfo ( stuId char(10) primary key, -- 主鍵 stuName varchar(20), -- 姓名 ClassId int, ...


create database step2;
go
use step2;
go-- 學生表
create table StudentInfo
(
    stuId char(10) primary key, -- 主鍵
    stuName varchar(20), -- 姓名
    ClassId int,  -- 班級編號,邏輯外鍵,並不是真正的外鍵約束
    stuPhone char(11), -- 電話號碼
    stuSex char(4),  -- 性別
    stuBirthday datetime  -- 生日
);
go
-- 班級表
create table ClassInfo
(
    Id int primary key identity, -- 班級的主鍵
    Name varchar(30),   -- 班級名稱
    College varchar(20)  -- 學院
);
go
-- 成績表
create table StudentScore
(
    Id int primary key identity,  -- 成績的主鍵
    stuId char(10),  -- 學生外鍵
    CourseName varchar(20), -- 課程
    theoryScore int,  -- 理論成績
    skillScore int   -- 技能成績
);
​
INSERT INTO dbo.StudentInfo(stuId,stuName,ClassId,stuPhone,stuSex,stuBirthday)VALUES
('180325011','任我行',5,'13823204456','', '1999-09-09'),
('180325012','張三',4,'13823204452','', '1998-08-08'),
('180325013','李四',2,'18899251152','', '1997-07-07'),
('180325014','王五',1,'13597445645','', '1998-08-08'),
('180325015','帥天行',5,'13814204456','', '1998-06-06'),
('180325016','葉星辰',5,'17623204936','', '1998-05-05'),
('180325017','趙日天',0,'13922044932','', '1997-07-15');
go
INSERT INTO dbo.ClassInfo(Name,College)VALUES
('軟體技術1班', '電腦系'  ),
('會計1班', '經濟管理系'  ),
('會計2班', '經濟管理系'  ),
('歐美軟體外包班', '電腦系'  ),
('會計3班', '經濟管理系'  );
go
INSERT INTO dbo.StudentScore(stuId,CourseName,theoryScore,skillScore)VALUES
(   '180325011', '會計從業', 80,  90  ),
(   '180325011', 'C# 入門編程', 99,  100  ),
(   '180325012', 'SQLServer編程', 70,  75  ),
(   '180325013', '會計從業', 93,  80  ),
(   '180325014', 'C# 高級編程', 99,  99  ),
(   '180325015', '會計從業', 74,  40  ),
(   '180325015', 'C# 入門編程', 80,  90  );
 

​
--1.如何查看表中所有數據?
-- 查看學生表
-- select: 查詢
-- *:代表表中所有的列
select * from StudentInfo
-- * 號,在資料庫優化的章節中,不建議使用*號,因為系統要解析這個*號,需要一點點時間
-- 實際開發中,如果欄位過多,我們查詢時,只查出業務中所需要的欄位
select stuName,stuId from StudentInfo
​
​
-- 查詢班級表,執行
select  id,Name,College  from ClassInfo
​
​
--2.如何查詢指定幾個欄位的值?
-- 查詢學生的姓名,性別,生日,班級
select stuName,stuSex,stuBirthday,ClassId  from StudentInfo
​
--3.如何給欄位取別名?(可以省略as)
-- 把學生表中所有的欄位都取別名
select stuId as 學生主鍵,stuName as 姓名,ClassId 班級編號,stuPhone 電話號碼,
stuSex 性別,stuBirthday 生日
from StudentInfo
​
--4.distinct的用法?多個欄位的用法?
 -- distinct:去除重覆項
 select distinct ClassId from StudentInfo
 select distinct stuSex from StudentInfo
 -- 指的是兩個欄位組合在一起,不會重覆
 select distinct stuSex,ClassId from StudentInfo
​
-- 這兩個結果集為什麼會一樣?
select stuId,CourseName from StudentScore
-- disctinct 後面跟著幾個欄位,表示 去除這幾個欄位(組合在一起)重覆的意思
select distinct stuId,CourseName from StudentScore
​
-- 這樣寫會去除重覆嗎?
select distinct * from StudentInfo  -- 這樣寫沒有意義,反而增加系統的開銷
--5.top 的用法?
 -- 取前3條數據
 -- top :前。。。條
 select top 3 * from StudentInfo
​
​
--6.top ... percent(百分比)?
-- 查詢前30%的學生數據
-- 從這個故事告訴我們,數據沒有半條,向上取整
select top 30 percent *  from StudentInfo
​
​
--7.查詢年齡大於20歲的?
-- year():獲取年份
-- 年齡 = 當前年份 - 生日所在年份
select * from StudentInfo where (year(getdate())-year(stuBirthday))>20
​
​
-- 查詢學生的,姓名,性別,年齡  所有欄位取別名
-- 年齡 = 當前年份 - 生日所在年份
select stuName as 姓名,stuSex as 性別,(year(getdate())-year(stuBirthday)) as 年齡  from StudentInfo
​
-- 查詢80 後的女生
-- 80後:1980-1989
select * from StudentInfo where year(stuBirthday)>=1980 and year(stuBirthday)<=1989
and stuSex=''
​
​
--9.查詢姓李的學生信息
-- like:模糊查詢,中文意思是:像。。。
select * from StudentInfo where stuName like '李%'--10.列出技能成績大於90分的成績單
select * from StudentScore where skillScore>=90
​
​
--11.查詢課程包含”SqlServer”的成績信息
select * from StudentScore where CourseName like '%SqlServer%'
​
​
--12.查詢每個學生不同的成績列表
select distinct stuId,skillScore from StudentScore
​
​
--15.查詢年齡大於20歲前3條學生的姓名,年齡,所有欄位取別名
select top 3 stuName as 姓名,stuSex as 性別  from StudentInfo where (year(getdate())-year(stuBirthday))>20
 
 

 

 

配套視頻鏈接:SQLServer 入門基礎 - 網易雲課堂 (163.com)

海闊平魚躍,天高任我行,給我一片藍天,讓我自由翱翔。
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 概述:.NET依賴註入(DI)通過反射自動註冊服務,示例展示了註冊指定類、帶特性類、項目下所有介面實現的類。簡化配置,提高可維護性。 在.NET中,進行依賴註入(DI)的自動註冊,可以通過反射機制和程式集掃描來實現。以下是詳細的步驟以及相應的C#源代碼示例,包括註冊指定類、註冊帶有自定義特性的類、以 ...
  • 問題 在調試接收串口數據的Qt程式中發現,數據存在延遲和粘包現象。下位機發送數據包頻率是100Hz,一包56位元組,波特率115200,在列印port->readAll()的值的時候發現並不是每10ms讀到一包數據,而是大概每50ms左右一次接收到5包數據,在其他電腦上調試,以及下載其他串口助手調試後 ...
  • Flink中的處理函數(ProcessFunction和KeyedProcessFunction)在對於數據進行顆粒化的精確計算時使用較多,處理函數提供了一個定時服務(TimerService),可以向未來註冊一個定時服務, ...
  • 一、按照月分片 使用場景為按照自然月來分片,每個自然月為一個分片,但是一年有12個月,是不是要有12個數據節點才行呢?並不是。例如我現在只有三個分片資料庫,這樣就可以1月在第一個數據分片中,2月在第二個數據分片中,3月在第三個數據分片中,當來到4月的時候,就會重新開始分片,4月在第一個數據分片,5月 ...
  • 1. 基礎知識回顧 1、索引的有序性,索引本身就是有序的 2、InnoDB中間隙鎖的唯一目的是防止其他事務插入間隙。間隙鎖可以共存。一個事務取得的間隙鎖並不會阻止另一個事務取得同一間隙上的間隙鎖。共用和獨占間隔鎖之間沒有區別。它們彼此之間不衝突,並且執行相同的功能。 3、MySQL預設隔離級別是 R ...
  • 芋道源碼相信很多朋友都很瞭解了,今天我們試著基於FastGPT實現芋道框架的代碼生成。芋道的代碼生成,是基於資料庫表欄位實現的,那我們的思路就是看看如何使用GPT幫我們生成資料庫表結構,只要資料庫表欄位有了,代碼也就生成好了。實現這個需求我們就需要用到FastGPT的高級編排功能。編排的整體思路如下 ...
  • 在之前三期的實時湖倉系列文章中,我們從業務側、產品側、應用側等幾個方向,為大家介紹了實時湖倉方方面面的內容,包括實時湖倉對於企業數字化佈局的重要性以及如何進行實時湖倉的落地實踐等。 本文將從純技術的角度,為大家解析實時湖倉的存儲原理以及生態選型,為企業建設實時湖倉給出技術方面的參考意見。 實時湖倉能 ...
  • 關於GreatSQL字元集的總結 前言 最近的SQL優化工作中經常遇到因字元集或校驗規則不一致導致索引使用不了的問題,修改表的字元集或校驗規則相當於把表重構,表中數據量大時,處理起來費時費力,希望應用開發者在設計之初時註意到此問題,讓後期接手運維的小伙伴少一些負擔。GreatSQL的字元集和校驗規則 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...