SQL 기초 연습 문제 그룹 - 19 문제

6057 단어 기초SQL
SQL 기초 연습 문제 그룹 - 19 문제
  • 문제 면
  • 문제 와 해답
  • 제목 은 윌 카 티 에서 유래 했다.작가 님 께 서 연습 자 료 를 제공 해 주 셔 서 감사합니다.
    표제 면
    표 student 과 score 가 두 장 있 습 니 다. 표 의 필드 정 의 는 다음 과 같 습 니 다. student:
    필드 이름
    필드 설명
    데이터 형식
    메 인 키
    외부 키
    헛 되 지 않다
    유일 하 다
    늘다
    id
    학 번
    INT(10)
    예.
    아니.
    예.
    예.
    예.
    name
    성명.
    VARCHAR(20)
    아니.
    아니.
    예.
    아니.
    아니.
    sex
    성별.
    VARCHAR(4)
    아니.
    아니.
    아니.
    아니.
    아니.
    birth
    출생 연도
    YEAR
    아니.
    아니.
    아니.
    아니.
    아니.
    department
    학과
    VARCHAR(20)
    아니.
    아니.
    아니.
    아니.
    아니.
    address
    집 주소
    VARCHAR(50)
    아니.
    아니.
    아니.
    아니.
    아니.
    score:
    필드 이름
    필드 설명
    데이터 형식
    메 인 키
    외부 키
    헛 되 지 않다
    유일 하 다
    늘다
    id
    번호
    INT(10)
    예.
    아니.
    예.
    예.
    예.
    stu_id
    학 번
    INT(10)
    아니.
    아니.
    예.
    아니.
    아니.
    c_name
    수업
    VARCHAR(20)
    아니.
    아니.
    아니.
    아니.
    아니.
    grade
    분수
    INT(10)
    아니.
    아니.
    아니.
    아니.
    아니.
    문제 와 해답
  • student 와 score 표 만 들 기
  • create table student(
    id int(10) not null unique primary key,
    name varchar(20) not null,
    sex varchar(4),
    birth year,
    department varchar(20),
    address varchar(50)
    );
    
    create table score(
    id int(10) not null unique primary key auto_increment,
    stu_id int(10) not null,
    c_name varchar(20),
    grade int(10)
    );
    
    
  • 두 장의 표 에 기록 을 추가 합 니 다 student:
  • id
    name
    sex
    birth
    department
    address
    901
    맏형
    남자.
    1985
    컴퓨터 학과
    해정 구, 베 이 징 시
    902
    장 씨 둘째
    남자.
    1986
    중문 과
    북경
    903
    장삼
    여자.
    1990
    중문 과
    호남성 영주 시
    904
    이사
    남자.
    1990
    영어과
    푸 신, 랴오닝 성
    905
    왕 오
    여자.
    1991
    영어과
    복건성 하문 시
    906
    왕 육
    남자.
    1988
    컴퓨터 학과
    호남성 형 양 시
    insert into student values(901,'   ',' ',1985, '    ','      ');
    insert into student values(902,'   ',' ',1986,'   ','      ');
    insert into student values(903,'  ',' ',1990,'   ','      ');
    insert into student values(904,'  ',' ',1990,'   ','      ');
    insert into student values(905,'  ',' ',1991,'   ','      ');
    insert into student values(906,'  ',' ',1998,'    ','      ');
    

    score:
    id
    stu_id
    c_name
    grade
    NULL
    901
    컴퓨터.
    98
    NULL
    901
    영어.
    80
    NULL
    902
    컴퓨터.
    65
    NULL
    902
    중국어.
    88
    NULL
    903
    중국어.
    95
    NULL
    904
    컴퓨터.
    70
    NULL
    904
    영어.
    92
    NULL
    905
    영어.
    94
    NULL
    906
    컴퓨터.
    90
    NULL
    906
    영어.
    85
    insert into score values(null,901,'   ',98);
    insert into score values(null,901,'  ',80);
    insert into score values(null,902,'   ',65);
    insert into score values(null,902,'  ',88);
    insert into score values(null,903,'  ',95);
    insert into score values(null,904,'   ',70);
    insert into score values(null,904,'  ',92);
    insert into score values(null,905,'  ',94);
    insert into score values(null,906,'   ',90);
    insert into score values(null,906,'  ',85);
    
  • student 표 의 모든 기록 조회
  • select * from student;
    
  • student 표 의 제2 조 에서 4 조 기록 조회
  • select * from student limit 1,3;
    
  • student 표 에서 모든 학생 의 학 번 (id), 이름 (name) 과 학과 (depart. ment) 의 정 보 를 조회 합 니 다
  • select id,name,department from student;
    
  • student 표 에서 컴퓨터 학과 와 영문 과 학생 들 의 정 보 를 조회 합 니 다
  • select * from student where department in ('   ', '  ');
    
  • student 표 에서 나이 18 ~ 22 세 학생 정보 조회
  • select * from student where year(curdate())-birth between 18 and 22;
    
  • student 표 에서 각 학과 에 몇 명 이 있 는 지 조회
  • select department, count(*) as student_num from student group by department;
    
  • score 표 에서 각 과목 의 최고 점 수 를 조회 합 니 다
  • select c_name, max(score) from score group by c_name;
    
  • 이사 의 시험 과목 (c name) 과 시험 성적 (grade)
  • 조회
    select c_name, grade from score,student where score.stu_id = student.id and student.name = '  ';
    
  • 모든 학생 의 정보 와 시험 정 보 를 연결 방식 으로 조회
  • select * from student inner join score on student.id= score.stu_id;
    
  • 학생 당 총 성적 계산
  • select stu_id, sum(score) as total_score from score group by stu_id;
    
  • 시험 과목 당 평균 성적 계산
  • select c_name, avg(score) as avg_score from score group by c_name;
    
  • 컴퓨터 성적 이 95 보다 낮은 학생 정보 조회
  • select * from student where id in (select stu_id from score where c_name = '   ' and score < 95);
    
  • 컴퓨터 와 영어 시험 을 동시에 치 르 는 학생 들 의 정 보 를 조회
  • select * from student where id in (select stu_id from score
    where c_name in ('   ','  ') group by stu_id having count(*) = 2);
    
  • 컴퓨터 시험 성적 을 높 은 것 에서 낮은 것 으로 정렬
  • select * from score where c_name = '   ' order by score desc;
    
  • student 표 와 score 표 에서 학생 의 학 번 을 조회 한 다음 에 조회 결 과 를 합 친다
  • select id from student
    union
    select stu_id from score;
    
  • 장 씨 나 왕 씨 를 가 진 친구 의 성명, 학과 와 시험 과목 및 성적 조회
  • select name, department, c_name, score from student inner join score
    on student.id = score.stu_id where name like ‘[  ]%’;
    
  • 조 회 는 모두 호 남 의 학생 들 의 성명, 연령, 학과 와 시험 과목 및 성적
  • 이다.
    select name, year(curdate()) - birth as age, department,c_name, score from student inner score on student.id = score.stu_id where address like '  %';
    

    좋은 웹페이지 즐겨찾기