메뉴 건너뛰기

조회 수 163 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
CREATE DATABASE haksa;
 
SHOW DATABASES;
 
USE haksa;
 
 
 
 
 
-- make insa table
 
CREATE TABLE insa(
 
bunho INT(1AUTO_INCREMENT,
 
name CHAR(8NOT NULL,
 
e_name CHAR(4NOT NULL,
 
town CHAR(6NOT NULL,
 
PRIMARY KEY(bunho)
 
);
 
 
 
INSERT INTO insa VALUES('1','hong','kevi','seoul');
 
INSERT INTO insa VALUES('2','kang','devi','seoul');
 
INSERT INTO insa VALUES('3','kim','jack','seoul');
 
INSERT INTO insa VALUES('4','su','jes','seoul');
 
INSERT INTO insa VALUES('5','go','hoo','seoul');
 
 
 
-- what is  rollback , commit ? 
 
 
 
SELECT * FROM insa;
 
 
 
SET autocommit = 0;
 
 
 
UPDATE insa SET town ='degu' WHERE bunho = 4;
 
 
 
ROLLBACK;
 
 
 
COMMIT;
 
 
 
 
 
-- savepoint /truncate 
 
 
 
UPDATE insa SET town ='jine' WHERE bunho = 2;
 
 
 
 
 
SAVEPOINT aa;
 
 
 
DELETE FROM insa WHERE bunho = 3;
 
 
 
SELECT * FROM insa;
 
 
 
ROLLBACK TO aa;
 
 
 
 
 
-- TRUNCATE can't rollback
 
 
 
 
 
 
 
--  create index  if some sql can't primary key , use index
 
--  create index index's name on table(calum)
 
 
 
index stu_prim on
 
student (stu_no);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-- ----------------------------------------------------------------------------------
 
 
 
 
 
 
 
-- select exam
 
-- 1.성별이 남자인 각 학생의 학번, 이름, 영문이름, 학년, 주민등록번호를 영문이름 순서로 출력하
 
-- 1 or 2
 
-- SUBSTRING(str,pos,len) : 첫번째 인자의 문자열에서 두번째 인자의 위치부터 세번째 인자의 길이만큼 반환한다.
 
-- 예 : select SUBSTRING('Quadratically',5,6);
 
select substring(id_num,8,1from student;
 
select id_num from student where substring(id_num,8,1)=1;
 
select stu_no,stu_name,stu_ename,grade,id_num
 
from student
 
where 1=substring(id_num,8,1)
 
ORDER BY stu_ename ;
 
 
 
 
 
 
 
-- 2.학년이 1학년이고 성별이 남자인 각 학생의 학번과 이름을 출력하는데, 출력 순서는 학번 내림차순이다. 
 
 
 
select * from student;
 
select stu_no, stu_name
 
from student
 
where substring(id_num,8,1)=1
 
and grade=1
 
order by stu_no desc;
 
 
 
 
 
-- 3.학생 테이블의 학번, 이름 , 출생년도 , 나이를 뷰테이블로 만들어 출력하라 
 
 
 
select stu_no, stu_name, id_num, year(now())-birth_year+1 as 'age' from student;
 
 
 
create view ages(stu_no,stu_name,id_num,age) as
 
select stu_no, stu_name, id_num, year(now())-birth_year+1 as 'age' from student;
 
select * from ages;
 
 
 
-- 언제 뷰를 사용하나?
 
-- 
 
-- - 반복되는 명령문이나 루틴을 간단히 사용하고자 할때 
 
-- - 테이블의 출력 방법을 재구성하고자 할때
 
-- - 여러 단계에서 조회 명령문이 사용될 때
 
-- - 데이터를 보호하고자 할때
 
 
 
 
 
-- security 
 
 
 
use mysql;
 
update user set password=password('1234'where user = 'root';
 
flush privileges;
 
 
 
 
 
-- create user
 
 
 
create user lee@localhost identified by '1234';
 
create user choi identified by '1234';
 
 
 
-- grant 
 
 
 
grant selectinsertupdate on haksa.* to lee@localhost;
 
grant all PRIVILEGES on haksa.* to choi;
 
grant all PRIVILEGES on *.* to lee@localhost;
 
 
 
-- revoke
 
 
 
revoke select on haksa.* from choi@'%';
 
revoke selectupdate on haksa.* from lee@'localhost';
 
flush PRIVILEGES;
 
 
 
-- CHECK 
 
select host, db, user, select_priv,update_priv from db;
 
 
 
-- delect
 
 
 
drop user 'user's name'
 
 
 
delete from user where user= 'user's name'
 
 
 
delete from db where user = 'users'name'
 
 
 
 
cs

 

CREATE DATABASE haksa;

SHOW DATABASES;

USE haksa;

 

 

-- make insa table

CREATE TABLE insa(

bunho INT(1) AUTO_INCREMENT,

name CHAR(8) NOT NULL,

e_name CHAR(4) NOT NULL,

town CHAR(6) NOT NULL,

PRIMARY KEY(bunho)

);

 

INSERT INTO insa VALUES('1','hong','kevi','seoul');

INSERT INTO insa VALUES('2','kang','devi','seoul');

INSERT INTO insa VALUES('3','kim','jack','seoul');

INSERT INTO insa VALUES('4','su','jes','seoul');

INSERT INTO insa VALUES('5','go','hoo','seoul');

 

-- what is  rollback , commit ? 

 

SELECT * FROM insa;

 

SET autocommit = 0;

 

UPDATE insa SET town ='degu' WHERE bunho = 4;

 

ROLLBACK;

 

COMMIT;

 

 

-- savepoint /truncate 

 

UPDATE insa SET town ='jine' WHERE bunho = 2;

 

 

SAVEPOINT aa;

 

DELETE FROM insa WHERE bunho = 3;

 

SELECT * FROM insa;

 

ROLLBACK TO aa;

 

 

-- TRUNCATE can't rollback

 

 

 

--  create index  if some sql can't primary key , use index

--  create index index's name on table(calum)

 

index stu_prim on

student (stu_no);

 

 

 

 

 

 

 

 

-- ----------------------------------------------------------------------------------

 

 

 

-- select exam

-- 1.성별이 남자인 각 학생의 학번, 이름, 영문이름, 학년, 주민등록번호를 영문이름 순서로 출력하

-- 1 or 2

-- SUBSTRING(str,pos,len) : 첫번째 인자의 문자열에서 두번째 인자의 위치부터 세번째 인자의 길이만큼 반환한다.

-- 예 : select SUBSTRING('Quadratically',5,6);

select substring(id_num,8,1) from student;

select id_num from student where substring(id_num,8,1)=1;

select stu_no,stu_name,stu_ename,grade,id_num

from student

where 1=substring(id_num,8,1)

ORDER BY stu_ename ;

 

 

 

-- 2.학년이 1학년이고 성별이 남자인 각 학생의 학번과 이름을 출력하는데, 출력 순서는 학번 내림차순이다. 

 

select * from student;

select stu_no, stu_name

from student

where substring(id_num,8,1)=1

and grade=1

order by stu_no desc;

 

 

-- 3.학생 테이블의 학번, 이름 , 출생년도 , 나이를 뷰테이블로 만들어 출력하라 

 

select stu_no, stu_name, id_num, year(now())-birth_year+1 as 'age' from student;

 

create view ages(stu_no,stu_name,id_num,age) as

select stu_no, stu_name, id_num, year(now())-birth_year+1 as 'age' from student;

select * from ages;

 

-- 언제 뷰를 사용하나?

-- 

-- - 반복되는 명령문이나 루틴을 간단히 사용하고자 할때 

-- - 테이블의 출력 방법을 재구성하고자 할때

-- - 여러 단계에서 조회 명령문이 사용될 때

-- - 데이터를 보호하고자 할때

 

 

-- security 

 

use mysql;

update user set password=password('1234') where user = 'root';

flush privileges;

 

 

-- create user

 

create user lee@localhost identified by '1234';

create user choi identified by '1234';

 

-- grant 

 

grant select, insert, update on haksa.* to lee@localhost;

grant all PRIVILEGES on haksa.* to choi;

grant all PRIVILEGES on *.* to lee@localhost;

 

-- revoke

 

revoke select on haksa.* from choi@'%';

revoke select, update on haksa.* from lee@'localhost';

flush PRIVILEGES;

 

-- CHECK 

select host, db, user, select_priv,update_priv from db;

 

-- delect

 

drop user 'user's name'

 

delete from user where user= 'user's name'

 

delete from db where user = 'users'name'

 

desc db;


List of Articles
번호 제목 날짜 조회 수
126 BEGIN, COMMIT, ROLLBACK 2021.03.26 315
125 binlog 조회 / 삭제 / 보관 기간 설정 file 2023.01.10 132
124 CASE 문법 사용 하기 file 2023.01.10 111
123 column의 정보 중에서 column 설명(column_comment) 2021.03.26 129
122 Create Procedure 2016.12.23 6012
121 DB의 모든 테이블을 삭제하는 쿼리 2016.08.29 6767
120 DISTINCT와 ALL 2016.12.23 5498
119 Dump & Restore 2016.12.23 5788
118 dump 를 db에 올릴때 인코딩 문제 2016.12.23 5871
117 flush privileges 명령어 file 2017.04.12 5303
116 FORMAT 문법 사용 하기(숫자 자리수 나타내기) file 2023.01.10 102
115 fulltext 관련 글 2021.03.26 125
114 group by, distinct, count 를 이용한 겹치지 않는것의 개수 2021.03.26 262
113 group by로 뽑아온 값중에 가장큰 값(max)의 상태값을 가져오기 2021.03.26 594
112 IMPORT 2016.12.23 5440
111 IN 연산자 2016.12.23 5809
110 InnoDB 스토리지 엔진에서 테이블의 최대 저장 row 개수 2018.07.18 1675
109 InnoDB, MyISAM 2016.12.23 5536
108 LIMIT 속도 저하 2021.03.26 247
107 MariaDB can't create test file lower-test 2023.02.16 139
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved