SQL 기본 사용
9040 단어 데이터베이스 mysql
데 이 터 를 자신의 my sql 데이터베이스 에 넣 고 연습 용 으로 사용 합 니 다.
1.로그 인 조작 사용
1.1 Mysql 데이터베이스 로그 인
1.2 모든 데이터 베 이 스 를 보 여주 기(조회)
1.3 데이터베이스 에 들어가다
1.4 데이터베이스 만 들 기
2 DDL
테이블 구조 수정
3 DCL
1 사용자 권한 보기
2 권한 을 수 여 받 은 사용자
3 권한 부여
4 권한 해제
4 DQL:
1 열 제어
2 조건 제어:
조건 부 조회
모호 조회
3 정렬:orderby 정렬 의 키워드
4.취 합 함수:취 합 함 수 는 특정한 열의 수직 연산 을 하 는 데 사용 된다.
5.그룹 검색
6 limit 자구
SQL 문법 강좌 https://www.w3school.com.cn/sql/index.asp
my sql 튜 토리 얼https://www.runoob.com/mysql/mysql-tutorial.html
데 이 터 를 자신의 my sql 데이터베이스 에 넣 고 연습 용 으로 사용 합 니 다.
-- test , test :
CREATE DATABASE IF NOT EXISTS test;
-- test
USE test;
-- classes students ( ):
DROP TABLE IF EXISTS classes;
DROP TABLE IF EXISTS students;
-- classes :
CREATE TABLE classes (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- students :
CREATE TABLE students (
id BIGINT NOT NULL AUTO_INCREMENT,
class_id BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
gender VARCHAR(1) NOT NULL,
score INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- classes :
INSERT INTO classes(id, name) VALUES (1, ' ');
INSERT INTO classes(id, name) VALUES (2, ' ');
INSERT INTO classes(id, name) VALUES (3, ' ');
INSERT INTO classes(id, name) VALUES (4, ' ');
-- students :
INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, ' ', 'M', 90);
INSERT INTO students (id, class_id, name, gender, score) VALUES (2, 1, ' ', 'F', 95);
INSERT INTO students (id, class_id, name, gender, score) VALUES (3, 1, ' ', 'M', 88);
INSERT INTO students (id, class_id, name, gender, score) VALUES (4, 1, ' ', 'F', 73);
INSERT INTO students (id, class_id, name, gender, score) VALUES (5, 2, ' ', 'F', 81);
INSERT INTO students (id, class_id, name, gender, score) VALUES (6, 2, ' ', 'M', 55);
INSERT INTO students (id, class_id, name, gender, score) VALUES (7, 2, ' ', 'M', 85);
INSERT INTO students (id, class_id, name, gender, score) VALUES (8, 3, ' ', 'F', 91);
INSERT INTO students (id, class_id, name, gender, score) VALUES (9, 3, ' ', 'M', 89);
INSERT INTO students (id, class_id, name, gender, score) VALUES (10, 3, ' ', 'F', 85);
-- OK:
SELECT 'ok' as 'result:';
1.로그 인 조작 사용
1.1 Mysql 데이터베이스 로그 인
mysql -u root -p
mysql -uroot -p
1.2 모든 데이터 베 이 스 를 보 여주 기(조회)
명령 완료 후 영문 기호 입력 하기;차 로 돌아 가 명령 을 집행 하 다.
show databases;
1.3 데이터베이스 에 들어가다
use dataname;
1.4 데이터베이스 만 들 기
create database dataname;
2 DDL
데이터베이스,표,열 을 만 들 고 삭제 하 며 수정 하 는 SQL 문 구 를 포함 합 니 다.주요 명령 은 CREATE,ALTER,DROP 등 이 있 는데 DDL 은 주로 표(TABLE)의 구조,데이터 형식,표 간 링크 와 제약 등 초기 화 작업 에 사용 되 는데 그들 은 대부분 표를 만 들 때 사용한다.
테이블 구조 수정
create table tablename(name varchar(32),age int);// ( )
alter table //
alter table person add home varchar(32);//
alter table person drop name;//
alter table student rename person;
/* student ,person
rename , rename to
*/
alter table person change stu_name name varchar(25);
/*
stu_name ,name
,
tips: change modify ,
*/
alter table person modify name varchar(20);
// modify name , varchar(25) varchar(20)
alter table person modify name c_name integer;
desc person //
3 DCL
DCL(Data Control Language)문:데이터 제어 문 구 는 서로 다른 데이터 세그먼트 의 직접적인 허가 와 접근 단 계 를 제어 하 는 문 구 를 사용 합 니 다.이 문 구 는 데이터베이스,표,필드,사용자 의 접근 권한 과 안전 단 계 를 정의 합 니 다.
1 사용자 권한 보기
사용자 계 정 을 성공 적 으로 만 든 후에 도 어떠한 조작 도 수행 할 수 없 으 며,이 사용자 에 게 적당 한 접근 권한 을 할당 해 야 합 니 다.사용 가능
SHOW GRANTS FOR
문 구 는 사용자 의 권한 을 조회 합 니 다.예 를 들 면:SHOW GRANTS FOR test
2 권한 을 수 여 받 은 사용자
'user_name'@'host_name'
'host_name'
임의의 호스트 에서 데이터 베 이 스 를 방문 하 는 데 적응 하기 위해 설정 한 주소 나 주소 세그먼트 에 접근 할 수 있 습 니 다.user
표 의 기본 값host
설명 하 다.
%
모든 호스트 일치
localhost
localhost 는 IP 주소 로 해석 되 지 않 고 UNIXsocket 으로 직접 연결 합 니 다.
127.0.0.1
TCP/IP 프로 토 콜 로 연결 되 며 이 컴퓨터 에서 만 접근 할 수 있 습 니 다.
::1
::1 은 ipv 6 지원 을 호 환 하 는 것 으로 ipv 4 와 127.0.0.1 을 나타 낸다.
host
형식 은 다음 과 같은 몇 가지 가 있다.host_name
모호 일치,일치 하 는 조건 에 부합 되 는 호스트 는 이 데이터베이스 실례,예 를 들 어%
또는192.168.2.%
에 접근 할 수 있다.%.test.com
,localhost
,127.0.0.1
및 서버 명 등 은 본 기기 에서 만 접근 할 수 있 습 니 다.::1
또는192.168.2.1
또는192.168.2.0/24
;192.168.2.0/255.255.255.0
입 니 다.3 권한 부여
열(필드)권한 을 부여 할 때
%
의 값 은priv_type
권한 으로 지정 되 며,사용 자 를 만 들 고,사용 자 를 삭제 하고,이름 을 바 꾸 고,모든 특권 을 취소 할 수 있 으 며,전역 적 입 니 다.ON 이 있 으 면 권한 을 부여 하고 ON 이 없 으 면 캐릭터 를 부여 합 니 다.예:
-- db1
GRANT ALL ON db1.* TO 'user1'@'localhost';
--
GRANT 'role1', 'role2' TO 'user1'@'localhost', 'user2'@'localhost';
권한 이 적용 되 려 면 다음 문 구 를 실행 해 야 합 니 다:
FLUSH PRIVILEGES;
4 권한 해제
CREATE USER
문법 과REVOKE
문장의 문법 형식 은 비슷 하지만 반대 효 과 를 가진다.REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...
REVOKE ALL [PRIVILEGES], GRANT OPTION
FROM user [, user] ...
REVOKE PROXY ON user
FROM user [, user] ...
4 DQL:
SELECT 입 니 다.이름 처럼 이 네 가지 명령 은 데이터베이스 에 있 는 데 이 터 를 조작 하 는 언어 입 니 다.
select columnlist //
from table_list //
where condition //
group by grouping //
having condition //
start,limit //
조회 수 요 는 다음 과 같다.-조건:나 이 는 홀수 이 고 홈 그룹 에 따라 조회 점수 가 가장 높 으 며 80 점 이상 이면 하나의 조회 person 표 의 age 를 홀수 로 하 는 홈 그룹 과 age 를 1 로 하 는 조회 항목 만 되 돌려 준다.
select age from person where age%2=1 group by home having age=1 limit 1;
1 열 제어
①:
select * from ; // *
②: ()
select 1 [, 2, 3...] from ;
③:
select distinct from ;
④:
* 、 、 、
>select +2 from ; 2
*
>select concat('***', ) from ; 3 ***
* NULL
null , null , null, null 0
>select ifnull( , ) from ;
*
>select ifnull( ,0)+100 AS from ; AS
2 조건 제어:
조건 부 조회
앞에서 말 한 UPDATE 와 DELETE 의 문구 와 마찬가지 로 SELECT 문구 도 WHERE 키 워드 를 사용 하여 조건 을 제어 할 수 있 습 니 다.
SELECT 1, 2... n FROM WHERE ;(age>10 AND name IS NOT NULL)
모호 조회
cao 성 name 을 조회 하고 싶 을 때 모호 한 조 회 를 사용 할 수 있 습 니 다.
SELECT * FROM WHERE name LIKE ' _';( 1 1 )
:
SELECT * FROM WHERE name LIKE ' %';( % 0...n )
:
SELECT * FROM WHERE name LIKE '% %';(name " " )
3 정렬:orderby 정렬 의 키워드
(1)
* SELECT * FROM ORDER by ASC;(ASC : )
> ---
> ASC ( )
(2)
* SELECT * FROM ORDER BY DESC; ( DESC : )
> ---
> DESC
(3)
SELECT * FROM ORDER BY 1 ASC , 2 DESC;
4.취 합 함수:취 합 함 수 는 특정한 열의 수직 연산 을 하 는 데 사용 된다.
(1)COUNT
SELECT COUNT(*) FROM ;
> NULL ( )
SELECT COUNT( ) FROM ;
> NULL
(2)MAX
SELECT MAX( ) FROM ;
>
(3)MIN
SELECT MIN( ) FROM ;
>
(4)SUM
SELECT SUM( ) FROM ;
>
(5)AVG
SELECT AVG( ) FROM ;
>
5.그룹 검색
,
:
SELECT age,COUNT(*) FROM GROUP BY age;
> ,
SELECT sex,MAX(age) FROM GROUP BY sex;
> ,
SELECT ,COUNT(*) FROM GROUP BY HAVING COUNT(*) > 3;
> , 3 ,
6 limit 자구
(사투리-MySql 만 있 음)
LIMIT ,
: 3 , 4
SELECT * FROM LIMIT (pageIndex - 1)* pageCount , pageCount;
> 2 ,4 4 , : 3、4、5、6
limit