我有一张这样的桌子!
T1
Name Surname Team
John Fire Team1
Mike Ice Team2
Don Grass Team3
John Fire Team4
Jake Finger Team1
我想创建并添加到此名为ID的表列中。
ID包括:
'姓名' +
的第一个字母'姓氏的第一个字母' +
' - ' +
如果之前有相同的第一个字母,则数字自动增加!
看起来像这样!
T1
ID Name Surname Team
JF-1 John Fire Team1
MI-1 Mike Ice Team2
DG-1 Don Grass Team3
JF-1 John Fire Team4
JF-2 Jake Finger Team1
我需要在此代码中添加什么内容?
#LAST TRY
create table T1 (
Name varchar(45),
Surname varchar(45),
Team varchar(45));
insert into T1(Name,Surname,Team) values ( 'John','Fire','Team1'), ('Mike','Ice','Team2'),
('Don','Grass','Team3'),('John','Fire','Team4'),('Jake','Finger','Team1');
select * from T1;
答案 0 :(得分:2)
看起来你所获得的表格是几个实体的集合。
实体关系建模是数据库设计的键。
实体是可以唯一标识的人,地点,事物,概念或事件,对企业很重要,我们可以存储有关的信息。
确定实体之间的关系和基数。
“玩家”是零,一个或多个“团队”的成员 “团队”由零,一个“玩家”组成
确定实体的候选键。确定哪些属性属于哪些实体。
“玩家”有一个“出生日期”。 “玩家”有一个“名字”和一个“姓氏”。
在实施物理设计之前,您应该努力将数据模型设置为第三范式。 (在执行所需的地方进行非规范化,但不要跳过先达到3NF的步骤。在实施之前。)
一旦您的模型在3NF中,然后提出一个实现,从每个实体的单独表开始。
作为播放器/人物实体的示例表定义,添加代理键作为主键:
create table player
( id int unsigned not null primary key auto_increment comment 'PK'
, surname varchar(30) comment 'last name'
, givname varchar(30) comment 'first name'
, dob date comment 'date of birth'
, UNIQUE KEY player_UX1 (surname, givname)
) engine=innodb
;
create table team
( id int unsigned not null primary key auto_increment comment 'PK'
, team_name varchar(50)
, mascot varchar(100)
, ...
, UNIQUE KEY team_UX1 (team_name)
) engine=innodb;
忽略任何时间要求,将“player”和“team”之间的多对多关系实现为 relationship 表,并使用引用每个表的外键...
create table current_team_member
( team_id int unsigned not null comment 'FK, ref team.id'
, player_id int unsigned not null comment 'FK, ref player.id'
, date_joined date
, ...
, PRIMARY KEY (team_id, player_id, ... )
, CONSTRAINT FK_current_team_member_team
FOREIGN KEY (team_id) REFERENCES team(id)
, CONSTRAINT FK_current_team_member_player
FOREIGN KEY (player_id) REFERENCES player(id)
) engine=innodb;
INSERT INTO player (givname, surname, dob, ...)
SELECT ... AS givname
, ... AS surname
, MIN(...) AS dob
FROM conglomeration_of_a_jumbled_mess t
GROUP BY givname, surname
ORDER BY givname, surname
;
INSERT INTO team (team_name, ...
SELECT t.team_name
, ...
FROM conglomeration_of_a_jumbled_mess t
GROUP BY t.team_name
ORDER BY t.team_name
;
答案 1 :(得分:0)
创建ID的基本方法:
<?php
class Filter extends Threaded {
public function __construct(string $img, array $filters = [], string $out) {
$this->img = $img;
$this->filters = $filters;
$this->out = $out;
}
public function run() {
$image = imagecreatefromjpeg($this->img);
if (!is_resource($image)) {
throw new \RuntimeException(
sprintf(
"could not create image resource from %s", $this->img));
}
foreach ($this->filters as $filter) {
imagefilter($image, ...$filter);
}
imagejpeg($image,
sprintf("%s/%s",
$this->out, basename($this->img)));
imagedestroy($image);
}
private $img;
private $filters;
private $out;
}
$pool = new Pool(16);
foreach (glob("/path/to/*.JPG") as $image) {
$pool->submit(new Filter(
$image, [
[IMG_FILTER_GRAYSCALE],
[IMG_FILTER_COLORIZE, 100, 50, 0]
],
"/tmp/dump"));
}
$pool->shutdown();
?>
将检查语法并展开。
方法:从名字中选择第一个字母,从第二个名字中选择第二个字母,然后根据姓名和姓氏的分组,确定要插入的数字。
编辑: 试试这个作为MySQL的实现。
import java.util.Scanner;
public class BodyMassIndex {
public static void main(String[] args) {
// TODO Auto-generated method stub
int pounds =0;
int feet = 0;
int inches = 0;
double heightMeters = ((feet * 12) + inches) * .0254;
double mass = pounds / 2.2;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter your weight in pounds");
pounds = keyboard.nextInt();
System.out.println("Enter how many feet you are");
feet = keyboard.nextInt();
System.out.println("Enter how many inches after feet");
inches = keyboard.nextInt();
double bmi = mass / (heightMeters * heightMeters);
System.out.println(mass);
System.out.println(bmi);
if(bmi < 18.5){
System.out.println("Underweight");
}
else if ((bmi >= 18.5) && (bmi < 25)){
System.out.println("Normal weight");
}
else if ((bmi >= 25) && (bmi < 30))
System.out.println("Above weight");
else
System.out.println("Obese");
}
}
唷!! http://www.mysqltutorial.org/mysql-row_number/是参考链接。但真的是MySQL !!为什么你不能给我们基本的分析功能!!
答案 2 :(得分:-2)
根据您发布的新信息,您实际上并未创建包含唯一字段的表格。你正在做的是创建一个表,一个给定的人可以出现N次,因此他们需要一个对他们来说完全独特的标识符(例如,两个人具有相同的名字和姓)。如果没有合并表格,以便每个玩家只出现一次,并且在该行上枚举所有他们的团队,那么您需要在插入时简单地定义这些ID。所以,
create table T1 (
ID varchar(4),
Name varchar(45),
Surname varchar(45),
Team varchar(45));
然后修改插入内容以包含ID:
insert into T1(ID,Name,Surname,Team) values ( 'JF-1','John','Fire','Team1')
等等。