資料庫概論_3標準化的SQL語言_ 數據定義

来源:https://www.cnblogs.com/yanying521/archive/2019/04/27/10745980.html
-Advertisement-
Play Games

Student: Course: SC: 1.資料庫的定義、刪除 1.1資料庫的定義(創建) 1 CREATE DATABASE student; 1.2資料庫的刪除 1 DROP DATABASE student; 2.表的定義、修改與刪除 2.1表的定義 建表語句: 1 CREATE TABLE ...


Student:

 

 

Course:

 

 SC:

 

1.資料庫的定義、刪除

1.1資料庫的定義(創建)

 1 CREATE DATABASE student; 

1.2資料庫的刪除

 1 DROP DATABASE student; 

2.表的定義、修改與刪除

2.1表的定義

 

建表語句:

1 CREATE TABLE student(
2 Sno VARCHAR(255) PRIMARY KEY,
3 Sname VARCHAR(255),
4 Ssex CHAR(4),
5 Sage SMALLINT,
6 Sdept CHAR(4)
7 );
create table

添加數據:

1 INSERT INTO student(Sno,Sname,Ssex,Sage,Sdept) VALUES ("20170707001","張一","男",20,"CS");
2 INSERT INTO student VALUES ("20170707002","張二","男",21,"CS");
3 INSERT INTO student(Sno,Sname,Ssex,Sage,Sdept) VALUES ("20170707003","張三","女",22,"MA");
4 INSERT INTO student(Sno,Sname,Ssex,Sage,Sdept) VALUES ("20170707004","張四","女",18,"IS");
insert

2.2表的修改

 2.2.1向student表中添加“入學時間”列,數據類型為日期型

 SQL語句:

1 ALTER TABLE student ADD s_entrance DATE;

結果:

2.2.2將年齡的數據類型由字元型改為整型

mysql>>

ALTER TABLE student MODIFY COLUMN Sage INT;

 

2.2.3修改表名

ALTER TABLE studentt RENAME TO course;

 

2.3表的刪除

DROP TABLE course;

 

3.數據查詢

3.1單表查詢

3.1.1查所有

1 -- 方式一
2 SELECT * from student;
3 -- 方式二
4 SELECT Sno,Sname,Ssex,Sage,Sdept,S_entrance from student;

 

3.1.2選擇查詢表中某些列

SELECT Sno,Sname,Sdept FROM student;

3.1.3查詢經過計算的值並起個別名birthday

 

SELECT Sname,2014-Sage as birthday FROM student;

 

3.1.4 查詢所在系(用小寫字母表示系名)

 

1 SELECT Sname,LOWER(Sdept) FROM student;

3.1.5去除結果中重覆的行

SELECT DISTINCT s_entrance FROM student;

3.1.6查詢滿足條件的元組

1)年齡小於25歲的

SELECT * FROM student WHERE Sage<25;

2)Sno等於20170707001的

-- Sno值可以加"",也可以不加""
SELECT * FROM student WHERE Sno="20170707001";

3)年齡在20到30之間的

SELECT * FROM student WHERE Sage BETWEEN 20 AND 30;
-- 等價於
SELECT * FROM student WHERE Sage >= 20 AND Sage <=30;

4)名字中含有“一”的

SELECT * FROM student WHERE Sname LIKE "_一";

5)名字中不含“一”的

SELECT * FROM student WHERE Sname NOT LIKE "_一";

6)按學號降序排列

-- 預設升序(ASC)

SELECT * FROM student ORDER BY Sno DESC;

7)聚集函數

 1 -- 統計元組個數
 2 SELECT COUNT(*) FROM student;
 3 -- 統計一列中的個數(空值不算)
 4 SELECT COUNT(DISTINCT s_entrance) FROM student;
 5 -- 計算一列值的總合(必須為int)
 6 SELECT SUM(Sage) FROM student;
 7 -- 計算一列值的平均值
 8 SELECT AVG(DISTINCT Sage) FROM student;
 9 -- 找一個值的最大值
10 SELECT MAX(Sage) FROM student;
11 -- 找一列值的最小值
12 SELECT MIN(Sage) FROM student;
View Code

8)GROUP BY:分組語句

SELECT Sname,SUM(Sage) FROM student GROUP BY Sname;

-- GROUP BY 與WHERE語句不能共用
SELECT Sname,SUM(Sage) FROM student GROUP BY Sname HAVING SUM(Sage)>=50;

 

3.2連接查詢

3.2.1等值與非等值連接查詢

等值連接與非等值連接:當連接運算符為“=”時,稱為等值連接。使用其它運算符稱為非等值連接。

 例:查詢每個學生及其選修課程的情況

SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno;

把目標列中重覆的屬性列去掉則為自然連接。

3.2.2自身連接

例:查詢每一門課的間接先修課

SELECT f.Cno,s.Cpno
FROM Course f,Course s
WHERE f.Cpno=s.Cno;

 

3.2.3外連接

分為:左外連接,右外連接,內連接

left join,right join,inner join

如:

SELECT * FROM Course f LEFT JOIN Course s ON f.Cpno=s.Cno;
SELECT * FROM Course f RIGHT JOIN Course s ON f.Cpno=s.Cno;
SELECT * FROM Course f INNER JOIN Course s ON f.Cpno=s.Cno;

 

3.2.4多表連接

兩個表以上的操作稱為多表連接

例:查詢每個學生的學號,姓名,選修的課程名及成績

SELECT Student.Sno,Sname,Cname,Grade
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno; 

 

3.3嵌套查詢

 

3.4集合查詢

 

3.5基於派生表的查詢


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本篇文章主要是在ioremap_nocache函數說明的基礎上進行整理,加入該函數的用法簡介。 函數原型 調用 函數之後,返回一個線性地址,此時CPU 可以訪問設備的記憶體(已經將其映射到了線性地址空間中了),此時CPU可以使用訪問記憶體的指令訪問設備的記憶體空間,此時我們就可以像訪問記憶體一樣來訪問設備的 ...
  • 1. 如何進入上級目錄cd .. 2. 如何進入當前用戶主目錄cd ~3. 如何進入上兩級目錄cd ../.. 4. 進入當前目錄命令cd .5. 如何進入目錄 /lym/b 6.切換跟目錄 ...
  • 電腦雜七雜八的東西太多了,於是今天把電腦重裝系統了,正好重新安裝一下華為模擬器eNSP,這個教程應該是最新的,因為eNSP版本更新以及華為官網頁面的變化,有的小伙伴安裝eNSP都下載不到安裝包,接下來就告訴大家從頭安裝的步驟。步驟比較長,耐心看下去能裝好的。 華為模擬器eNSP安裝前需要電腦上提前裝 ...
  • 一、首先在VMware Workstation 15 Pro上安裝CentOS7的Linux系統 centos7下載地址:https://www.centos.org/download/ 安裝比較簡單這裡就不在贅述了,我今天主要說一下怎麼線上安裝mysql資料庫的方法,希望給大家帶來幫助。 二、安裝 ...
  • Yoink Mac版是專門為電腦桌面小的用戶而設計的一款存放臨時文件的小工具,界面簡潔,幾乎任何在Mac桌面上可以移動的文件都可以拖放到Yoink里。當您需要的時候,它又會替您釋放出來,您可以使用快捷鍵,讓您的操作更迅速。 yoink mac軟體功能丟掉一切。Yoink為您想要移動或複製的文件和應用 ...
  • STM32每個IO口具有7個寄存器來控制,每個IO口都可以自由進行編程式控制制,我們編程實際上控制的是通過控制那7個寄存器來控制我們的IO口,我們可以通過編程式控制制IO口,把IO口配置成如下八種模式: 1、輸入浮空2、輸入上拉3、輸入下拉4、模擬輸入5、開漏輸出6、推輓輸出7、推輓式復用功能8、開漏復用功 ...
  • 1. mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' 當我們在my.cnf中添加default-character-set=utf8mb4選項,那麼在mysqlbinlog查看binlog時就會報錯。 解決方 ...
  • 閱讀目錄 一、Hive內部表和外部表 1、Hive的create創建表的時候,選擇的創建方式: - create table - create external table 2、特點: ● 在導入數據到外部表,數據並沒有移動到自己的數據倉庫目錄下,也就是說外部表中的數據並不是由它自己來管理的!而表則 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...