-
创建数据表
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];
-
linux 中
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
-
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 |
+-------+------+