데이터 삭제하기 DELETE
1. 쿼리문법
DELETE FROM [테이블 이름]
WHERE 조건식;
2.DELETE 예제
DELETE FROM mypokemon
WHERE attack > 50;
데이터 수정하기 UPDATE, SET
1. 쿼리문법
UPDATE [테이블 이름]
SET [컬럼이름] = [새 값]
WHERE 조건식;
2. UPDATE/ SET 예제
UPDATE mypokemon
SET type = 'normal'
WHERE name = 'chikorita'
제약조건
- 데이터를 입력할 때 실행되는 데이터 입력 규칙
- 테이블을 만들거나 변경하면서 설정한다 → CREATE TABLE 및 ALTER TABLE 구문 사용 가능
제약 | 의미 |
NOT NULL | 이 컬럼에는 NULL값을 저장할 수 없다 |
UNIQUE | 컬럼의 값들은 서로 다른 값을 가져야 한다 |
DEFAULT | 컬럼에 입력값이 없을 시 기본값이 설정된다/ 기본값은 DEFAULT 제약조건을 쓸때 명시해야 함 |
PRIMARY KEY | 이 컬럼은 기본키이다/ NOT NULL과 UNIQUE 특징을 모두 가진다 |
FOREIGN KEY | 이 컬럼은 외래키이다/ 이 컬럼은 다른 테이블을 특정 컬럼을 참조한다 |
1. 쿼리문법
CREATE TABLE [테이블이름]
([컬럼이름] [데이터타입] [제약조건],
[컬럼이름] [데이터타입] [제약조건],
...
);
2. 제약조건 예시
CREATE TABLE new_mypokemon(
number INT PRIMARY KEY,
name VARCHAR(20) UNIQUE,
type VARCHAR(10) NOT NULL,
attack INT DEFAULT 0,
defense INT DEFAULT 100,
FOREIGN KEY(number) REFERENCES mypokemon(number)
);
*FOREIGN KEY는 참조하는 테이블의 PRIMARY KEY여야함/ mypokemon의 number 컬럼은 PRIMARY KEY여야한다
권한과 DCL
분류 | 종류 | 의미 |
DDL(Data Definition Language) | CREATE ALTER DROP RENAME TRUNCATE |
데이터정의어 |
DML(Data Mainpulation Language) | SELECT INSERT UPDATE DELETE |
데이터조작어 |
DCL(Data Control Language) | GRANT REVOKE |
데이터제어어 |
TCL(Transaction Control Language) | COMMIT ROLLBACK SAVEPOINT |
트랜잭션제어어 |
<권한>
- root 사용자는 모든 데이터 접근 가능
- 사용자별로 데이터 접근권한 다르게 가능 → 데이터베이스, 테이블 접근권한 및 어떤 기능을 사용할건지 사용자별 지정 가능
1. 사용자 확인하기
*MySAL 기본 데이터베이스인 mysql 데이터베이스 선택하기
USE mysql;
*사용자 목록조회하기
SELECT user, host FROM user;
2. 사용자 생성, 삭제하기
*사용자 생성하기
CREATE USER [사용자이름]@[ip주소];
*비밀번호와 함께 사용자 생성하기
CREATE USER [사용자이름]@[ip주소] IDENTIFIED BY '[사용자 비밀번호]';
*사용자 삭제하기
DROP USER [사용자이름];
3. 권한 부여하기
*권한부여하기
GRANT [권한] ON [데이터베이스이름].[테이블이름] TO [사용자이름]@[ip주소];
*권한확인하기
SHOW GRAND FOR [사용자이름]@[ip주소];
*권한삭제하기
REVOKE [권한] ON [데이터베이스이름].[테이블이름] FROM [사용자이름]@[ip주소];
*권한적용하기
FLUSH PRIVILEGES;
<권한 쿼리예시>
1. #newuser@%에게 mydb.mytb에 대한 모든 권한 부여하기
GRANT ALL PRIVILEGES ON mydb.mytb TO newuser@%;
*ip 주소가 %이면 해당 아이디를 가지는 모든 ip의 접근을 허용한다는 의미
2. #newuser@%에게 모든 데이터베이스, 모든 테이블에 대한 SELECT, INSERT권한 부여하기
GRAND SELECT, INSERT ON *.* TO newuser@%;
트랜잭션과 TCL
<트랜잭션>
데이터베이스의 데이터 상태를 바꾸는 작업 묶음
*트랜잭션 시작하기
START STRANSACTION;
*트랜잭션 확정하기
COMMIT;
*트랜잭션 이전으로 돌아가기
ROLLBACK;
<세이브포인트>
트랜잭션 내에 특정한 저장지점을 두는 것
*세이브포인트 만들기
SAVEPOINT [세이브포인트 이름];
*세이브포인트로 돌아가기
ROLL BACK TO [세이브포인트 이름];
'SQL' 카테고리의 다른 글
[패스트캠퍼스] SQL 강의 : 유저별 세그먼트별, 매출 관련 분석 (0) | 2023.01.04 |
---|---|
[패스트캠퍼스] SQL 강의 : 날짜를 응용하여 active user 및 revenue 구하기 (1) | 2023.01.03 |
[패스트캠퍼스] SQL 강의 : 조건에 조건 더하기, 서브쿼리 사용하기 (0) | 2022.12.27 |
[패스트캠퍼스] SQL 강의 : 테이블 집합 연산(여러 테이블 한번에 다루기) (0) | 2022.12.27 |
[패스트캠퍼스] SQL 강의 : 테이블 합치기, JOIN 함수 (2) | 2022.12.27 |