Database schema:

CREATE TABLE "PlayerInfo" (
	"ELITEID" INTEGER, 
	"PlayerName" TEXT, 
	birthdate TEXT, 
	birthyear DATE, 
	birthmonth INTEGER, 
	birthday INTEGER, 
	birthplace TEXT, 
	nation TEXT, 
	height INTEGER, 
	weight INTEGER, 
	position_info TEXT, 
	shoots TEXT, 
	draftyear INTEGER, 
	draftround INTEGER, 
	overall INTEGER, 
	overallby TEXT, 
	"CSS_rank" INTEGER, 
	"sum_7yr_GP" INTEGER, 
	"sum_7yr_TOI" INTEGER, 
	"GP_greater_than_0" TEXT, 
	PRIMARY KEY ("ELITEID"), 
	CONSTRAINT fk_playerinfo_height_info FOREIGN KEY(height) REFERENCES height_info (height_id),
	CONSTRAINT fk_playerinfo_weight_info FOREIGN KEY(weight) REFERENCES weight_info (weight_id)
)


CREATE TABLE "SeasonStatus" (
	"ELITEID" INTEGER -- example: ['3668', '3667'],
	"SEASON" TEXT -- example: ['1999-2000', '1997-1998'],
	"TEAM" TEXT -- example: ['Canada U20', 'Rimouski Oceanic'],
	"LEAGUE" TEXT -- example: ['QMJHL', 'WJC-20'],
	"GAMETYPE" TEXT -- example: ['Regular Season', 'Playoffs'],
	"GP" INTEGER -- example: ['58', '18'],
	"G" INTEGER -- example: ['15', '44'],
	"A" INTEGER -- example: ['71', '26'],
	"P" INTEGER -- example: ['115', '41'],
	"PIM" INTEGER -- example: ['117', '46'],
	"PLUSMINUS" INTEGER -- example: ['4', '27'],
	CONSTRAINT fk_seasonstatus_playerinfo FOREIGN KEY("ELITEID") REFERENCES "PlayerInfo" ("ELITEID")
)


CREATE TABLE height_info (
	height_id INTEGER -- example: ['65', '67'],
	height_in_cm INTEGER -- example: ['170', '165'],
	height_in_inch TEXT -- example: ['5\'5"', '5\'7"'],
	PRIMARY KEY (height_id)
)


CREATE TABLE weight_info (
	weight_id INTEGER -- example: ['159', '154'],
	weight_in_kg INTEGER -- example: ['72', '70'],
	weight_in_lbs INTEGER -- example: ['159', '154'],
	PRIMARY KEY (weight_id)
)

Question: Among the players whose total NHL games played in their first 7 years of NHL career is no less than 500, what is the name of the player who committed the most rule violations?
Evidence: total NHL games played in their first 7 years of NHL career is no less than 500 refers to sum_7yr_GP > 500; name of the player refers to PlayerName; committed the most rule violations refers to MAX(PIM);

SQL:
SELECT T1.PlayerName FROM PlayerInfo AS T1 INNER JOIN SeasonStatus AS T2 ON T1.ELITEID = T2.ELITEID WHERE T1.sum_7yr_GP > 500 ORDER BY T2.PIM DESC LIMIT 1