MySQL 기초

변경

UPDATE

데이터를 수정

문법

UPDATE 테이블명 SET 컬럼1=컬럼1의 값, 컬럼2=컬럼2의 값 WHERE 대상이 될 컬럼명=컬럼의 값

예제

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` tinyint(4) NOT NULL,
  `name` char(4) NOT NULL,
  `sex` enum('남자','여자') NOT NULL,
  `address` varchar(50) NOT NULL,
  `birthday` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `student` VALUES (1, '이숙경', '여자', '청주', '1982-11-16 00:00:00'); 
INSERT INTO `student` VALUES (2, '박재숙', '남자', '서울', '1985-10-26 00:00:00');
INSERT INTO `student` VALUES (3, '백태호', '남자', '경주', '1989-2-10 00:00:00');
INSERT INTO `student` VALUES (4, '김경훈', '남자', '제천', '1979-11-4 00:00:00');
INSERT INTO `student` VALUES (8, '김정인', '남자', '대전', '1990-10-1 00:00:00');
INSERT INTO `student` VALUES (6, '김경진', '여자', '제주', '1985-1-1 00:00:00');
INSERT INTO `student` VALUES (7, '박경호', '남자', '영동', '1981-2-3 00:00:00');
UPDATE `student` SET address='서울';
UPDATE `student` SET name='이진경' WHERE id=1;
UPDATE `student` SET name='이고잉', birthday='2001-4-1' WHERE id=3;

ALTER

테이블 스키마를 변경

참고 : http://sunkyu.tistory.com/71541

댓글

댓글 본문
작성자
비밀번호
  1. 신혜선
    인쇄해서 저장해두려고 했는데 ㅠㅠ 인쇄하니 파란색 글짜 부분이 안나오네요...훔...
  2. 감사합니다!
  3. JustStudy
    고맙습니다
  4. 폭풍감자
    참고에 alter 관련 블로그가 접근이 되지 않고 있습니다.
    다른 블로그나 링크를 걸어야 할 것 같습니다.
  5. 이주환
    2016. 04. 12
    정독했습니다.
  6. SK Kim
    ALTER = ALTER TABLE
  7. Wonil Shim
    강의 잘 듣고 있습니다. phpMyAdmin에서도 Update 구문처럼 여러 개의 데이터를 동시에 바꾸는 방법은 없겠죠??
  8. 참빛바다
    http://baljuhee.tistory.com/292
    여기에 남아 있네요
    대화보기
    • 키에엨
      ALTER에 관한 내용에 걸려있는 링크가 잘 작동하지 않네요!
      삭제된 게시물이라고 뜹니다.
    • Sukjae Lee
      감사합니다 ^ ^
      대화보기
      • 자바몬
        1. 대소문자 구별없이 명령어는 입력가능 하나 대소문자로 구별해서 명령문과 데이터를 구별해 주시는 거에염..

        2. 가상머신으로 돌릴때 클립보드 공유가 안되서 그래염.
        그 서버실행되면 그 화면에서 메뉴-장치-클립보드 공유-양방향
        으루 하시면 되구여 드로그앤드롭도 양방향 공유로 설정하면
        가상머신으로 복사 붙여넣기도 되구 그냥 끌어다 놔두 복사가 되여
        대화보기
        • Sukjae Lee
          안녕하세요. 두가지 여쭈어 보고 싶은게 있습니다.
          1. sample code를 보면 모두 대문자로 작성이 되어있는데요, 리눅스 터미널에 쳐보면 소문자도 되더라구요. 혹 대문자로 작성하신 이유가 있나요?

          2. 윈도우로 리눅스 vm돌릴때 복사 붙혀 넣기를 어떻게 하나요...? 리눅스 강좌를 다 들었는데 그 부분을 놓친거같네요...ㅠㅠ

          항상 감사합니다.
        • WayneKing
          으악~~~~~~~~~~~~~~~~~~~~~~~~~
        • 풍운
          '테이블 스키마를 변경'에서 참고 URL이 존재 하지 않네요..

          강의 잘 보고 갑니다.
        • 생코매니아
          데이터베이스의 컬럼중에 integer를 저장하는 값이 있을경우 이 값을 기존값에서 하나 증가시키는 방법은 어떻게 해야 하나요?
        • 나무마루
          ALTER에 나와 있는 주소는 이제 사용할 수 없는 것 같습니다. 변경이 필요합니다.
        • 샤핀
          윈도우 cmd 창으로 따라가시는 분들을 위한 한글깨짐 해결 링크
          mysql> set character set euckr; <---- ※ mysql상에서 설정을 바꿔 주시면 됩니다. 그런데..cmd 창을 새로 켤때? 마다 항상 다시 명령어를 처서 세팅해줘야 하는 번거로움이 있네요. 흐음..

          http://batmask.net......465

          cmd 창은 한글 입력을 euckr로 해주기 때문에 utf8 인코딩과 달라서 문제가 생기나 봅니다.
          그래서 cmd 창을 클라이언트로 쓰는 경우라면 mysql 클라이언트 설정에 euckr로 변경해 주는 것이 포스팅의 골자 입니다.

          잘 넘기지 못하는 타입이라.. 구글링하다 보니... 생활코딩 유저가 정리한 좋은 글이 발견되었습니다.
          이런 egoing님이 알면 흐뭇할 일은 알려야겠기에 ㅋㅋ.
          확인해 보니 한글이 깨지지 않습니다. ^^
          대화보기
          • egoing
            좋은 전략 입니다!
            대화보기
            • 샤핀
              전 그냥 윈도우 cmd 창에서 실행하면서 따라가고 있는데, 이름이나 주소의 한글이 공백처럼 나와서 아무것도 안보이네요. 흠..일단 한글 상의 문제라고 생각하고 넘겨야겠네요.
            • NCmasan
              프롬프트창에서 select * from student; 치고 실행할 때 name의 데이터들이 두글자로 짤려서 나옵니다
              name
              이숙
              박재
              백태
              ...
              이렇게요
              세글자로 제대로 보이게 하려면 어떻게 해야하나요??
            • jager
              [1] 명령프롬프트에서 한글이 깨지게 보여질 때.

              명령프롬프트에 set names euckr; 입력 해주세요.

              [2] 명령프롬프트에서 입력한 데이터가 phpmyadmin에서 한글이 깨지게 보여질때

              1. 가장 먼저 확인할 것은, 데이터 베이스를 생성할 때 utf8로 만들었는가 하는 것이에요
              기본 값이 라틴이거든요

              2. phpmyadmin으로 한글을 입력하면 잘 표시되요
              그런데 php에서 값을 가져오면 깨저요

              3. mysql 명령프롬프트 실행해서 한글로 저장된 값과 데이터 베이스의 캐릭터 셋을 확인해보면

              use 데이터베이스이름;

              select * from 테이블이름;
              status;

              한글이 깨지고 캐릭터 셋이 라틴으로 되어있어요
              다음과 같이 입력하고


              set character_set_client=utf8;
              set character_set_results=utf8;
              set character_set_connection=utf8;
              set character_set_server=utf8;
              alter database 데이터베이스이름 default character set utf8;
              commit;

              4. php 소스에서

              mysql_select_db('데이터베이스이름',$db_conn);
              mysql_query("SET NAMES utf8");

              이렇게 하고 페이지를 출력해보면 한글이 잘 나와요
            • Starmomo
              [데이타 변경] UDATE ... SET ... WHERE ... 를 사용하며, 컬럼은 ,(콤마)를 사용하여 복수의 컬럼 데이타를 변경할 수 있다.
              UPDATE `table name` SET clumum_name1=`value`, clumum_name2=`value`, clumum_name=`value`, WHERE primary_key=`value`
            • Egoing
              예 맞습니다. 근데 만약 테이블명으로 create와 같은 예약어를 쓰거 싶은 경우 필요하구요. update등을 대문자로 사용하는 것은 그렇게 하면 데이터와 sql을 쉽게 구분할 수 있기 때문입니다
              대화보기
              • Lee. Seong Gwan
                table name에 ` <- 이 부호를 사용 안해도 명령이 제대로 실행되는 것 같습니다.안써도 되나요?, 그리고 UPDATE, SET 등 대문자 명령어을 소문자로 써도, 실행 되는것 같네요
              버전 관리
              egoing
              현재 버전
              선택 버전
              graphittie 자세히 보기