1. 공통 명령어
로컬 데이터베이스와 원격 데이터베이스 연결(172.16.xx.xx:3306):
mysql -h localhost -u root -p123 mysql -h 172.16.xx.xx -P 3306 -u root -p
2.DDL
DDL(데이터 정의 언어)은 CREATE, ALTER, DROP, TRUNCATE, COMMENT 및 RENAME 문을 포함한 데이터베이스 스키마를 정의합니다.
만들기
create 문은 테이블을 생성합니다.
CREATE TABLE `device_label` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键-自增长ID', `origin_model` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '收集机型', `origin_vendor` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '收集厂商', `vendor` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '标注厂商', `model` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '标注品牌', PRIMARY KEY (`id`), UNIQUE KEY `device_key` (`origin_model`,`origin_vendor`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='设备标注表'; 改(ALTER)
ALTER TABLE은 테이블의 구조를 변경하고 다음 작업을 지원합니다.
열 유형 및 열 이름 수정:
alter table device_label modify origin_model varchar(32); alter table device_label change origin_model device_model varchar(16);
열 추가:
alter table device_label add os_type varchar(8) COLLATE utf8_bin NOT NULL COMMENT '操作系统' after id;
열 사이의 순서 수정:
alter table device_label modify os_type varchar(8) after origin_model;
기본 키 수정:
alter table device_label drop primary key, add primary key (`origin_model`,`origin_vendor`);
잘라내기
TRUNCATE는 테이블을 지웁니다. 이는 where 조건을 지정하지 않고 삭제하는 것과 같습니다.
device_label 자르기
3. DCL
DCL(데이터 제어 언어)은 GRANT 및 REVOKE 명령을 포함한 사용자 권한을 관리하는 데 사용됩니다.
부여
MySQL에는 매우 정밀한 권한 제어 기능이 있습니다.
•권한 세부 분류
•DB -> 테이블 -> 열, 권한 세분화
•제어 호스트(와일드카드 일치 가능)
hive 사용자를 생성하고 db1의 모든 테이블에 액세스할 수 있는 localhost 권한을 부여합니다.
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'mypass'; GRANT ALL ON db1.* TO 'hive'@'localhost'; -- 可简写为 GRANT ALL ON db1.* TO 'hive'@'localhost' IDENTIFIED BY 'mypass';
특정 테이블에만 선택 권한을 부여할 수도 있습니다.
GRANT SELECT ON db2.invoice TO 'hive'@'localhost';
4.DML
데이터 조작 언어(DML)는 추가, 삭제, 수정(INSERT, UPDATE, DELETE, SELECT)을 포함한 데이터베이스 쿼리 및 업데이트를 표현하는 데 주로 사용됩니다.
삽입
행 데이터 추가:
insert into device_label (origin_model, origin_vendor, vendor, model) values ( 'h9', 'bbk', '步步高', 'H9' );
한 테이블을 다른 테이블로 복사:
insert into device_label_copy (`origin_model`, `origin_vendor`, `vendor`, `model`) select `origin_model`, `origin_vendor`, `vendor`, `model` from device_label;
또한 MySQL은 로드 데이터를 통해 구조화된 일반 텍스트를 데이터베이스에 로드하는 것을 지원합니다.
load data local infile 'dvc-label.csv' into table device_label fields terminated by ',' ignore 1 lines (origin_model, origin_vendor, vendor, model);
ERROR 1148(42000) 오류가 발생하면 mysql --local-infile -u user -ppasswd 명령을 사용하여 mysql에 진입하세요.
업데이트(UPDATE)
열 값 업데이트:
update device_label set origin_model = 't2', origin_vendor = 'xiami' where vendor = '锤子';
삭제
where 조건에 따라 행 삭제:
delete from device_label where origin_vendor = 'alps';
체크(SELECT)
표시된 모델이 10개 이상인 제조업체 쿼리:
select vendor, count(distinct model) as models from device_label group by vendor having models > 10
위 내용은 편집자가 소개한 MySQL의 기본 SQL문을 요약한 것입니다. 궁금하신 사항이 있으시면 메시지를 남겨주시면 편집자가 답변해 드리겠습니다. 시간. 홈페이지에 대한 귀하의 지원에 진심으로 감사드립니다!