~ tilde * asterisk, star ' apostrophe, qutation mark, quote ` backtick, grave accent - hyphen, dash " double qutation mark, double quoutes ! exclamation _ underscore , comma @ at + plus sign . dot # number sign, hash, sharp = equals sign / slash $ Dollar sign | vertical bar, pipe () round bracket, parentheses % percent \ backslash {} culry braket, brace ^ caret ; semicolon [] square bracket & am..
SELECT 문 SELECT 문은 데이터베이스에서 데이터를 검색할 때 사용하는 SQL의 가장 기본적인 쿼리입니다. 조회를 위한 명령어의 구조는 다음과 같습니다, --모든 열을 포함한 조회 SELECT * FROM 테이블명; --조회할 열이름을 나열 SELECT 열1, 열2 FROM 테이블이름; 기본적인 SELECT 문 가장 기본적인 형태의 SELECT 문은 * 를 이용해 모든 열(컬럼)을 선택하는 방법입니다. SELECT * FROM students; 특정 열(컬럼)을 선택하는 SELECT 문 특정 열을 선택해서 모든 열이 노출되지 않고 필요한 열만 검색할 때 사용합니다. 보통 SELECT 문을 만들 때는 모든 열이 필요하지 않으므로 특정 열만 선택해서 검색하는 것이 일반적입니다. SELECT stude..
INSERT 문 MySQL에서 INSERT 문은 Database에 새로운 행(레코드)를 추가하는 구문입니다. 데이터베이스에 값을 입력하는 기능을 하는 문장 정도로 생각하시면 됩니다. INSERT 구문의 기본적인 형태는 다음과 같습니다. 테이블명에 데이터를 삽입하기 위한 테이블을 기입하고 각 컬럽과 이에 대응하는 값을 VALUES 에 나열하면 됩니다. INSERT INTO 테이블명 (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); INSERT 문 예제 학생이라는 테이블이 있고 학생의 이름, 나이, 이메일을 삽입하는 예제를 만들어보겠습니다. INSERT INTO students (name, email, age) VALUES ('장발..
BETWEEN 구문 BETWEEN 구문은 데이터베이스에서 특정 범위의 값들을 선택하는 데 사용되는 SQL 구문입니다. 주로 숫자, 날짜 또는 문자열 값의 범위를 지정하여 해당 범위에 속하는 데이터를 추출하는 데 활용됩니다. 날짜를 예로 들어보면 다음과 같이 사용할 수 있습니다. 데이터베이스를 사용할 때 어디서 부터 어디까지의 범위의 데이터를 출력하고 싶을 때 사용됩니다. 대표적으로 어떤 기간내의 데이터를 출력하기 위해서 날짜와 연관해서 많이 사용됩니다. 다음 예제는 2024년 1월 1일 부터 2월 1일 사이의 데이터를 검색하기 위한 SQL입니다. SELECT * FROM [테이블 명] WHERE [컬럼명] BETWEEN '2024-01-01' AND '2024-02-01'; 다음과 같이 숫자의 범위를 통..
IN 연산자 IN 연산자는 데이터베이스에서 특정 조건을 만족하는 값들의 집합을 검색하는데 사용되는 SQL 구문입니다. 주로 WHERE 절에서 사용되며, 다수의 값 중에서 하나라도 조건을 만족하는 경우 해당 레코드를 선택합니다. 주로 WHERE 절에서 사용되며, 다수의 값 중에서 하나라도 조건을 만족하는 경우 해당 레코드를 선택합니다. SELECT * FROM [테이블명] WHERE [칼럼명] IN ([조건1], [조건2], [조건3]); IN 연산자 활용 OR를 통해서 특정 조건에 만족하는 값들의 집합을 검색해보겠습니다. 반복적인 구문을 사용해야 하기 때문에 번거롭고 가독성도 떨어집니다. SELECT * FROM users WHERE username = 'user1' OR username = 'user2..
LIKE 연산자 MySQL에서 LIKE 연산자는 패턴 매칭을 수행하는 데 사용됩니다. 이 연산자는 문자열의 일부 또는 전체를 비교하여 특정 패턴을 가진 데이터를 검색하는 데 유용합니다. SELECT * FROM [테이블명] WHERE LIKE [조건] LIKE 연산자 패턴 % : 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%') _ : 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동') LIKE 연산자와 % 기호를 사용하는 경우, 패턴 매칭이 데이터베이스에서 모든 레코드에 대해 수행되어야 하기 때문에 성능에 영향을 미칠 수 있습니다. 일반적으로 다음과 같은 점을 고려할 수 있습니다: 인덱스 활용 여부 %로 시작하는 패턴 매칭은 인덱스를 사용하기 어려울 수 있습니다. 왜냐하면 와일드카드가 문자열의 처..
테스트 환경 및 mariadb 버전 10.6.12-MariaDB-0ubuntu0.22.04.1 Failed to Connect to MySQL at \[server ip:3306\] with user ... 데이터베이스에 연결시 문제가 되면 위와 같은 에러를 확인할 수 있습니다. 사용자가 외부에서 접근할 수 있도록 권한을 주었다고 하더라도 mysql이나 mariadb 의 경우 bind-address에 대한 설정을 해주어야 합니다. 다만 대부분의 예제가 mysql 기준으로 되어 있고 mariadb도 이전 버전의 설치 경로로 설명되어 있어 비교적 최신 버전인 10.6.12 버전에서 bind-address 설정하는 방법을 알아보겠습니다. mariadb의 ip 대역을 확인하려면 다음과 같이 netstat 명령을..
ALTER TABLE MySQL에서 RENAME 명령은 테이블의 이름을 변경하는 명령어입니다. 다수의 테이블 명을 변경하는 것은 물론 다른 데이터베이스 스키마에 특정 테이블을 이동시킬 수도 있습니다. ALTER로 테이블을 변경하는 것과 RENAME으로 변경하는 것은 동일하지만 RENAME으로 변경할 시 여러 개의 테이블을 한 번에 변경할 수 있고 또한 다른 스키마에 테이블을 이동시킬 수도 있는 장점이 있습니다. ▼ 우선 ALTER를 이용해서 테이블 이름을 변경시켜보겠습니다. (예: shopdb 데이터베이스의 dept 테이블을 emp 테이블로 변경해보겠습니다.) ALTER는 테이블의 정의를 변경하는 명령으로 이전 글 데이터베이스 기초 - 테이블(Table) 정의에 정리되어 있습니다. https://code..
스키마 생성 ▼ 새로운 스키마(데이터베이스)를 생성합니다. 사용자 관리 ▼ 사용자를 생성하고 권한을 부여합니다. ▼ 사용자의 비밀번호를 변경합니다. ▼ 사용자를 삭제합나다. ▼ 사용자의 권한 정보를 확인합니다. 사용자 관리 실습 ▼ 마지막으로 다음 조건에서 사용자를 생성하고 권한을 부여해보겠습니다. manager 계정을 만듭니다. IP 주소 (HOST) 192.168.0.77 에서 접근합니다. mydb에 모든 데이터베이스 권한을 부여합니다. 비밀번호를 paasword12 로 지정합니다. ▼ 해당 사용자가 데이터베이스에 추가되었는지 확인합니다.
Too many connections 개발을 하다 보면 여러 서버를 만들어서 데이터베이스에 접근하게 됩니다. 하지만 다음과 같은 에러를 마주하면 최대 접속 숫자를 늘려줘야 합니다. # ERROR 1040 (08004): Too many connections # Host 192.168.0.X Host is blocked because of many connection errors MySQL ▼ max_connecions 값을 확인합니다. 동시접속에 대한 값입니다. 기본값은 보통 151로 지정되어 있습니다. ▼ 다음 명령을 통해 현재 접속 중인 커넥션을 확인할 수 있습니다. ▼ 이제 max_connections 숫자를 변경해보겠습니다. 별도로 서버를 재시작하지 않더라도 잘 동작합니다만 만약 MySQL 서버를..
MySQL 터미널 PATH 설정 ▼ macOS에서 MySQL 을 설치한 뒤에 mysql 설치 경로를 확인해보면 다음과 같습니다. 그래서 mysql 명령을 실행할 수 없습니다. 따로 PATH를 설정해줘야 합니다. 최근에는 맥북에서 zsh를 기본적으로 사용되도록 변경되었기 때문에 .zshrc 파일을 수정해서 적용해야 합니다. /usr/local/mysql/bin/mysql ▼ 시스템 환경설정으로 이동해서 MySQL 설정을 선택합니다. 만약 프로그램이 설치되어 있지 않다면 다음 글을 확인해서 설치부터 해야 합니다. https://code-algo.tistory.com/29?category=950577 [MySQL] 실리콘 M1 맥에 MySQL 커뮤니티 버전 설치 및 비밀번호 설정 MySQL 커뮤니티 버전 My..
테이블 추가 DATA DEFINITION LANGUAGE (DDL)은 데이터베이스 테이블을 정의하기 위한 언어입니다. 데이터베이스는 여러 개의 테이블로 이루어져 있는 만큼 테이블 추가와 변경 삭제는 중요합니다. DDL은 테이블 구조를 변경하거나 새로 만들고 또 삭제할 수 있는 언어를 말합니다. MySQL에서 실제 테이블을 삭제하고 수정 삭제를 해보겠습니다. ▼ 테이블 생성 (Create)을 하려면 다음과 같이 컬럼들을 나열하고 기본키 설정 및 기본값 설정을 해줘야 합니다. 다양한 데이터 타입이 있는데 다른 글에서 따로 정리해보도록 하겠습니다. 또한 NOT NULL은 컬럼에 NULL 값 즉 빈 값을 넣을 수 없다는 의미가 됩니다. ▼ 다음은 예문입니다. 새로운 employees 데이터베이스를 생성하고 프라..