본문 바로가기

데이터베이스8

[MySQL] ERROR 1822 (HY000): Failed to add the foreign key constraint - 외래키 제약조건의 삭제 & 추가를 통한 외래키 변경 방법 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 외래키 제약조건을 설정해주거나 외래키 설정을 바꿔줄 때 발생하는 오류를 해결하는 방법에 대해서 알아보겠습니다. 제거할 제약조건의 이름 확인 # 테이블명이 student인 테이블의 제약조건 목록을 확인 mysql> SELECT * FROM information_schema.table_constraints WHERE table_name='student'; +--------------------+-------------------+-----------------+--------------+------------+-----------------+-------.. 2021. 10. 2.
[MySQL] 데이터를 검색, 삽입, 삭제, 갱신하는 명령어 모음 및 예제 정리 - SELECT, INSERT, DELETE, UPDATE 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 테이블 안에 저장된 데이터를 삽입, 갱신, 삭제하는 DML(Data Manipulation Language) 명령어에 대해서 알아보겠습니다. SELECT - 테이블 안에 저장된 데이터(튜플)를 검색 # student 테이블의 전체 속성에 대해서 존재하는 모든 데이터를 검색 mysql> SELECT * FROM student; mysql> SELECT student.* FROM student; mysql> SELECT stdnum, stdname, major, sex, birthdate, phonenum FROM student; mysql> SELECT.. 2021. 9. 29.
[MySQL] 사용자 권한을 부여, 조회, 취소하는 명령어 모음 및 예제 정리 - GRANT, SHOW, REVOKE 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 데이터베이스의 사용자에게 권한을 부여하고 취소하는 명령어인 DCL(Data Control Language)에 대해서 알아보도록 하겠습니다. GRANT - 데이터베이스 사용자에게 권한 부여 # test@localhost 계정에 모든 권한 부여 mysql> GRANT ALL [PRIVILEGES] ON user TO test@localhost; Query OK, 0 rows affected (0.01 sec) # test1@localhost 계정에 SELECT, INSERT, UPDATE, DELETE, ALTER 권한 부여 mysql> GRANT SEL.. 2021. 9. 28.
[MySQL] 사용자 계정을 생성, 삭제 및 계정 목록을 확인하는 명령어 및 예제 정리 - CREATE USER, DROP USER 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 root 계정 외에 별도의 사용자 계정을 생성하고 삭제하는 명령어를 알아보도록 하겠습니다. 사용자 계정 목록 확인 mysql> USE mysql; Database changed mysql> SELECT host, user, authentication_string FROM user; +-----------+------------------+------------------------------------------------------------------------+ | host | user | authentication_string | +------.. 2021. 9. 27.
[MySQL] 인덱스를 생성, 조회, 삭제하는 명령어 및 예제 정리 - CREATE INDEX, ADD INDEX, SHOW INDEX, DROP INDEX 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 인덱스는 데이터베이스(스키마), 뷰와 마찬가지로 변경이 불가능하므로 생성, 조회, 삭제하는 명령어만 알아놓도록 합니다. CREATE INDEX - 인덱스 생성 및 정의 # student 테이블의 stdname 속성을 오름차순으로 정렬하는 name_idx 인덱스를 생성하고 UNIQUE 특성을 부여함 mysql> CREATE [UNIQUE] INDEX name_idx ON student(stdname [ASC]); Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 'UNIQUE'가 사용되면 .. 2021. 9. 27.
[MySQL] 뷰를 생성, 조회, 삭제하는 명령어 및 예제 정리 - CREATE VIEW, SHOW CREATE VIEW, DROP VIEW 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 뷰는 데이터베이스(스키마)와 마찬가지로 변경이 불가능하므로 생성, 조회, 삭제하는 명령어만 알아놓도록 합니다. CREATE VIEW - 뷰 생성 및 정의 mysql> DESC student; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | stdnum | varchar(10) | NO | PRI | NULL | | | s.. 2021. 9. 26.
[MySQL] 데이터베이스(스키마)를 생성, 조회, 삭제하는 명령어 및 예제 정리 - CREATE DATABASE(SCHEMA), SHOW DATABASES(SCHEMAS), DROP DATABASE(SCHEMA) 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 데이터베이스(스키마)는 변경이 불가능하므로 생성, 조회, 삭제하는 기능만 알아놓도록 합니다. CREATE DATABASE(SCHEMA) - 데이터베이스(스키마) 생성 mysql> CREATE DATABASE mydb; Query OK, 1 row affected (0.01 sec) mysql> CREATE SCHEMA mydb2; Query OK, 1 row affected (0.01 sec) MySQL에서 'CREATE DATABSE'와 'CREATE SCHEMA'는 동일하게 데이터베이스를 생성하는 역할을 수행합니다. SHOW DATABASES(SCHEMAS) - 전.. 2021. 9. 26.
[MySQL] 명령 프롬프트(cmd) 환경에서의 접속 및 비밀번호 확인 & 변경 방법 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 1. MySQL 접속 및 DB 사용 mysql -u root -p # MySQL 접속 # Enter password: 변경_전_비밀번호_입력 mysql> use mysql # MySQL DB 사용 # Database changed 여기서 주의할 점! 숫자 키패드를 사용하는 경우 'Num Lock'이 켜져 있어야 제대로 입력이 들어간다. 2. 현재 비밀번호 확인 mysql> select host, user, plugin, authentication_string, password_last_changed from user; host는 접속이 허용된 IP, user는 mysq.. 2021. 9. 25.