1. 程式人生 > 其它 >力扣資料庫題目總結

力扣資料庫題目總結

目錄

資料庫題目小總結

  1. 建立資料表

    CREATE TABLE Scores (
    id INT(10) PRIMARY KEY auto_increment, // 設定主鍵以及自動增長
    score float(10,2)   //設定保留兩位小數
    )
    

2.插入資料

插入資料可以使用 insert 和 load data local ,這次我們使用 load data local

  • 建立一個文字檔案,按表建立的列順序給出資料,並且以 table 鍵換行
  • 空值以 \N 表達
  • linux 中文字檔案以 \r 為結束符, 而 windows 中以 \r\n 為結束標誌
  • 匯入文字檔案命令如下

匯入資料命令

語法

load data[local] infile file_name into table table_name [option];
  1. linux 中

    LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
    
  2. windows 中

    LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';
    

這次我們使用的是 ,值得注意的是,路徑不能有中文,且檔案路徑使用斜槓,使用反斜槓的話則需要使用兩個

LOAD DATA LOCAL INFILE 'F:/datasource/test.txt' INTO TABLE scores LINES TERMINATED BY '\r\n';

可選的選項有

匯出資料命令

語法

mysqlimport -u root -pPassword[--local] dbname file_name[option]

示例:

mysqlimport -u root -proot company c:\t_dept.txt 
"--fields-terminated-by=、"
"--fields-optionally-enclosed-by=""
"--lines-terminated-by=\r\n"

編寫一個 SQL 查詢來實現分數排名。

如果兩個分數相同,則兩個分數排名(Rank)相同。請注意,平分後的下一個名次應該是下一個連續的整數值。換句話說,名次之間不應該有“間隔”。

+----+-------+
| Id | Score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+

例如,根據上述給定的 Scores 表,你的查詢應該返回(按分數從高到低排列):

+-------+------+
| Score | Rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+