[음악 재생] 데이비드 마란 : 좋아,이 CS50입니다. 이 주 팔의​​ 끝입니다. 그리고 오늘, 우리는 시작 일부 조각을 채우기 위해 이 건물에 관해서 웹에 일. 그래서, 월요일에 그 리콜 우리는 더 많은 시간을 보내고 PHP에있는이 역동적이다 프로그래밍 언어 그 다른 가운데, 우리에게 출력을 할 수 있습니다 일, HTML 및 기타 내용 우리는보고 싶은거야. 그러나 우리는 정말 방법을 못 봤어 우리는 어떤 정보를 저장하는 것입니다. 사실, 거의 모든이의 슈퍼 오늘 방문 흥미로운 웹 사이트 데이터베이스의 일종 백 엔드에, 오른쪽? 페이스 북은 확실히 많은 양의 데이터를 저장 에 대한 모든 우리와의 Gmail 상점의 모든 당신의 전자 우편의. 그리고, 많은 다른 사이트는 아니다 정보의 정적 콘텐츠. 그것은 어떤 식 으로든 실제로 동적입니다. 당신은 입력, 그것은 업데이트 제공 다른 사람들을위한 페이지. 당신은 당신이 보내는 메시지를 얻을 등 메시지 및. 그래서 오늘, 우리는에서 자세히 살펴 프로젝트의 토대 당신은 다음에 뛰어거야 주, CS50 금융, 어떤 실제로 구축해야 할 것입니다 하지 C에서,하지만 PHP에서 뭔가. 보이는 웹 사이트 이 같은 작은 선물 즉, 구매 및 판매 할 수 있습니다 실제로 주식 실시간에 그릴 것 야후 금융에서 주식 데이터. 그리고 궁극적으로, 당신은있을 것이다 자신을 위해 사용자에 대한 환상 당신은 실제로 사고 파는 있다는 것을 주식과 거의 실시간으로 받고 업데이트, 관리 포트폴리오, 모두의 데 요구하는 것입니다, 궁극적으로, 사용자의 데이터베이스. 그래서, 당신 자신의 말로, 당신은 아니에요 특히 컴퓨터와 슈퍼 익숙한 과학이나 데이터베이스, 무엇을 데이터베이스를 아는 것은 할 수 지금, 비 기술적 인 측면에서? 그것은 무엇인가? 당신은 그것을 설명하는 방법 룸메이트 또는 친구에게? 청중 : [들리지] 정보 [들림] 데이비드 마란 : 그래서, 정보 목록, 또는 정보의리스트를 store-- 당신은 저장할 수 있음 사용자가 같은 약. 그리고 사용자가 무엇을 그들과 관련된? 당신은 페이스 북이나의 사용자의 경우 지메일, 특징은 무엇인가 있음을 우리 모두는 사용자가? 마찬가지로, 어떤 일이 몇 가지있을 수 있습니다 스프레드 시트의 열에있는 우리 지난 시간에 언급? 다시, 당신이 할 수 있기 때문에 데이터베이스의 생각 정말 멋진 Excel 파일 또는 Google로 스프레드 시트 또는 Apple 번호 ​​파일. 그래서, 당신은 어떻게 생각합니까 당신은 사용자에 대해 어떻게 생각하면? 그들이 무엇을해야합니까? 그게 뭔데? 청중 : 이름. 데이비드 마란 : 이름. 그렇다면 이름처럼, 데이비드 마란 일부 사용자의 이름이 될 것이다. 사용자는 다른 무엇을해야합니까? 청중 : ID입니다. 데이비드 마란 : ID입니다. 그래서, 당신의 하버드 같은 ID 번호, 등 ID 또는 예일 넷 ID 등. 사용자는 다른 무엇을 가지고 있는가? 청중 : 비밀번호. 데이비드 마란 : 아마 암호, 주소, 어쩌면 전화 번호, 어쩌면 이메일 주소를 입력합니다. 그래서, 필드 및이의 다발있다 일종의 통제 불능 나선형 수 빨리 빨리 시작으로 오,이 해 저장할 수 있도록, 실현 과의는 이것 저것을 저장 할 수 있습니다. 하지만 어떻게 우리가 실제로 그렇게 할 수 있습니까? 그래서 다시, 정신 모델 오늘 갖도록 우리 실제 SQL로 다이빙, 구조적 쿼리 언어, 이처럼 보이는 데이터베이스입니다. 그것은 단지 행과 열을합니다. 그리고 당신은 Google 스프레드 시트를 상상할 수 또는 다른 프로그램의 수. 하지만 MySQL을 약 키는 무엇입니까 데이터베이스 소프트웨어 우리가 사용하는거야, 자유롭게 공개 페이스 북 사용을 available-- 그것과 다른 websites--의 수 데이터베이스는 관계형으로 물건을 저장합니다. 그리고 관계형 데이터베이스 그냥 말 그대로 하나의 의미 행 및 열 데이터를 저장한다. 그것은 그렇게 간단합니다. 그래서, 오라클 등도 뭔가 그 당신은 일반적으로 들었을 수도 관계형 데이터베이스이다. 그리고 후드 아래에, 그것을 행 및 열 데이터를 저장한다. 그리고 오라클은 당신을 청구 많은 돈은 그렇게, MySQL의 요금 반면, 동일한에 대한 당신은 아무것도 없습니다. 그래서, SQL은 우리에게 줄 것입니다 적어도 4 개의 조작. 읽기와 같은 데이터를 선택하는 기능 데이터를 삽입, 삭제 및 업데이트 데이터. 즉, 그것들은 아르 정말 네​​ 개의 키 조작 즉, 우리가 변경할 수 있도록거야 그 행과 열에서 물건. 우리는 특히 오늘날 사용합니다 도구 SQL을 배우고 그것으로 재생 다시 PHP MyAdmin라고합니다. 이 웹 기반 도구입니다. 총 우연의 일치가 그것은 PHP로 작성된 것. 그러나 그것은 우리에게 그래픽을 줄 것 사용자 인터페이스 우리가 실제로 할 수 있도록 이러한 행과 열을 생성 다음 코드를 통해 그들에게 이야기한다. 그래서, 지금에 시작하자 내가 생각하는 것은 솔직히입니다 의 재미 공정 가지 웹 사이트의 백 엔드를 구축, 사용자에게는없는 부분 볼 수 있지만, 확실히에 대한 관리를 수행 그 때문에 데이터의가는 오히려. C와 너무 유사 덜 PHP와 같은 작은, SQL, 또는 지원하는 데이터베이스 SQL은 적어도 이러한 데이터 형식을 가지고 다른 사람의 무리가. CHAR, VARCHAR, INT, BIGINT, 10 진수를 DATETIME. 그리고 전체있다 다른 기능의 무리, 하지만 이제이 작업을 수행 할 수 실제 예로서. 나는 CS50 IDE에 갈거야 여기서, 미리, 나는에 로그인 한 나는 또한 URL을 방문한 PHP MyAdmin이라는 도구입니다. 그리고 문제가 일곱을 설정, 우리는 말할 것이다 당신은 정확히이 인터페이스에 도착합니다 뿐만 아니라. 왼쪽 상단 모서리에, 알이 강의를 말한다. 그리고는 것을 의미 사전에, 내가 만든 빈 데이터베이스라는 강의 그 아직에는 스프레드 시트가 없습니다. 어떤 행과 열이 없습니다. 첫 번째 때문에 일이 우리가 할거야 테이블을 작성하기 시작한다 즉, 우리의 사용자를 저장하는 것입니다. 그래서, 말 그대로 이상 여기에서 오른쪽으로, 내가 해요 데이터베이스를 말하려고 나는 테이블 사용자라고 할 수 있습니다. 그래서,이 파일처럼 그 나는 내 모든 데이터를 저장할. 그리고 얼마나 많은 열? 음, 지금은 간단하게 할 수 있습니다. 난 그냥 같이 저장할 사용자 이름과 사용자 이름을 입력합니다. 우리는 작은 시작합니다. 그래서 나는 두 개의 열 총을 원한다. 내가 가서 이동을 클릭하겠습니다. 그리고 나서, 이러한 열, 내가 무엇을하려고 해요 이 인터넷 경우 do--하기 모든 권리를 cooperates-- 그래서 우리는 다시 시도하는 것입니다. 나는라는 테이블을 만들거야 두 개의 열, 사용자는 확인, 이동을 클릭합니다. 이제 우리는 정말 빨리있어. 아주 잘, 감사합니다. 좋아, 그래서 우리가 원하는 무엇을 이 열은 호출 할 수 있습니까? 그래서, 하나는 이름 호출 할 것입니다. here-- 및 인터페이스 그래서, 모두가 내가 볼 솔직히, 결국 조금 못생긴 도착 당신이 한 번이 모든 데이터를 입력 시작합니다. 그러나 좋은 것은 그런 종류입니다 역설적으로, 나는 열을 만드는거야, 하지만이 도구는 어리석게도있다 행에서 그들을 배치 그래서 나는이 열을 구성 할 수 있습니다. 그래서, 이름에서 두 개의 공백이있다. 그리고 이러한 필드 중 하나의 I 아이디라고 할, 다른 필드는 내가 이름을 호출 할 수 있습니다. 그리고 지금은 선택해야 이러한 것들에 대한 데이터 유형. 그래서, Excel에서 반면, 구글 스프레드 시트, 당신이 열을 원하는 경우, 당신 그대로 단지 이름이나 사용자 이름을 입력, Enter 키를 누르십시오. 어쩌면 당신은 굵게 만들 단지 명확성을 위해,하지만 그것 뿐이다. 당신을 지정하지 컬럼의 종류. 이제 구글 스프레드 시트 또는 Excel 당신에 데이터가 렌더링되는 방법을 지정할 수 있습니다. 당신은 서식 메뉴로 이동하고 수 이 같은 달러 기호를 표시 지정할 수 있습니다, 부동 소수점 값이 같은 표시. 그래서, 그것은 정신에는 변함이있어 우리가하려고하는지 그, 그러나 이것은 실제로 강제 것입니다 데이터는 특정 유형이어야합니다. 이제,도 잠시 전에 생각 나는 단지 소수의 데이터 형식 거기 상기 실제로있다 훨씬, 그들은있어 특이성의 다양한 각도에서. 그리고 옆으로, 당신 심지어 멋진 일을 할 수있다 저장 형상 등 데이터베이스의 내부. 당신은 일을 저장할 수 있습니다 GPS 좌표 등 실제로, 수학적 발견 다른 사람에 가까운 점. 그러나 우리는 갈거야 이 슈퍼 간단한 유지 그리고, 여기에 모두 올라 소위 문자열 타입. 그래서, 여기의 목록입니다 옵션의 전체 무리. CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 그리고 그것은 압도적 가지입니다. 그리고 불행하게도, 약간 역설적으로 C에, CHAR 정말 CHAR 없습니다. 당신은 데이터베이스에 지정하는 경우 데이터 유형이 CHAR 즉, 즉 예, 그것은을 것을 의미 CHAR는 있지만, 하나 이상의 문자이다. 그리고 당신은 지정해야 얼마나 많은 문자 당신이 원하는. 그럼, 전형적인있어 사용자 이름의 길이는? 한계는 일반적으로이 있습니까? 청중 : [들리지] 데이비드 마란 : 16 아마? 뭐 그런. 당신은 다시, 알고 일,이 여덟을 사용. 때로는 16 때로는이다 는 것보다 훨씬 더. 그래서,이하지 않습니다 나에게 하나의 CHAR을 제공 의미한다. 이것은 내가 지정하는 것을 의미합니다 필드의 길이, 지금은 16 뭔가를 말할 수 있습니다. 그리고 여기에 트레이드 오프가있다. 그래서, 우리는 순간에 볼 수 있습니다 이 하나의 의미, 모든 사용자 이름은 16 자이어야한다. 그러나 분, M-A-L-A-N을 기다립니다. 그건 경우 내 이름과 내가 다섯을 사용하고, 데이터베이스가 무엇을 제안 할 것이다 다른 11 문자를 수행하는 그 나는 공간을 예약했다? 당신은 무엇을 할 것인가? 청중 : [들리지] 데이비드 마란 : 그래, 그냥 그들 모두 널 (null)합니다. 그들에게 공간을 확인합니다. 그러나 아마 널 (null), 그래서 백 슬래시 제로의 많은. 따라서, 한편으로, 우리는했습니다 지금은 내 이름 것​​을 확인했다 16 자 이하가 될 수 있습니다. 그리고 그의 플립 측면이다 그 나는 정말로 긴 이름을 가지고있는 경우 또는 정말 오래 원 당신의 일부처럼 username을 사람이 그 대학에있을 수 있습니다 또는 Yale.edu에서, 당신은 하나를 가질 수 없습니다. 그리고 사실, 당신은했습니다 경우 이제까지 웹 사이트에 등록 당신이 말하는 소리 쳤다 얻을 비밀번호가 너무 길어 또는 사용자 이름은이다, 너무 오래입니다 단순히 프로그래머, 때 때문에 자신의 데이터베이스를 구성, 결정이 필드 것 더 이상이 길이보다 수 없습니다. 좋아, 그래서 만약에 우리는 이름을 계속? 얼마나해야 보통 사람의 이름은? 얼마나 많은 문자, 16? 나는 우리가 할 수 같은데요 이 방에있는 사람을 찾아 여기서 마지막으로 자신의 첫 번째 플러스로 이름은 16 자 이상입니다. 그래서, 17보다 더 나은 무엇입니까? 18? 25? 더 큰? 30? 청중 : [들리지] 데이비드 마란 : 5,000, 나의 하나님 오. 그래서, 아마 괜찮은이다 상단, 행하여야한다 우리는 말한다. 그리고 여기에 우리는 가지가 판단 통화를 할 수 있습니다. 마찬가지로, 여기에는 정답이 없다. 무한 꽤 할 수 없습니다 우리가 결국이기 때문에 우린 잔 마셔요 것 메모리가 부족할 것. 그래서, 우리는을해야 어떤 점에서 판단 호출. 매우 일반적인 것, 예를 들면, use-- 나 여기 CHAR을 지정할 수 있도록 같은 before-- (255)는 그대로였다 이 데이터베이스 소프트웨어에 상한 몇 년 전에. 그리고 인간의 너무 많이 잘 말할 것입니다. 255 한계입니다. 그냥 최대를 사용하자. 그리고이 꽤 말도 안돼. 마찬가지로, 당신은 누군가의 입력하는 경우 200 플러스 문자의 이름, 조금 말도있다. 하지만, ASCII가 아닌 기억 문자에 대한 유일한 시스템입니다. 그리고, 특히에 아시아 언어의 많은 문자가 어디 우리는 할 수 없습니다 내 미국과 같은 키보드에 표현 키보드, 실제로 일부 문자 16 비트 대신 8 비트를 차지합니다. 그리고,이 실제로 모든 부당하지 않다 우리는 더 필요 공간이 우리에 맞게하려면 바로 미국보다 큰 문자 중심 것들 우리가 논의하는 경향이있어. 그래서, 우리는 약간의 상한이 필요합니다. 나는 최고의 하나가 무엇인지 모른다 하지만 255은 일반적으로 공통입니다. 25 낮은 느낀다. 16, 32는 낮은 느낌. 나는 측에 잘못 것 더 높은 무엇인가. 하지만 무역은 항상 꺼져있다. 아마도, 분명 무엇인가 255 문자를 예약의 해제 무역 내 데이터베이스에있는 모든 사람의 이름을 검색 하시나요? 청중 : [들리지] 데이비드 마란 : 무엇입니까? 청중 : [들리지] 데이비드 마란 : 그것은이다 메모리의 많은, 오른쪽? M-A-L-A-N. 난 그냥 250을 낭비 문자는 그냥 내 이름을 저장합니다 수비, 단지의 경우에있는 사람 클래스에 정말로 긴 이름이 있습니다. 즉, 과도한 절충처럼 보인다. 그래서, 그 SQL을 밝혀 이 데이터베이스 언어, 실제로 뭔가를 지원합니다 VARCHAR 또는 CHAR 변수가 호출. 그리고 이것은 그이있는 종류의 좋은 당신은 고정를 지정할 수 있습니다 폭이 아니라, 가변 폭. 보다 구체적으로는, 필드의 최대 폭입니다. 그래서,이 이름 수 있음을 의미 더 이상 250 자, 그러나 그것은 확실히 적은 수 있습니다. 그리고 데이터베이스는 스마트 될 것입니다. 당신은 M-A-L-A-N에 넣어 경우, 그것은 단지, 다섯을 사용하는거야 어쩌면 여섯 바이트 등 뒤에 널 문자, 그리고 추가로 지출하지 불필요하게 249 또는 250 바이트. 그래서,이게 내가해야 것 같아 이 이야기를 시작했다. 그러나 항상 상충 관계가있다. 따라서, 한편으로는 자명 I했습니다 하드 16에서 부호화 대상 지정 어쩌면 그게 아니었다 오른쪽 전화, 어쩌면 그것을 하지만, 왜 사용하지 모든 것을으로 VARCHAR? 그것은 이유가 존재한다. 왜 모든 필드으로 VARCHAR를 사용하지 길이가 사전에 몰라 그것은 바로, 좋은 일이 될 것 같다면? 만큼만​​ 공간을 사용 이 한계까지해야합니까? 청중 : 느린. 데이비드 마란 : 도전자? 청중 : 느리게 만든다? 데이비드 마란 : 아,이 느리다. 좋은, 그것은 거의 항상 대답은, 솔직히. 마찬가지로, 트레이드 오프는 무엇입니까? 그 중 하나는 더 많은 공간 비용 아니면 더 많은 시간을 요한다. 그래서,이 경우에는, 느려질 수 있습니다. 왜? 청중 : [들리지] [들림] 결정. 데이비드 마란 : 좋은. 그래서, 당신도에서 기억 수도 있습니다 PSED5은, 당신의 접근 방식을 가지고 노는 사전에, 당신이해야하는 경우 동적으로 메모리를 할당하거나 유지 있다는 버퍼 성장 실제로 속도가 느려질 수 있습니다. 당신이 malloc을 호출해야하는 경우 후드 아래에 아마 즉, MySQL은 그래서, 무엇을하고 있는지의 확실히 그 사건이 될 수 있습니다. 그리고 당신은 방법을 생각하는 경우 다시도 PSet--하거나 같은 주에 두, 우리가 한 일 이진 검색 또는 선형 검색, 모든 단어에 대한 좋은 것들 중 하나 열에서 데이터베이스 또는 모든 단어 심지어, 정확히 동일한 길이 인 경우 해당 문자의 전체 무리 비어있는, 당신이 사용할 수 있다는 것입니다 데이터에 랜덤 액세스, 오른쪽? 당신은 모든 것을 알고있는 경우 워드는 16 자 거리 당신은 그렇게, 포인터 연산을 사용할 수 있습니다 말, 우리로 이동 16, 32, 48, 64, 당신은 이동할 수 있습니다 즉시 연산을 사용하여 데이터베이스에있는 단어 중 하나에. 이 VARCHAR의 경우 반면에, 당신은 무엇을 대신해야합니까? [전화벨] 이 VARCHAR의 경우, 임의 접근을 사용할 수 없다. 당신은 무엇을 찾거나 할 필요가? 그래? 청중 : [들리지] 데이비드 마란 : 봐 whole-- 추적을 통해 전체 목록을 가장 가능성, 무엇을 찾고 있나요? 특수 값의 종류는? 청중 : [들리지] 데이비드 마란 : 찾고 널 터미네이터 그 단어의 분리를 구별. 그래서 다시, 트레이드 오프, 그리고 권리 대답은 없다. 그러나 이것은 특히, 어디 사용자가 많은 것으로 얻을 때 서버에와 부하, 사람들의 숫자가 높아지면 사용 이러한 사실은 사소하지 않은 결정이다. 그래서, 우리는 이러한 떠날 수 있지만, 의 오른쪽에 위로 아래로 스크롤 할 수 여기에. 이제 열 몇이있다 우리는 판단 호출을해야한다. 그것은 사용자의 있도록 말돼 사용자의 사용자 이름이나 사용자의 이름 null의하는 이름은? 즉, 단지 비어 있습니다. 조금 무의미한 느낌, 그래서 해요 그 확인란을 선택하지 않을. 그러나 그것은에서 밝혀 데이터베이스, 당신은 말할 수 사람이 임의로 값을 가질 수있다. 이 열은 없습니다 실제로이있을 수 있습니다. 지금,이 드롭 다운 메뉴가있다. 그리고 난 아직도있어주의 이 첫 번째 행에, 그래서 지금은 이름에 대해 이야기하고있다. 그리고, 데이터베이스 밝혀 간단한 단순한 스프레드 시트와는 달리, 인덱스라는 강력한 기능을 가지고 있습니다. 그리고 인덱스는 이야기의 방법입니다 사전에 데이터베이스 나는 인간이 당신보다 더 똑똑입니다. 나는, 쿼리의 종류를 선택 알고 또는 삽입하거나 삭제 또는 업데이트 내 코드는 종료려고하고있다 이 데이터베이스에 일입니다. I는 많은 양의 데이터를 읽고 자. 나는 많은 양의 데이터를 삽입 할. 나는 끊임없이를 원하는 많은 양의 데이터를 삭제. 나는 될거야 것을 알고있는 경우 많은 자명 같은 필드를 액세스, 나는 선제을 알 수 있습니다 데이터베이스, 나는 당신보다 더 많은 것을 알고 나는 법령에 원하는 당신은 색인이 필드를해야합니다. 필드 또는 열을 인덱싱하는 경우 즉, 사전에 데이터베이스 같은에서 몇 가지 아이디어를 빌려해야한다, 일주일에 4, 5 여섯 CS50에서 실제로 구축 이진 검색과 같은 나무 또는 무엇인가 일반적으로 B 트​​리라고 당신은 배울 것 클래스 같은 CS124에 하버드, 알고리즘 클래스, 또는 다른 장소의 수. 데이터베이스 및 스마트 그것을 구현 사람들 저장하는 방법을 알아낼 것이다 정보의 테이블 메모리 그래서 검색과 다른 작업은 매우 빠르다. 당신은 그것을 할 필요가 없습니다. 당신은 구현할 필요가 없습니다 선형 검색 또는 이진 검색 또는 정렬 또는 선택을 병합 종류, 그 중 하나. 당신이 말한다면 데이터베이스는 당신을 위해 그것을 수행 그것은 선제 인덱스에이 필드. 그리고 당신은 거기에, 너무 볼 수 있습니다 다른 특성 우리는 데이터베이스가 적용 말할 수있다. 나는 고유를 선택하면 그것은 무엇을 의미 할 수 있습니다 이 메뉴에서 바로 직관적으로? 그래? 청중 : [들리지] 데이비드 마란 : 그래, 사용자 이름은 고유해야합니다. 이 좋은 일이나 나쁜 일을위한 사용자와 웹 사이트를위한 데이터베이스? 사용자 이름은 고유해야 하는가? 네, 아마. 그건 경우 어떻게 이 필드를 우리가 로그인 할 때 사용 당신은 정말 사람들이 가지고 싶지 않아 같은 느낌 또는 동일한 사용자 이름. 그래서, 우리는있을 수 있습니다 데이터베이스는 그래서 시행 이제 내 PHP 코드 또는 언어, 나는, 예를 들어, 확인 할 필요가 없습니다 반드시이 이름을 수행 나는 다른 사람이 등록 할 수 전에 존재 하는가? 데이터베이스라는 두 사람을 못하게 데이비드 또는 Malans이 경우 등록합니다. 그리고 옆으로, 심지어이 생각 메뉴는 당신이 하나를 선택할 수 있습니다, 고유 인덱스의 하나입니다 슈퍼 빠른 성능을 위해 인덱스, 뿐만 아니라 고유성을 적용. 그리고 우리는 다시 올 거 야 단지 순간에 의미 다른 두. 한편, 난에 가면 내 두 번째 행, 어떤 사용자의 이름은, 내가 지정해야합니다 이름은 고유해야? 아니, 당신은 확실히 할 수 있기 때문에 잔 마셔요 두 개의 다윗은 없다 이 방에있는 Malans, 대부분. 그러나 우리는 다른 이름을 선택하면, 우리는 반드시 충돌이있을 수 있습니다. 테이블과 같은 해시 다시 생각한다. 그래서, 우리는 확실하지 않으 이름 필드에 고유하게합니다. 그래서, 우리는 떠날거야 그 대시, 대시, 대시, 아무것도있다. 그리고 난 떠날거야 혼자 다른 모든 것들. 사실,이 분야의 가장 우리는 걱정 할 필요가 없습니다. 그리고이 내용을 저장 할 준비가있을 때, , 인터넷이 협력하는 경우 나는 매우, 매우, 매우 저장을 클릭하고, 천천히 데이터베이스가 저장됩니까. 그리고 지금 나는이 다시 해요 인터페이스, 이는 일반적으로 인정 하듯이, 첫눈에 압도적이다. 하지만 내가 할거야 모두 클릭입니다 왼쪽 상단에있는 단어를 사용자에. 내가 여기에 갈거야, 클릭 사용자 및 기준 기본, 그것을 일부 SQL을 실행했지만 잠시 그에 대한 자세한. 여기에 내가 무슨 짓을했는지 그냥 요약입니다. 그리고 당신이 볼 것을 걱정하지 여기에 라틴어와 스웨덴어의 언급. 사람들은 단지 기본이다 설정, 원래의 MySQL 때문에, 또는 PHP MyAdmin는, 두 사람은 무슨 일이 있었 일부 스웨덴어 사람들에 의해 작성된다. 그러나 여기에 우리의 경우에 무관하다. 좋아, 그래서 왜 이 모든 재미? 그것은 밝혀, 나는 데이터를 삽입 할 수 있습니다 코드를 작성하여 데이터베이스에. 내가 가서 해요 여기 내 파일에, 나는 해요 가서 척 것 이것은 해당 데이터베이스에 연결되어있는 그 순간 아니지만 것 우리가 문제에 도착 일곱을 설정하면합니다. 그리고 앞서 갈거야 및 쿼리라는 함수를 실행 이는 우리가 문제에서 당신을 줄 것이다 것을, 일곱의 유통 코드를 설정 적어도 하나의 인자를, 이는 단지 문자열입니다. SQL 코드의 문자열입니다. 그래서, 당신은 방법을 배울 수있어 구조적 쿼리 언어 물품. 나는에 새 행을 삽입 할 경우 내 데이터베이스 사람이 제출 한 때문에 내 코드 형태로, 말 그대로 것 사용자 삽입 다음 쓰기 필드 : 사용자 이름, 쉼표, 이름, 값, 지금은 삽입해야 마란 및 견적과 같이, 맺다 '데이비드 마란.' 그리고 지금 심지어 SQL에 익숙하지 않은 사람들을 위해, 나는 왜 작은 따옴표를 사용하고 있습니다 이 녹색 문자열의 내부? 어떤 이유는 여기에있을 수 있는가? 내가 공동 연합 두 가지 언어이야 알 수 있습니다. 쿼리, PHP 함수입니다 하지만 인수를 사용합니다. 그리고 그 주장은 그 자체가 될 수 라고하는 다른 언어로 작성된 SQL은 쿼리 언어를 구조화. 그래서, 모든 것을 내가 여기 강조 SQL이라는 언어입니다. 그래서, 작은 따옴표로 무엇을, 그냥 빨리 전성 검사로? 어서. 그들은 문자열입니다. 따라서, 인용, 인용을 끝내 마란 및 견적, 인용을 끝내 데이비드 마란은 문자열입니다. 그리고 바로 지금, 직관적으로 생각 당신은 C와 PHP에 대해 알고있는 것을 알고, 내가 왜이 작업을 수행하는 나는 보통하지 않았다 문자열을 사용 따옴표? 왜 그렇게하고 싶지 않았다? 그래? 청중 : [들리지] 데이비드 마란 : 맞아요. 이미 사용하고 있기 때문에 가는 길에 큰 따옴표 인수의 외부 PHP 함수에, 난 그냥 인터프리터를 혼동한다. 그것은 알 수 없습니다,이 함께 가야합니까? 이 함께 가야합니까? 이 함께 가야합니까? 그래서, 내가 대신 대체. 아니면, 이런 식으로 뭔가를 할 수있는 백 슬래시 따옴표 또는 백 슬래시 따옴표. 솔직히, 그것은 단지 시작 매우 읽을 추한 얻을. 하지만 그 달성 것이다 뿐만 아니라 동일한 결과. 내가 있다면 그래서,이를 실행합니다 쿼리는 지금의 일이 무엇인지 살펴 보자. 지금은 오히려 앞서 갈거야 PHP 코드를 실행하는 것보다 연주 볼 수있는 곳입니다 문제에서, 일곱 설정 내가 대신 PHP MyAdmin에 갈거야. 그리고 수동으로 갈거야 SQL 탭으로 이동하고, 나를 인터페이스를 확대 할 수 있습니다. 그리고 난에 붙여 넣을거야 나는 방금 입력 한 것. 그리고 색상 코드가있다 지금 조금 변경 단지 프로그램 형식 때문에 일 약간 다르게. 그러나 모든 내가했던 것을 알 수 이다 나는 사용자 삽입 말했다했습니다. 나는 쉼표, 다음, 지정한 분리 괄호 목록이 내가 삽입 할 필드 및 나는 말 그대로 말한 값 또 괄호 뒤에 다음 두 값 나는 플러그인 할, 그리고 지금은 좋은 측정을 위해, 나는 마지막에 세미콜론을 넣어 것입니다. 그래서,이 이것은 PHP 아니다 C. 없습니다. 이것은 지금 SQL이고, 나는 그것을 붙여 넣기 해요 의이 웹 기반 인터페이스로 그냥 날 수 있도록 것, 최대한 빨리 이동을 클릭로서, 데이터베이스에서이 쿼리를 실행 CS50의 IDE의 내부에서 실행. 그래서이 좋다. 말했다 공지 한 행 삽입, 슈퍼 빠른 갔다 0.0054 초 데이터를 삽입합니다. 그래서, 꽤 건강한 소리. 그것은 내 쿼리를 다시 포맷 단지 그것을 보려면 여기를 나를 위해 색상 코드 버전의 종류에. 하지만 지금은 클릭하면 찾아도, 그 통지 혼란의 많은에이 비록 화면, 내 표는 이제 두 개의 행이 있습니다. 그래서, 내가 가서 다른 작업을 수행 할 수 있습니다. 대신이의 저를 보자 다시 SQL 탭으로 이동합니다. 그리고 이번에는 내가 좋아하는 뭔가를 삽입합니다 롭과 그의 이름은 롭 보덴 될 것입니다. 보덴. 의 저장을 클릭하자. 아차, 오히려 이동합니다. 다시 찾아보기를 클릭 한 지금은 두 행이 알 수 있습니다. 그래서,이 단지 방법이 더 복잡 개방 Google 스프레드 시트의 방법 단지 컬럼에 행을 입력. 그러나 키가 있다는 것입니다 무엇 우리는 이제 구문이 있는 코드를 작성할 수 있도록 궁극적으로, 우리가 실제로 할 수 일부 및 이렇게. 그 PHP 지원 리콜 슈퍼 전역 변수. 달러의 내부에 무엇입니까 PHP에서 GET 밑줄 서명? 우리는 하나 살펴 보았다 또는 두 가지 간단한 예. 그리고 PSet6, 당신은 안녕이 리콜 이 변수를 사용하여 점 PHP. 어떻게 거기에 간다? 아니면 무엇입니까? 조금 더 크게. 청중 : [들리지] 데이비드 마란 : 그것은 눈의 배열의 씨앗, 어떤 말의 단지 멋진 방법입니다 키 값 쌍을 가지고 배열입니다. 그리고 키는 숫자하지 않습니다. 그들은 단어 나 문자열입니다. 구체적으로 무엇을 그 키 값 쌍은? 그들은 어디에서 오는가? 죄송합니다? 청중 : [들리지] 데이비드 마란 : 아니? 어디 그 키를 할 값 쌍에서 온? 다시 말? 다시? 나는 하나의 청각 뭔가 있나요? [웃음] 즉, 그래, 맞아? 청중 : [들리지] 데이비드 마란 : 네, 쿼리 문자열에서 온다. 그래서, 당신은 시간에 되감기 경우 우리는 구글 플레이 한 ​​때 우리는 Google.com 슬래시에 갔어요 검색 물음표 Q는 고양이 같다 내가 칠 것 인 경우에 입력 한 경우 구글은 PHP로 구현 된 구글이 쓴 PHP 코드 달러 기호에 액세스 할 것 이는 내부 GET을 강조 호출 키와 Q 값은 그 다음 사용할 수라는 고양이 와 실제 검색을 수행하는 데 사용됩니다. 그래서, 사실, 내가 무슨거야 지금 내 PHP 코드로 돌아갈 것입니다 수행 다시 PSet7에서의 더 많은 것을 볼 수있다. 그리고 대신 연결 하드 코딩 된 값에있는 아닌 것 같아 매우 동적 인 웹 사이트, 나는 당신의 티저를 줄거야 실제 코드는 어떻게 할 것인지. 두에 둘 것 질문은 다음과 같이 표시합니다. 나는 이름이 무엇인지 모른다. 내가 무엇을 모르는 이름이 될 것입니다 그러나 나는 내가 할 수있는 알고 동적으로 얻을. 그래서, 지금 우리가 작성하는 코드가있는 경우 구글의 서버에서 실행되는 코드, 또는이 안녕하세요 점의 경우 PSet6 함께 제공 PHP, 나는에 통과거야 조회 함수 단지 printf와 같은 두 개의 다른 인수. 견적, GET, 인용을 끝내 사용자 이름, 및 인용, 인용을 끝내 이름, GET. 그리고 지금, 무엇을 알 일반적인 구조는 여기에있다. 나는 왼쪽에 있어요 통화 편, 이 함수는 PHP에서 쿼리를했다. 나는 아직도 처음으로이 인수, 텍스트의 단순한 문자열입니다. 그러나 텍스트의 문자열입니다 SQL이라는 언어로 작성. 그리고 솔직히, 그것은 큰 언어 아니다. 우리는 단지에 대해 이야기하는거야 그것은 공식적으로 오늘, 정말. 그리고 문제의 설정 일곱, 상대적있다 우리가있어 몇 가지 기능 활용하는 것. 물음표는하지만, 플러그인 의미 다른 값에 여기에 값 및 플러그 여기에. 그리고주의 사항, 나는 생략 한 내용 quote-- 빌어 먹을 각국에서 인용 주위 그건 ... 이 시간을 표시합니다. 나는 인용을 생략했습니다 물음표 주위 마크, 죄송합니다, 주위에. 그럼, 이것에 대해 좋은 데요 물음표 기능을하는 PHP는, 루비를 지원하는 경향이 있고, 파이썬과 다른 언어, 이것은 단지 몇 가지 플러그인을 의미한다 여기에 가치를 당신은 무엇을 알아? 당신은 사용할지 여부를 알아낼 작은 따옴표 또는 큰 따옴표. 그 날 귀찮게하지 마십시오 지적 재미 세부 사항. 그러나,이 올바른지의 확인 내 코드는 궁극적으로 너무 운영 및 안전하는 오래 전에 의미를 가질 것이다. 지금, 얼마나 많은 인수 단지로, 총 분명히, 쿼리 기능 복용은? 사람은 두 개 이상의 투표 싶어? 세? 물론, 그 이유는 무엇입니까? 왜 세? 청중 : [들리지] 데이비드 마란 : 맞아요. 첫 번째 부분은 문자열입니다. 두 번째 인수는 달러 기호입니다 GET 브래킷의 이름을 강조. 그리고 세 번째 인수가 같은 일을하지만, 단지 이름. 이제, 환언 그래서 나는 웹 양식이 있다면 즉, 텍스트 필드에 있었다 사용자의 사용자 이름에 대해 하나, 자신에 대해 하나 그녀의 이름, 단지 같은 당신은 웹 사이트에서 볼 것 당신이 등록 할 때 일부 웹 사이트,이 힘 백 엔드에 코드를하는 것이 실제로 삽입 이제 않습니다 데이터베이스로. 지금 대조적으로, 빨리 감기하자. 사용자가 지금 가정 로그인하고 당신이 원하는 여부를 확인 PHP 코드를 작성하는 다만 로그인있어 사람 사용자가 실제로, 당신은 할 수있다 아주 간단 구문을 사용합니다. 당신의 말을하자, 선택을 말할 수있다 스타가 모든 것을 의미하는 경우, 스타. 내가 무엇을 모르는 나는 원하는, 그래서 그냥 줘 테이블의 모든 열 사용자가 어디라고, 이것은 좋은 것입니다. 선택은 무엇 지원 인 조건이라고 당신이 원하는 자격을하는 방법 등을들 수있다. 어디에서 사용자 이름과 동일 인용, 인용을 끝내 마란. 그래서 여기에 너무, 나는 임베디드했습니다 인수 내부 PHP 함수,​​ SQL 코드의 라인. 그리고 SQL 코드이 시간은 말 그대로 것입니다 견적 검색, 마란를 맺다. 이제이 모든 것을 유용 아니다 그래서 나는 그를 건너 뛸거야 내가 치워거야 브래디에서이 팁은, 가서 및 플러그인 대신 여기에 물음표. 그래서, 그냥 명확하게 무엇을 내 두 번째 인수해야 누군가는 내가 로그인 한 할 경우 그 또는 그녀가 실제로 있는지 확인하려면 사용자? 청중 : [들리지] 데이비드 마란 : 그래. 나는 달러 기호 밑줄을 듣고 인용, 인용을 끝내 이름을 가져옵니다. 그리고 그것은 나에게 반환해야 내 데이터베이스에있는 행의 그 마란의 사용자 이름을 가지고있다. 이제 희망, 나는 돌아갈거야 제로 마란의 여기 적이있는 경우, 또는 한 그는이있는 경우. 나는 돌아 가야하지 말아야 두 가지 또는 세 가지 또는 네. 왜? 청중 : [들리지] 데이비드 마란 : 바로, 독특한했다? 간단한 이유. 내가 말했듯이 있기 때문에이에있어 다만 논리적으로, 고유, 만 0 또는 1 Malans을 가질 수있다 특정 데이터베이스 테이블. 지금 당신은 본 적이 제외하고, 너무로 그것은, 내가 계속 사용하더라도 GET 그리고 PSet6에만 사용하더라도 , 당신은 확실히 POST를 가질 수 GET. 그리고 포스트 다른 것을 기억 정보를 제출하기위한 기술 양식에서,하지만 URL에 표시되지 않습니다. 그것은을 위해 확실히 좀 더 안전한이다 사용자 이름과 암호 같은 것들, 이는 PSet7는 사실, 포함 할 것이다. 자, PHP에서이 작업을 수행 할 수 MyAdmin 어떻게되는지. 나는 MySQL의 탭으로 이동하겠습니다. 그리고에 대한 그 기본 값을 알 수 PHP MyAdmin, 그냥, 도움이 될하려고합니다 여기서 사용자가 하나에서 별을 선택하는 것입니다. 음, 하나는 그래서, 항상 true입니다 이 효과 바보가 있습니다 단지 모든 것을 선택합니다. 하지만 난 조금있을거야 더 현학적 수동 사용자의 선택 스타를 입력합니다. 지금 기술적으로, 당신은 할 수 테이블의 이름을 인용한다. 그것은 당신이 가지고 드문, 그러나이 그렇지 않은 통지 미국 키보드에 일반 따옴표. 이것은 소위 역음, 인 왼쪽 상단에 일반적으로 키보드의 코너. 그러나 그것은 당신이거야 드문 실제로 신경 필요 그래서 난 그냥 어쨌든을 생략합니다. 그래서 지금, 내가 가서 가서 공격 할 수 있습니다. 그리고 얼마나 많은 행이 내가 가야 다시 나는 사용자의 스타를 선택하면? 청중 : [들리지] 데이비드 마란 : 물론 행의 수. 하지만이에 얼마나 많은 지금 구체적인 이야기? 두, 거기 때문에 저와 롭이 있었다. 내가 이동을 클릭한다면, 나는 시각적으로 볼 나는, 참으로, 다시 두 행을 입수했습니다. 혼란의 많은에있다 화면이,하지만 난 두 행을 참조하십시오. 내가 다시이 작업을 수행하고있는 경우 반대로 수행 사용자, 여기서 사용자 이름로부터 SELECT 스타 인용, 인용을 끝내 동일 마란은, 지금은, Go를 클릭하면 나는 단지 다시 한 행을 얻을거야. 그리고 마지막으로, 나는 할 경우 이 같은, 가정 나는 상관하지 않는 것이 모든 것을 받고, 이는 지금 가지 의미가 없다, 단지 두 개의 열이 있기 때문에. 내가 선택하는 것 같은 아니에요 엄청난 양의 데이터. 내가 가서 가정 FROM 이름을 선택합니까 사용자 이름은 마란 동일 사용자, 무엇을 정직하게 SQL에 대한 좋은 데요, 그것은 정말 않는다는 것입니다 당신은 무엇을 할 그것을 말해. 그것은 꽤 간결하지만 당신 말 그대로 당신이 원하는 무엇을 말해. 사용자 곳에서 선택 이름 사용자 이름은 마란 같습니다. 그리고 그것은 정말 명시 적입니다. 그래서, 지금은 이동, 얼마나 많은 충돌하는 경우 행은 내가 돌아올 것입니까? 하나, 그냥 때문에 마란, 희망. 제로 그가 아니라면 이,하지만 최대한 하나. 그리고 내가 다시 얼마나 많은 열을받을 수 있습니까? 얼마나 많은 열? 이 시간, 난 그냥 갈거야 내가하지 않았기 때문에 하나를 얻으려면 모든 인 스타를 선택합니다. 지금은 그냥 이름을 선택, 그래서있어 하나의 열과 하나의 행을 다시 얻을. 그리고 그것의 적절하게 정렬 보인다 말도, 그냥보고 슈퍼 이 같은 작은. 그래서, 정말 무슨 일이야? 당신은 SQL을 실행하면 쿼리를 선택하여 당신이 있어요 다시 데이터베이스에서 임시 테이블처럼 행과 열, 어쩌면, 하지만 아무것도 생략 그 실제로 당신에 의해 선택되지 않았습니다. 그래서, 누군가가 큰이 있다면처럼 모든 학생들의 스프레드 시트 일부 등록 학생 그룹, 당신은 말한다, 저에게했습니다 신입생을 모두 제공 우리의 학생 그룹에 등록, 무엇을 당신의 동료 학생 그룹은 할 수 있습니다 그들은 단지 손으로 할 수있다 당신이 전체 스프레드 시트. 즉, 선택 스타 말처럼. 그리고 만약 조금 짜증나 당신은 단지 신입생을 원했다. 그래서 대신, 말했다 경우 데이터베이스 테이블에서 선택 스타 여기서 년도와 동일 인용, 인용을 끝내 신입생, 그것은 당신의 친구처럼의 학생 그룹 말 그대로 강조 복사 만 신입생 행 새 Google로 붙여 스프레드 시트 또는 Excel 파일, 다시 당신을 물려 전용 파일을 생성. 즉, 무슨 일이 전부입니다 개념적으로 여기에. 그래서 결국, 우리는 할 수있다 꽤 멋진 일 사용자 이름 같은 것들을 저장하여 및 암호 등을들 수있다. 그러나, 그것은 밝혀, 우리는 무엇을해야 다르게보다 약간. 그것은 단지 해당 스마트 아니다 사용자 이름과 암호를 저장합니다. 이전 사람, 생각 여기에 아래로 ID를 제안했다. 이제 ID는 같은 수 하버드 ID 나 예일의 인터넷 ID, 하지만 더 간단 할 수있다 우리의 데이터베이스 경우. 그리고 실제로, 일반적인 경우 다른 열을 가지고있다. 그리고 나는 갈거야 앞서 내 테이블을 편집 할 수 있습니다. 그리고 당신은 함께 놀러 경우 PSet7이 인터페이스, 당신은 당신이 확인할 수 있습니다 것을 볼 수 있습니다 여기에이 버튼 추가 테이블의 시작 부분에 필드. 내가 이동을 클릭 지금한다면, 그것은거야 나에게 그 형태 중 하나를 제공합니다 이전부터. 나는 ID라는 필드를 추가하는거야. 그리고 나는 숫자를 입력 할거야. 나는 전체 무리가 의 수치 값. 난 그냥 INT를 선택하는거야와 서로 다른 크기에 대해 걱정하지. 내가 지정할 필요가 없습니다 길이 또는 값, 가 될 것 때문에 32 비트 상관없이. 속성은, 우리가 전에 보지 않았다. 이들의에 관심 메뉴 옵션이 시간? 인터넷 용? 당신은 무엇을 제안 했는가? 아니? 이들의 이해가 있습니까? 그래. 바로, 부호, 그래? 우리가려고하는 경우에 일반적으로 제공하는 모두 고유 번호, 어느 이 이야기는 어디 가는, 정말 만 할 사람이 제로와 같은 번호를 갖도록 하나, 둘, 셋, 넷. 내가 처리 할 필요가 없습니다 음수와. 그것은 단지 과도한 복잡성처럼 보인다. 나는 사십억 가능한 값을 원하는, 하지 사십억 가능한 값, 그래서 난 그냥 두 배 내 INT의 용량. 제쳐두고, 당신이 관계 할 것처럼 페이스 북과 같은이 뭔가, 나의 일 때의 종류에 페이스 북은 먼저 나왔다 나는 그들이 무엇인지 생각 자신의 MySQL 데이터베이스에 사용 사용자를 저장할 식별자, 그냥 INT이었다. 그러나 물론, 많은있다 세계에서 실제 사람들. 가짜 페이스 북이 많이있다 세계 차지하고있다. 그래서 결국, 페이스 북은 넘쳐 INT의 크기, 사십억 값. 그 이유를 보면 어느 주변 웹 사이트 거기 그 당신에게 말할 수있는 당신의 고유 한 ID입니다. 그리고 당신의 이름을 선택하지 않을 경우 페이스 북은, 당신은 당신의 고유 ID를 볼 수 있습니다. 나는 그것이 프로필 점 PHP 생각 물음표 ID는 무엇인가 같습니다. 즉 지금 큰 같은 것입니다 INT, 또는 긴 당신이 경우, 64 비트 값이되는 것이다 또는 유사한 무언가. 따라서, 심지어 이러한 현실 세계에서 수행 문제는 궁극적으로 때때로 문제. 난 경우 그리고, 여기에 밝혀 내 사용자의 고유 한 ID를 모두 제공 나는 슈퍼 명시하고 싶은 최소한이 필드에 고유합니다. 하나 거기 밖으로하지만 변 명칭 오늘의 조각 너무 즉, 기본 키입니다. 당신은 데이터베이스를 설계하는 경우 테이블과 사전에 알고 해당 테이블의 열 중 하나가 고유 행을 식별한다 표에, 당신이 원하는 를 지정하고 데이터베이스를 말해, 이 내 기본 키입니다. 중복이있을 수 있습니다 다른 분야에서, 하지만 난이 그 데이터베이스를 말하는거야 내 기본이고, 나의 가장 중요한 분야, 그는 고유 보장합니다. 자,이 중복 보인다. 나는 지금 우리를 제안하고있다 여기에 저장을 클릭하여, 추가, 필드 called--와 나는거야 가서 인공 지능을 클릭합니다, 우리는 다시 올 것이다 순간에, 저장하는 것이. 나는 지금 제안하고 내 표는 다음과 같다. 나는, ID라는 INT 필드가 아이디라는 CHAR 필드, VARCHAR 이름이라는 필드하지만, ID, 이 차 때문에 고유의 경우, 왜 난 그냥 낭비 않았다 시간 무엇을 소개 효과적으로 고유의 두 번째입니다 필드는 지능의 ID라고? 사용자 이름, 리콜했다 이미 고유 한, 우리는 말했다. 그러니 그냥 논리적으로, 당신은 필요가 없습니다 이유에 대한 데이터베이스 경험 왜이를 통해 내가가 발생했을 수 있습니다 뿐만 아니라 나의 고유 식별자로 INT? 이 항아리는 다시 무슨 말이야? 청중 : [들리지] 데이비드 마란 : 무작위 접근이 용이하다, 왜? 청중 : [들리지] 데이비드 마란 : 그래, 그것의 단지 숫자 액세스. 따라서, 경우에 당신은 진정으로이 생각 테이블, 배열처럼이고 지금은 고유 식별자가 내가 움직이지 수 있습니다. 그리고 그보다 더 나은 여전히​​ 것입니다 얼마나 큰 INT 다시 될 것입니다? 32 비트 또는 4 바이트. 얼마나 큰 내 이름이 될 것입니다? 최대로? 16 바이트. 그래서 당신은 정말, 약 돌보는 경우 코드의 성능, 당신이 선호하는 것, 다시 PSet5에 대한 생각 네 바이트 값 또는 (16)를 검색하려면 바이트 값, 오른쪽? 정말만큼 간단합니다. 당신은 많은 일을 4 배를해야 그 때문에 사용자 이름을 검색합니다 16 바이트입니다. 그래서, 당신은 문자 그대로를해야 로 16 바이트를 비교 예 물론, 이것은 내가 원하는 사용자 이름입니다. 인터넷 용, 당신이 할 수있는 반면 단지 4 바이트와 함께 할. 그리고 옆 사람들에게로 컴퓨터 하드웨어에 관심이, 당신이 뭔가를 넣을 수 밝혀 INT 또는 무언가에 32 비트 값 컴퓨터에서 레지스터라고 이 슈퍼 뜻 CPU, 가장 낮은에서, 슈퍼 빠른 컴퓨터의 하드웨어 수준. 그래서, 주위의 모든 단지의 장점이있다. 그래서, 이것은 무엇을 의미합니까? 사실, 때 설계하고 시간의 거의 모든 데이터베이스 테이블 당신이하지 않은거야 단지 당신이 걱정하는 데이터, 같은뿐만 아니라 무엇인가 고유 식별자 이 때문에에 가고 우리가 다른 일을 할 수 있습니다. 그리고 이제 여기에 문제가 걸려 넘어 질 수 있습니다. 사용자가하지 않은 것을 가정 단지 사용자 이름과 이름, 그러나 또한 도시 같은 것들을 가지고 그리고 국가와 우편 번호, 적어도 여기에 미국에서. 그래서, 내가 가서거야 그냥 빨리 말, 나에게 세 이상의 열을 제공 표 끝. 그리고 이것은, 도시가 될 것입니다 이것은 국가가 될 것입니다 이것은 우편 될 것입니다. 이제 도시, 어떤 데이터 유형 이것은 아마도되어야 하는가? VARCHAR? 내가 무엇을 모르는 가장 긴 이름의 도시입니다. 어딘가에 미국에서, 거기에 아마 엄청나게 긴 단어, 그래서 약간, 그냥 255로 가자 역사적으로 또는 임의로. 주, 당신은 무엇을하고 싶어? 심판의 호출, 오른쪽? 무엇이 가장 효율적인 아마입니까? 얼마나 많은 문자? 어쩌면 두, 경우 우리는 할 수 단지 일을 함께 도망, 같은, MA 매사 추세 츠에 대한 등등. 그래서, 두 CHAR 값을 갈거야. 우편 번호는 흥미로운 하나입니다. 우리는 수 있도록, 02138에 여기 우리는 무엇을 사용해야 제안? 그것은 바로, INT입니까? INT, INT, 짧은? 짧은 작동합니다. 아니? CHAR 또는 다섯,하지만 지능합니다. 왜 INT 다시 밀어? 이에서 저를 설득. 무엇 INT, 내 생각에 대해 바보입니까? 그래. 청중 : 더 많은 메모리를 차지합니다. 데이비드 마란 : 더 많은 메모리를 차지합니다. 4 바이트,하지만 당신은있어 우편 번호를 제안 다섯 바이트로 누군가가 CHAR로했다 그건 정말 아니다, 어처럼 느끼는 경우. 음, 재미있는 이야기. 몇 년 전, 내가 사용하는 데 사용하는 경우 내 이메일에 대한 마이크로 소프트 아웃룩, 나는 결국 Gmail로 전환하고 싶었다. 그래서, 나는 모두를 내 보낸 내 CSV 파일로 아웃룩의 연락처. 쉼표로 구분 된 값, 이는 그냥 의미 내 친구들 이름을 가지고 있었고, 마지막 이름과 전화 번호, 우편 번호 그 모든. 그리고 내가 만든 그것을 개방의 실수 Excel에서, 이는입니다 스프레드 시트 프로그램이 우리가 보았 듯이 CSV 파일을 이해한다. 그러나, 나는, 같은 공격해야합니다 한 지점에서 명령 또는 컨트롤 S. 엑셀 명백하게 한번에 언제든지함으로써 기능을 가지고 그것을 그것은 도움이 될하려고 번호를 보았다. 그리고 그 숫자는 시작하는 경우 제로, 그냥 그들을 제거합니다. 왜 선도해야합니까 정수에 제로? 그들은 수학적 의미입니다. 그들은 의미가 아니에요 미국 우편 시스템. 그래서, 몇 년 동안 했어, 이 날, 나는 여전히 것을 친구가있을 때 나는 누군가의 필요에 드문 경우 요즘 해결, 나는 아직도 내가를 볼 수 있습니다 캠브리지에있는 친구가 매사 추세 츠, 2138. 당신이 있다면 그리고 그것은 짜증나 프로그램의 정렬 시도 봉투를 생성하거나 그냥 적어. 그리고 그 때문에이 이유이다 나는 잘못된 데이터 유형을 선택했다. 그래서, 나는 당신의 아이디어를 사랑 해요. 의는 CHAR 필드를 사용하자. 5 자 제외 코너 경우가있다. 여전히 메일을 보낼 경우, 때로는 요즘 코드를 압축, 그들은 같은있어, 플러스 네. 그래서, 우리는 다음 하이픈 및 필요 우리는 더 4 개의 번호가 필요합니다. 그래서 솔직히 말해서, 그것은 수 여러 가지 방법으로 이동합니다. 지금, 나는 계속거야 그것은 간단하고 난 그냥 해요 가 있다는 말을하려고 다섯 CHAR 값과 우리가있어 전체 대시 플러스 넷을 건너 뛸 것. 그러나 이러한 트레이드 오프의 종류입니다. 그리고 당신은 생각할 수 발생하는 같은 문제 전화 번호 또는 다른 필드. 그리고 지금,이 실제로 어리석은 도로 아래로 이동합니다. 롭 그리고 한나 모두 가정 마리아와 [? Davon?] 앤디 및 직원에 다른 모든 살 캠브리지, 매사 추세 츠, 02138에서. 이것은 실제로 난 것을 바보가 된 기분 내 사용자 테이블에 추가, 도시, 주, 및 우편 번호. 왜? 청중 : [들리지] 데이비드 마란은 : 다시 말? 청중 : [들리지] 데이비드 마란 : 그들은 항상있어 바로, 함께 갈? 그것이 나오는 때, 우리는 생각하는 데 사용 이 철저하게 우리까지의 경우와 전체 미국 검색 하고 있음이 밝혀 일부 불일치는 여기서 여러 도시가있다 이상한 동일한 우편 번호. 그러나, 우리는 지금 02,138을 그것을 위해 규정하는 경우 항상 캠브리지, 매사 추세 츠입니다 왜 세상에서 당신에 저장하는 것 데이터베이스 캠브리지와 석사 02138 나를 위해 한나과 롭과 [하시나요? Davon?]과 살고 다른 사람을 위해 여기 캠브리지, 그건 완벽하게 중복. 우리는 도망한다 단지 무엇을 저장에? 그냥 우편 번호. 그러나, 우리는 단지 저장하는 경우 우편 번호, 난, 아마, 원하는 게 02138이 어디 내 웹 사이트에 대해 알고. 그래서, 다른 테이블이 필요합니다. 그리고 괜찮아요. 실제로,이 중 하나이다 디자인 테이블의 디자인 프로세스 당신은뿐만 아니라 이에 PSet7에서 할거야 당신은 일반적인 데이터를 고려하고 싶다. 그냥 우리가 감안 된 것 같은 공통 코드 밖으로 인수 분해 일반적인 여기, CSS에서 스타일 또한 데이터베이스, 난 단지 고유을에 02138을 필요로하는 경우 누군가의 고향을 식별 캠브리지, 질량을 저장하지 않습니다 테이블의 모든 터무니없는 사용자입니다. 대신,라는 별도의 테이블이 우편 번호가 있어야 그 어떤 열? 아마 ID 필드, 단지에 대한 때문에 원칙은 우리가 지금 얘기하고 있습니다. 02138에 대한 아마 우편 필드. 그리고 아마 어떤 다른 열? 도시와 상태,하지만 하나가 행 02,138를 들어, 02139에 대한 하나의 행, 90210에 대한 하나의 행. 그리고 그 말 그대로입니다 내가 아는 모든 우편 번호. 그래서 지금, 당신은 무엇을 할 수 있습니까? 이 때문에, 문제가 지금은 두 테이블을 가지고있다. 그래서, 내 사용자가 대부분 여기에 있습니다, 그러나 그들의 도시 국가 정보입니다 여기. 그래서, 거기에, SQL로 판명 실제 방법은, 정보에 합류 당신은 PSET이 표시됩니다. 그러나 그것은 당신이 할 수있는 밝혀 이런 일을한다. 사용자의 선택 스타, ON 지퍼 가입하세요 사용자는 지퍼 지퍼는 지퍼를 점 동일 점. 어떤 작은 말의이다, 일반적으로 인정 하듯이,하지만 단지 에서 선택 모든 것을 의미합니다 내 사용자 테이블을 복용의 과정 내 지퍼 테이블. 하나를 가입 필드들은 열에 있습니다. 그래서, 말 그대로 뭔가를하고 이런 식으로, 다시 줘 새 임시 테​​이블 즉, 즉 더 큰, 더 넓은이다 즉, 모두가 둘의 열. 그리고는, 아주 간단하게 될 것입니다 이 같은 작업을 수행하기위한 구문. 따라서, 앞으로이있다 하지만 거기에 무슨 다른 디자인 결정을 할하려면거야 뿐만 아니라 인덱스, 확인해야 또한 문제로 실행. 사실, 문제있다 데이터베이스 설계 이에 때로는 두 사람이 할 수 있습니다 데이터베이스의 동일한 행에 액세스 할 테이블. 그래서,이 일이 우리가 거​​ 야입니다 뿐만 아니라 PSet7에 발생합니다. 하지만 난 하나 봐 줄 알았는데 SQL에서 가능 공격. 의 일부를 무엇입니까 발생할 수있는 문제? 그래서, 당신은 PSet7이 발생할 수 있습니다. 그리고 우리는 크게 무엇을 당신에게 이 문제에 대한 코딩 솔루션이다. 하지만 당신은 더 높은 수준의 클래스를 가지고가는 경우에, 특히, 운영 시스템, 당신은 만날거야 자성의 문제, 일을하려고하는 문제 여러 가지 한 번에 중단없이. 그리고 나는이 소개 줄 알았는데 은유와 PSet7에 대한 생각 나는 마고 자신을 배운 탄산수의 CS164 운영 체제 전 클래스 년. 당신이이 기숙사 중 하나를 가지고 있다고 가정하자 기숙사 나 집에 냉장고, 당신은 우유에 대한 실제 경향이있다. 그래서, 당신은 클래스에서 집에 와서 어느 날, 당신은 냉장고를 엽니 다. 아, 젠장. 냉장고에는 우유가 없습니다. 그래서, 당신은 냉장고를 닫습니다, 문을 잠 기숙사를 잠금, 코너 산책 CVS에, 줄 수, 일부 우유 체크 아웃 시작합니다. 그리고, 시간이 걸릴 것 그 빌어 먹을 셀프 체크 아웃 때문에 카운터 어쨌든 사용 영원히 걸릴. 그래서 그 사이에, 당신의 룸메이트가 집에 온다. 그 또는 그녀는 정말뿐만 아니라 우유를 좋아한다. 그들은 기숙사 방에 와서, 냉장고를 열고, 오, 그것을 터무니. 더 이상 우유가 없습니다. 그래서, 그 또는 그녀는 또한 모퉁이 간다. 하지만 지금은, 이후이 같은있다 또는 서너 CVSes 근처, 그들 중 하나에 갈 일이 광장에서 다른 사람. 그리고 지금, 몇 분 당신 이후, 모두 집에 와서 지금까지 우, 최악의 문제. 지금 당신은 너무 많은 우유가 이 신 갈 것 때문에. 그리고 당신은 우유를 좋아하지만, 정말 우유를 좋아하지 않는다. 이제, 이것은 비싼 것이었다 실수 둘 때문에 를 기반으로 결정을 일부 변수의 상태 그 과정에 참여 당신에 의해 변경되고, 우유를 얻기 위해가는 개시. 그럼, 아마도 인간 그 문제에 대한 해결책? 청중 : [들리지] 데이비드 마란은 : 오른쪽 메모를 남겨? 당신이 있다면 항상 메모를 남겨 그 쇼에 대해 잘 알고. 네, 우리의 두 가지가 있습니다. 그래서, 항상 메모를 남겨, 또는 말 그대로 냉장고를 잠글 자물쇠의 어떤 종류 또는 그런 맨 위에 뭔가. 그러나 실제로 될 것 데이터베이스 설계와 핵심 문제, 당신은 할 수 있습니다, 특히 여러 브라우저, 여러 노트북, 여러 사용자가 모든 시도 한 번에 정보를 업데이트 할 수 있습니다. 특히 민감한 정보 금융 정보 등 이에 주식 거래와 당신 같은 웹 사이트를 구축 할 것입니다, 당신은 얼마나 많은 돈을 확인하려면 무엇을 당신이 다음 당신이 충분히있는 경우, 일부 주식을 구입? 그러나 만약 다른 사람 당신과 함께 공동 계정을 가지고 동시에 시도 일부 주식을 구입 하는가? 그래서, 그 또는 그녀를 검사 둘 계정 잔액, 같은 돌아 가야 대답은, 어떤 우유가 없습니다. 아니면 둘 다, 답을 다시 얻을 당신은 계정에 $ 100이 있습니다. 당신의 모두 결정을 만들려고 일부 회사 주식의 일주를 구입합니다. 그리고 지금, 무슨 일이? 당신은 이주가? 당신은 주식이 없다? 같은 문제가 발생할 수 있습니다. 그래서, 우리는이 발생할 수 있습니다. SQL 주입 공격, 다행히도, 우리가 당신을 도울 것입니다 뭔가, 그러나 이들은 atrociously 있습니다 여전히 일반적인 요즘. 그래서, 이것은 단지 예입니다. 나는 어떤 주장을하지 않습니다 그 하버드 PIN 시스템이다 이 특정 공격에 취약. 우리는 시도했습니다. 그러나, 당신이 알고 우리가 이 같은 필드가 있습니다. 그리고 예일의 인터넷 ID가 비슷한이 요즘 화면을 찾고. 그리고 그것은, 밝혀 어쩌면 PIN 시스템은 PHP에서 구현된다. 이 were-- 만약 그들이 하죠 그래입니다 이처럼 보이는 코드가있을 수 있습니다. 그들은 두 개의 변수가 있습니다. 나에게 사용자 이름과 암호를 제공 포스트 슈퍼 전역 변수에서 우리는 이전에 대해 얘기하는 것이. 아마 하버드​​ 쿼리를 가지고 사용자의 선택 스타처럼 여기서 사용자 이름이 그와 동일 및 암호는 동일합니다. 그리고 난 그냥 해요 통지 사용에 연결해 서로 중괄호 표기법 그냥 값을 연결 수단 일, 여기에. 나는를 사용하지 않는거야 물음표 기술. 나는 어떤 두 번째가 없습니다 또는 세 번째 인수. 난 그냥 그대로 해요 문자열 자신을 구성. 문제는, 비록 있다는 누군가가 scroob를 좋아하는 경우에, 이는 영화에 대한 참조입니다, 이런 일에 기록, 나는 점을 삭제했습니다 일반적으로 은폐하는 것이 그가 어떤 경우 암호, 특히 악성 자신의 암호는 아마도, 12345 라는 영화 당 "Spaceballs" 그러나 그는 매우 유형 오 후 작은 따옴표, 다음 문자 또는 단어 공간에서 다음을 인용, 인용을 끝내 하나가 인용 한 동일 그러나 그는 무엇을 생략 고시? 그는 오른쪽에 따옴표를 생략있어 그는 왼쪽에 따옴표를 생략합니다. 때문에 만약이 공격자 scroob의 추정 사람이 쓴 것입니다 이 PHP 코드는, 너무 밝은하지 않았다 어쩌면 그들은 단지 어떤 하나의이 보간 따옴표 중괄호의 변수? 그래서 어쩌면, 그는 종류의 수 자신의 생각을 완료 그들을 위해,하지만 방법으로 그 일이야 그 PIN 시스템을 해킹 할 수 있습니다. 즉, 가정 이것은 코드가 있는지 우리는 지금 입력 scroob 무엇에 연결합니다. 나쁜이기 때문에 그리고, 빨간색입니다. 그리고 기본 텍스트 그는에 입력 한 내용이다 scroob 하버드의 서버를 속일 수 SQL 쿼리를 구성에 이처럼 보이는 문자열입니다. 비밀번호는 12345 또는 하나 하나에 해당 같습니다. 그 결과 그 중, 논리적으로, 이 scroob를 기록 할 것입니다 그의 암호 인 경우에 12345 경우 또는 하나의 동등한 항상 물론 사실 하나, 어떤 scroob 항상에 들어갔을 의미한다. 그래서, 방법은 해결하기 이, 많은 경우에서와 같이, 수비를 작성하는 것입니다. 같은 것을 사용하여 우리의 실제 쿼리 기능, 어떤 당신은 우리가 플러그 PSet7에 볼 수 있습니다 질문과 같이 여기에 표시합니다. 그리고의 아름다움 쿼리 기능이 우리 당신이 이들에 대해 방어입니다 제공 소위 SQL 주입 공격, 누군가에 코드를 속여됩니다 자신의 SQL 코드를 주입​​. 어떤 쿼리 기능 때문에 우리는 당신이 실제로 할 것입니다 제공, 당신은 물음표 구문을 사용하는 경우 그리고 두 번째와 여기에 세 번째 인수, 가 추가 한 일이다 사용자가 한 것으로 입력? 그 백 슬래시 인용. 그래서, 어떤 잠재적 탈출 위험한 문자. 이것은, 지금 이상한 보인다 하지만 취약 아니다 그것은하지 않기 때문에 이상 논리를 변경할 그 모든 비밀이기 때문에 지금은 아니다 작은 따옴표, 사실, scroob의 암호를 입력합니다. 그래서, 약간의 농담이있었습니다 지난 몇 년 동안이 약. 그래서,이 사진을 찍은 주차장에서 약간 괴짜의 이에 해당 일부 도시를 알 수 있습니다 및 상태는 라이센스를 검색하려고 플레이트는 나 티켓을 청구하는 방법 이 같은없이 통과하는 경우, E-Z 패스 것. 그래서,이 사람은 아마 것으로 추정 E-Z 패스 시스템을 쓰는 사람들 너무 밝은하지 않았다, 어쩌면 그들은 그냥 문자열을 함께 연결된, 그래서 그 또는 그녀는 악의적 할 수 없었다 그들의 생각을 완료하지, 하지만 실제로는 잘못된 명령을 실행, 이는 우리가 아직 언급되지 않은 한 하지만 당신은 아마 추측 할 수있다. 또한 그 삭제하고 삽입 및 업데이트를 선택, 드롭라는 키워드도있다, 있는 그대로 모든 내용이 삭제 데이터베이스에있는 특히 나쁘다. 우리는이 경우 확대 할 수 있습니다 그것을보고 조금 힘듭니다. 이것은, 지금은 유명한 만화입니다 즉, 지금 멋지고 똑똑 하고 이해. [웃음] 멋진, 그래. 종류의 어쩔 줄. 이러한 그래서, 다음,있다 SQL 주입 공격. 그리고 그들은 사용하여 피하기 위해 너무 쉽다 오른쪽 코드 또는 오른쪽 라이브러리. 그리고 당신은, 그건 PSet7에 볼 수 있습니다 왜 우리는 당신에게 쿼리 기능을 제공합니다. 그래서, 맛보기 몇 우리는 우리가 거​​라고 생각했다 여기에 당신을 줄 우리의 함께 분 남아. 그래서, 당신은 주 0에서 기억, 우리 이 두 개의 전구를 도입하는 아르 니스, 단지 때문에 그들은 꽤있어 다채로운 있습니다, 하지만 그들은 뭔가를 지원하기 때문에 응용 프로그램, API 호출 프로그래밍 인터페이스 CS50에 지금까지, 우리는했습니다 대부분 GET에 초점을 맞추고 POST는 있지만 밝혀 PUT과 같은 다른 HTTP 동사가있다. 사실, 이것은이었다 주 0에서 슬라이드 이에 당신이 코드를 작성하는 경우 그 전송 라 PSet6 HTTP 요청이 텍스트의 덩어리와 같다 JSON라고 바닥에, 또는 자바 스크립트 객체 표기법 것을 우리는 다음 주에 대해 이야기 할 것입니다, 당신은 켜거나 끄거나 변경할 수있는 그와 같은 빛의 색상. CS50 또한 일부 이외에 가지고 있다면 뉴 헤이븐에서 여기 전구 당신은 빌려하려는 경우 그 최종 프로젝트, 또한 일부 Microsoft 처럼 밴드, 당신이 당신의 손목에 착용하는 것이 시계 유사 있도록하는 API가 있음 그들을 위해 자신의 소프트웨어를 작성할 수 있습니다. 우리는 계정이 애플의 아이폰 OS 코드 때문에 당신은 애플 시계 나있는 경우 아이폰이나 아이 패드 또는 아이팟, 당신은 코드를 작성 할 수 있습니다 실제로 그에서 실행됩니다. 우리는 전체 무리가 이다의 아두 이노, 작은 작은 컴퓨터 케이스없이 본질적 USB를 통해 연결할 수 있는지, 일반적으로 자신의 Mac 또는 PC에, 이러한 물리적에서 실행되는 코드를 작성 자주에 센서가있는 장치 그래서 당신은 현실 세계와 상호 작용할 수 있습니다. 우리는 전체 무리가 립 모션 디바이스, Mac 용 USB 장치있는 및 여기에 다시, 뉴 헤이븐에있는 PC를,. 그리고 당신이 당신의 맥에 연결하면, 당신은 실제로 컴퓨터를 제어 할 수 있습니다 소프트웨어를 작성하여 그 적외선 빔을 통해, 당신의 인간의 손이 어디에 있는지 파악한다, 당신의 키보드를 건드리지 않고. 우리는 우리가 빠른을 공유하고자합니다 예를 들어,이에서 엿볼. [음악 재생] 그래서, 우리는 전체가 이러한 것들의 무리, 도 묘 암 밴드라고 이는 당신이 당신의 팔뚝을 통해 넣어 그리고 당신은 현실을 제어 할 수 있습니다 세계 또는이 같은 가상 세계. [음악 재생] 아니면, 우리는 또한 몇 가지 구글이 같은, 말 그대로 판지, 당신이에 넣을 수있는 골 판지 상자 당신의 그것으로 휴대폰의 얼굴,하지만 슬라이드 그래서 당신의 유리를 넣어 당신의 당신의 눈에 정말 가까이 전화. 구글 골판지입니다 $ 10, $ 20 꽤 저렴한. 그리고 작은 렌즈를 가지고 그 약간 변화 오프 당신의 인간에 대한 화면의 이미지 눈은 당신에게 깊이의 감각을 제공합니다 그래서 당신은 실제로 3D가 있는지 당신의 앞에 환경을 제공합니다. 우리는 또한 일부 삼성 기어를 가지고있는 이러한 고가의 버전이고, 하지만 유사에 밀어 수 있습니다 안드로이드 폰과 당신에게 환상을 제공 동행입니다 또는 경험을 제공 가상 현실의. 그리고 우리의 마지막 두 분, 우리는 우리가이 작업을 수행하려고 할 것이라고 생각합니다. 나는 콜튼이 무슨 투사 할 수있는 경우 여기에 당신의 식욕을 자극하는, 내가 가서 던져 보자 여기에 큰 화면에. 내가 불을 죽일 수 있습니다. 콜튼, 당신은 가서하고 싶어 그리고 잠시 동안 당신의 세포에 넣어 그리고까지 와서 단계의 중간? 그리고 당신은 project--하고 싶어 이 콜튼가 보는 것입니다. 지금, 여기에 와이파이입니다 이 장치에 대한 매우 강력하지 이 슈퍼 경쟁력이다, 그러나 콜튼은 그대로입니다 이 마법의 미래 장소에서. 그는 단지 하나의 이미지를 볼 수 있습니다. 당신은 자신의 왼쪽과 오른쪽 눈을보고있다 그의 뇌는 함께 바느질됩니다 세 가지 차원에서 그의 얼굴에 환경. 그는 여기 메뉴 옵션을 선택합니다. 그리고 다시, 그는이 헤드셋을 입고 그것에 삼성 전화 그건 무선으로 우리의 오버 헤드 돌출. 지금 당신은 화성에, 생각있어? 콜튼 : 나는 그렇게 생각. 나는 [들림] 확실하지 않다. [웃음] 데이비드 마란은 : 밝혀 화성은 이러한 메뉴가 있습니다. 콜튼 : [들림] 멋진 장소는 우리가 이러시면 가고 싶은 경우 데이비드 마란 : 우리는 어디 가고 싶어? 콜튼 : [들림] 데이비드 마란 : 그리고 보자 어디 콜튼의 지금 우리를 복용. 콜튼 : [들림] 데이비드 마란 : 그래서, 많은있다 다른 장소 당신은 자신을 취할 수 있습니다. FAPIs가 어떤을 통해 당신은 할 수 있어요 게임이나 상호 작용을 쓰기 그 전화, 궁극적으로 실행합니다. 그래서, 당신 정말 휴대 전화 응용 프로그램을 작성. 그러나 소프트웨어 덕분에 및 그래픽 기능, 지금 콜튼이에 작은 작은 오두막. 그리고 위험 자신을 압도, 콜튼 나는 주위에 충실 할 것이다 동안 여기에 클래스의 끝에 오늘에 당신이 와서 연주하고 싶은 경우. 그리고 우리는 그들에게 가져다 드릴게요 다시 다음 주뿐만 아니라. 더없이 ADO를 그 오늘을 위해 그것을이다. 우리는 다음 주에 볼 수 있습니다. [음악 - RAGGA 쌍둥이, "나쁜 남자"]