>  기사  >  데이터 베이스  >  MySQL 명령 모음(수집)

MySQL 명령 모음(수집)

PHPz
PHPz원래의
2017-04-04 14:18:181373검색

다음은 제가 모아둔 MySQL 명령어 모음인데 매우 실용적입니다!

1. Mysql에 연결합니다.
형식: mysql -h 호스트 주소 -u 사용자 이름 -p 사용자 비밀번호

1. 이 컴퓨터에서 MYSQL에 연결합니다.
먼저 DOS 창을 열고 mysqlbin 디렉토리를 입력한 다음 mysql -u root -p 명령을 입력하세요. Enter 키를 누르면 비밀번호를 입력하라는 메시지가 표시됩니다. 앞에 공백이 있어야 하며, 비밀번호 앞에 공백이 없어야 합니다. 그렇지 않으면 비밀번호를 다시 입력해야 합니다.

MYSQL을 방금 설치한 경우 슈퍼 사용자 루트에는 비밀번호가 없으므로 Enter 키를 눌러 MYSQL을 입력하세요. mysql>

2. 원격 호스트. 원격 호스트의 IP가 110.110.110.110이고, 사용자 이름이 루트이고, 비밀번호가 abcd123이라고 가정합니다. 그런 다음 다음 명령을 입력합니다:
mysql -h110.110.110.110 -u root -p 123; (참고: u와 root 사이에 공백을 추가할 필요가 없으며 다른 경우에도 마찬가지입니다.)

3. MYSQL 명령 종료: exit(Enter)

2. 비밀번호 변경
형식: mysqladmin -u 사용자 이름 -p 이전 비밀번호 비밀번호 새 비밀번호

1. 비밀번호 ab12를 루트로 설정하세요.
먼저 DOS에서 mysqlbin 디렉터리를 입력한 후 다음 명령을 입력하세요.
mysqladmin -u root -password ab12
참고: 루트에는 처음에 비밀번호가 없으므로 -p 이전 비밀번호 항목은 생략합니다.

2. 루트 비밀번호를 djg345로 변경합니다.
mysqladmin -u root -p ab12 비밀번호 djg345
3. 새 사용자 추가
참고: 위와 달리 다음은 MYSQL 환경의 명령이므로 명령 종결자로 세미콜론이 뒤에 옵니다. .

형식: "비밀번호"로 식별되는 사용자 이름@로그인 호스트에 대해 데이터베이스.*에 대한 선택 권한을 부여합니다.

1. 모든 호스트에 로그인할 수 있도록 비밀번호가 abc인 사용자 test1을 추가합니다. 그리고 모든 데이터베이스에 대한 쿼리, 삽입, 수정, 삭제 권한이 있습니다. 먼저 루트 사용자로 MYSQL에 연결한 후 다음 명령을 입력합니다:
grant select,insert,update,delete on . to [email=test1@”%]test1@”%[/ email]” "abc"로 식별됩니다.

그러나 사용자를 추가하는 것은 매우 위험합니다. 누군가 test1의 비밀번호를 알고 있다면 인터넷상의 모든 컴퓨터에서 mysql 데이터베이스에 로그인할 수 있으며 무엇이든 할 수 있습니다. 2. 비밀번호 abc를 사용하여 사용자 test2를 추가하면 해당 사용자는 localhost에만 로그인하고 데이터베이스 mydb를 쿼리, 삽입 및 수정할 수 있습니다. (localhost는 로컬 호스트를 나타냅니다. 즉, MYSQL 데이터베이스가 위치한 호스트)이므로 사용자가 test2의 비밀번호를 알고 있더라도 인터넷에서 데이터베이스에 직접 접근할 수 없고 MYSQL 호스트의 웹 페이지를 통해서만 접근할 수 있습니다.

"abc"로 식별되는 [email=test2@localhost]test2@localhost[/email]에 mydb.*에 대한 선택, 삽입, 업데이트, 삭제 권한을 부여합니다.


test2에서 비밀번호가 있으면 다른 명령을 입력하여 비밀번호를 삭제할 수 있습니다.

""로 식별되는 [email=test2@localhost]test2@localhost[/email]에 mydb.*에 대한 선택, 삽입, 업데이트, 삭제 권한을 부여하세요.


4.1 데이터베이스 생성

참고: 데이터베이스를 생성하기 전에 먼저 Mysql 서버에 연결해야 합니다.


명령: 데이터베이스 생성 <데이터베이스 이름>

예 1: 생성 xhkdb라는 데이터베이스

mysql> 데이터베이스 생성 xhkdb;


예 2: 데이터베이스 생성 및 사용자 할당

①CREATE DATABASE 데이터베이스 이름;

②GRANT SELECT,INSERT,UPDATE ,DELETE,CREATE, DROP,ALTER ON 데이터베이스 이름.* TO 데이터베이스 이름@localhost IDENTIFIED BY 'password';

③SET PASSWORD FOR 'database name'@'localhost' = OLD_PASSWORD('password');

3개의 명령어를 순서대로 실행하면 데이터베이스 생성이 완료됩니다. 참고: 중국어 "비밀번호"와 "데이터베이스"는 사용자가 직접 설정해야 합니다.

4.2 데이터베이스 표시

명령: show Databases(참고: 끝에 s가 있음)
mysql> show Databases;

참고: 더 이상 잘못된 문자를 표시하지 않으려면 데이터베이스의 기본 인코딩을 수정해야 합니다. 다음은 GBK 인코딩 페이지를 예로 들어 보겠습니다.

1. MYSQL 구성 파일 수정: my.ini에서 default-character-set=gbk 수정

2. 코드 실행 시 수정:

①Java 코드: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
②PHP 코드: 헤더(“Content-Type: text/html;charset=gb2312”);
③C 언어 code: int mysql_set_character_set(MYSQL
mysql, char
csname) 이 함수는 현재 연결에 대한 기본 문자 집합을 설정하는 데 사용됩니다. csname 문자열은 유효한 문자 집합 이름을 지정합니다. 연결된 데이터 정렬은 문자 집합의 기본 데이터 정렬이 됩니다. 이 함수는 SET NAMES 문과 유사하게 작동하지만 mysql-> charset의 값도 설정하므로 mysql_real_escape_string()에 의해 설정된 문자 집합에 영향을 줍니다. 4.3 데이터베이스 삭제
명령: drop Database
예: xhkdb라는 데이터베이스 삭제
mysql> drop Database xhkdb;

예 1: 존재하는 것으로 확인된 데이터베이스

mysql>drop Database drop_database;

쿼리 확인, 0행 영향 받음(0.00초)

예 2: 존재하지 않는 데이터베이스 삭제
mysql> drop 데이터베이스 drop_database;
ERROR 1008(HY000): 'drop_database' 데이터베이스를 삭제할 수 없습니다.
// 오류가 발생했습니다. 'drop_database' 데이터베이스를 삭제할 수 없습니다.
mysql> 존재하는 경우 데이터베이스 삭제 drop_database;
쿼리 확인, 영향을 받은 행 0개, 경고 1개(0.00초)//이 데이터베이스가 존재하지 않음을 나타내는 경고 생성
mysql> 데이터베이스 생성 drop_database;
쿼리 OK, 1개 행 영향(0.00초)
mysql> drop 데이터베이스 if 존재 drop_database;//존재하는 경우 데이터베이스 존재 여부를 판별함
쿼리 OK, 0 영향을 받는 행(0.00초)
4.4 데이터베이스에 연결
명령: 사용

예: xhkdb 데이터베이스가 존재하는 경우 액세스를 시도합니다.
mysql> use xhkdb;
화면 프롬프트: 데이터베이스 변경됨

use 문은 db_name 데이터베이스를 후속 문에 대한 기본(현재) 데이터베이스로 사용하도록 MySQL에 알릴 수 있습니다. 이 데이터베이스는 세그먼트가 끝날 때까지 또는 다른 USE 문이 실행될 때까지 기본 데이터베이스로 유지됩니다.
mysql> USE db1;
mysql> SELECT COUNT() # selects from db1; mytable
mysql> USE db2;
mysql> SELECT COUNT(
) FROM mytable; # db2.mytable에서 선택

은 USE 문을 사용하여 특정 현재 데이터베이스를 표시합니다. 다른 데이터베이스의 테이블에 액세스할 수 없습니다. 다음 예에서는 db1 데이터베이스의 작성자 테이블과 db2 데이터베이스의 편집 테이블에 액세스할 수 있습니다.
mysql> USE db1;
mysql> SELECTauthor_name,editor_name FROMauthor,db2.editor
-> WHERE 작성자 .editor_id = db2.editor.editor_id;

USE 문은 Sybase와의 호환성을 위해 설정되었습니다.

일부 네티즌들은 접속 후 어떻게 종료하는지 문의를 주셨습니다. 실제로 데이터베이스를 사용한 후에는 show 데이터베이스를 사용하여 모든 데이터베이스를 쿼리할 수 있습니다. 다른 데이터베이스로 이동하려면
다른 데이터베이스 이름 사용
을 사용하면 됩니다.
4.5 현재 선택된 데이터베이스
명령: mysql> select Database();

MySQL의 SELECT 명령은 다른 프로그래밍 언어의 인쇄 또는 쓰기와 유사합니다. 숫자, 수학적 표현의 결과 등 MySQL에서 SELECT 명령의 특수 기능을 사용하는 방법은 무엇입니까?

1. MYSQL 버전 표시
mysql> select version();
+———————+
|version() |
+— ——— ————–+
| 6.0.4-alpha-community |
+———————–+
1행 세트(0.02초)

  1. 현재 시간 표시
    mysql> select now();
    +———————+
    | now() |
    +——— —————+
    | 2009-09-15 22:35:32 |
    +————————+
    1행 세트(0.04초)

  2. 연도, 월, 일 표시
    SELECT DAYOFMONTH(CURRENT_DATE);
    +————————+
    | DAYOFMONTH(CURRENT_DATE) |
    +— ———————–+
    | 15 |
    +————————+
    1행 세트(0.01초)

월 선택(CURRENT_DATE);
+———————+
| 월(CURRENT_DATE) |
+————————+
| 🎜>+————————+
세트 내 1행(0.00초)

연도 선택(CURRENT_DATE);

+——————–+
| YEAR(CURRENT_DATE) |
+———— ————–+
| 2009 |
+——————+
1행 세트(0.00초)

  1. 표시 문자열

    mysql> SELECT “내 블로그에 오신 것을 환영합니다!”;
    +———————-+
    | |
    +————————-+
    | 내 블로그에 오신 것을 환영합니다! |
    +——————-+
    1행 세트(0.00초)

  2. 계산기로 사용

    select ((4
    4) / 10 ) + 25;+————————-+
    | ((4
    4) / 10 ) + 25 |
    +————————-+
    | 26.60 |
    +————————-+
    세트의 1개 행(0.00초)

  3. 문자열 연결

    select CONCAT(f_name, ” “, l_name)
    AS 이름
    from Employee_data
    여기서 title = '마케팅 임원';
    +——————+
    | 이름 |
    +——————+
    | 모니카 세갈 |
    | 🎜>| Joseph Irvine |
    +——————+
    3행 세트(0.00초)
    참고: 여기서는 CONCAT() 함수를 사용하여 문자열을 연결합니다. 또한, 결과 컬럼 'CONCAT(f_name, " ", l_name)'에 가명을 부여하기 위해 앞서 배운 AS도 활용했습니다.
    5.1 데이터 테이블 생성
    명령: create table <테이블 이름> ( <필드 이름 1> <유형 1> [,..<필드 이름 n> <유형 n>]);

  4. 예를 들어 MyClass라는 테이블을 생성합니다.
필드 이름, 숫자 유형, 데이터 너비, 비어 있는지 여부, 기본 키가 기본값을 자동으로 증가시키는지 여부,

id int 4, 기본 키 없음 auto_increment
name char 20 no
sex int 4 no 0
degree double 16 yes
mysql> 테이블 생성 MyClass(

id int(4) not null 기본 키 auto_increment,
name char(20) not null,
sex int(4) not null 기본값 '0',
degree double(16) ,2));
5.3 데이터 테이블 삭제
명령: drop table

예: MyClass
mysql>라는 테이블을 삭제합니다.

DROP TABLE은 하나 이상의 테이블을 취소하는 데 사용됩니다. 각 테이블에 대해 DROP 권한이 있어야 합니다. 모든 테이블 데이터와 테이블 정의가 취소되므로 이 문을 사용할 때는 주의하세요!

참고: 분할된 테이블의 경우 DROP TABLE은 테이블 정의를 영구적으로 취소하고 각 파티션을 취소하며 이러한 파티션에 저장된 모든 데이터를 취소합니다. DROP TABLE은 삭제된 테이블과 연결된 파티션 정의(.par) 파일도 취소합니다.

존재하지 않는 테이블의 경우 IF EXISTS를 사용하여 오류를 방지하세요. IF EXISTS를 사용하면 존재하지 않는 각 테이블에 대해 NOTE가 생성됩니다.

RESTRICT와 CASCADE를 사용하면 파티셔닝을 더 쉽게 할 수 있습니다. 현재 RESTRICT 및 CASCADE는 작동하지 않습니다.
5.4 테이블에 데이터 삽입
명령: <테이블 이름>에 삽입 [( <필드 이름 1>[,..<필드 이름 n > ])] 값 ​( 값 1 )[ , ( 값 n )]

예: MyClass 테이블에 두 개의 레코드를 삽입합니다. 이 두 레코드는 숫자 1을 가진 Tom이라는 사람의 점수가 96.45이고 Joan이라는 사람의 점수를 나타냅니다. 2라는 숫자는 82.99점이고 Wang이라는 이름의 3점은 96.5점입니다.
mysql> MyClass 값에 삽입(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

참고: 모든 항목에 삽입 한 번에 하나의 레코드만 테이블에 삽입할 수 있습니다.
5.5 테이블의 데이터 쿼리
1) 모든 행 쿼리
명령: <테이블 이름>에서 <필드 1,...> >예: MyClass 테이블의 모든 데이터 보기
mysql> select * from MyClass;

2) 데이터의 처음 몇 행 쿼리

예: 데이터의 처음 2행 보기 MyClass
mysql> select * from MyClass 순서 by id 제한 0,2;

select는 일반적으로 보다 정확하고 복잡한 데이터를 쿼리하는 위치와 함께 사용됩니다.

5.6 테이블의 데이터 삭제

명령: 테이블 이름에서 표현식

예: MyClass 테이블에서 1번 레코드를 삭제합니다.

mysql> id =1;

다음은 데이터 삭제 전과 후의 표를 비교한 것입니다.

FirstName LastName Age
Peter Griffin 35
Glenn Quagmire 33
다음은 PHP 코드를 예로 사용하여 "Persons" 테이블에서 LastName='Griffin'인 모든 레코드를 삭제합니다.
< ;?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('연결할 수 없습니다: ' . mysql_error ());
}
mysql_select_db("my_db", $con);
mysql_query("DELETE FROM Persons WHERE LastName='Griffin'");
?> ;
삭제 후 테이블은 다음과 같습니다:
FirstName LastName Age
Glenn Quagmire 33

5.7 테이블의 데이터 수정

구문: update table name set field = 새 값,… where 조건
mysql> update MyClass set name='Mary' where id=1;

예 1: 단일 테이블에 대한 MySQL UPDATE 문:

UPDATE [LOW_PRIORITY] [IGNORE ] tbl_name SET col_name1=expr1 [, col_name2=expr2 …] [WHERE where_definition] [ORDER BY …] [LIMIT row_count]

예 2: 여러 테이블에 대한 UPDATE 문:

UPDATE [LOW_PRIORITY] [IGNORE ] table_references SET col_name1=expr1 [, col_name2=expr2 …] [WHERE where_definition]

UPDATE 구문은 원래 테이블 행의 각 열을 새 값으로 업데이트할 수 있습니다. SET 절은 어떤 열을 수정하고 어떤 값을 제공할지를 나타냅니다. WHERE 절은 업데이트해야 하는 행을 지정합니다. WHERE 절이 없으면 모든 행이 업데이트됩니다. ORDER BY 절을 지정하면 지정된 순서대로 행이 업데이트됩니다. LIMIT 절은 업데이트할 수 있는 행 수를 제한하는 데 사용됩니다.

5.8 필드 추가

명령: alter table table name add field type other;
예: passtest 필드가 MyClass 테이블에 추가되고 유형은 int(4)이며 기본값입니다. is 0
mysql> alter table MyClass add passtest int(4) default '0'

Add index

mysql> alter table 테이블 이름 add index 인덱스 이름(필드 이름 1[, 필드 이름 2) ...]) ;
예: mysql> 테이블 직원 추가 인덱스 emp_name(이름);

기본 키의 인덱스 추가

mysql> 테이블 이름 추가 기본 키(필드) name);
예: mysql> alter table Employees add 기본 키(id);

고유 제한 인덱스 추가

mysql> alter table 테이블 이름 add 고유 인덱스 이름(필드 이름);
예: mysql> 테이블 직원 추가 고유 emp_name2(카드번호);

인덱스 삭제

mysql> 테이블 이름 삭제 인덱스 인덱스 이름 변경;
예: mysql>alter 테이블 직원 삭제 인덱스 emp_name;

필드 추가:

mysql> ALTER TABLE table_name ADD field_name field_type;

원래 필드 이름 수정:

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type ;

필드 삭제:
MySQL ALTER TABLE table_name DROP field_name;
5.9 테이블 이름 수정
명령: 테이블의 원래 테이블 이름을 새 테이블 이름으로 변경;

예: 테이블에서 MyClass 이름 YouClass로 변경
mysql> 테이블 MyClass를 YouClass로 이름 변경;

RENAME을 수행하면 잠긴 테이블이나 활성 트랜잭션이 있을 수 없습니다. 또한 원본 테이블에 대한 ALTER 및 DROP 권한과 새 테이블에 대한 CREATE 및 INSERT 권한이 있어야 합니다.

MySQL은 다중 테이블 이름 변경 중에 오류가 발생하면 이름이 변경된 모든 테이블에 대해 역방향 이름 변경을 수행하여 모든 것을 원래 상태로 되돌립니다.

RENAME TABLE이 MySQL 3.23.23에 추가되었습니다.
6. 데이터베이스를 백업합니다
DOS의 [url=file://mysqlbin]mysqlbin[/url] 디렉터리에서 명령이 실행됩니다

1. 전체 데이터베이스를 내보냅니다
. 내보내기 파일은 기본적으로 mysqlbin 디렉터리에 존재합니다.
mysqldump -u 사용자 이름 -p 데이터베이스 이름 > 내보낸 파일 이름
mysqldump -u user_name -p123456 데이터베이스_이름 > outfile_name.sql

테이블
mysqldump -u 사용자 이름 -p 데이터베이스 이름 테이블 이름> 내보낸 파일 이름
mysqldump -u user_name -p 데이터베이스_이름 테이블_이름 > outfile_name.sql

3. mysqldump -u user_name -p -d –add-drop-table Database_name > outfile_name.sql
-d 데이터 없음 –add-drop-table 각 생성 문 앞에 삭제 테이블을 추가합니다

4. 언어 매개변수 내보내기

mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt Database_name > outfile_name.sql

예를 들어 aaa 라이브러리를 다음 위치에 백업합니다. 파일 back_aaa :

[root@test1 root]# cd /home/data/mysql
[root@test1 mysql]# mysqldump -u root -p –opt aaa > back_aaa
7.1 데이터베이스 및 테이블 생성 예시 1
학교가 있으면 데이터베이스 삭제; //SCHOOL이 있으면 삭제
데이터베이스 학교 만들기
학교 사용 //도서관 SCHOOL 열기
테이블 만들기 // 테이블 생성 TEACHER
(
id int(3) auto_increment not null 기본 키,
name char(10) not null,
address varchar(50) default 'Shenzhen',
연도
); //테이블 생성 종료

//다음은 삽입된 필드입니다

교사 값에 삽입(”,'allen','Dalian No. 1 Middle School', '1976-10-10′) ;
교사 값에 삽입(”,'jack','Dalian No. 2 Middle School','1975-12-23′);

입력하면 mysql 프롬프트에서 위 명령을 실행하면 작동하지만 디버깅에는 편리하지 않습니다.

1. 위의 명령을 school.sql이라고 가정하고 텍스트 파일에 그대로 작성한 뒤, c:에 복사하고, DOS 상태의 디렉터리에 [url=file://mysqlbin]mysqlbin을 입력하면 됩니다. [/url ]을 입력한 후 다음 명령을 입력합니다.
mysql -uroot -p 비밀번호 < c:school.sql
성공하면 빈 줄을 남겨두고 오류가 있으면 아무것도 표시되지 않습니다. 메시지가 표시됩니다. (위 명령은 디버깅되었으므로 // 주석만 제거하면 사용할 수 있습니다.)

2. 또는 명령줄을 입력한 후 mysql> 소스 c:school.sql을 사용하여 school.sql 파일을 데이터베이스로 가져옵니다.

7.2 데이터베이스 및 테이블 생성 예시 2

학교가 있으면 데이터베이스 삭제; //SCHOOL이 있으면 삭제
데이터베이스 학교 생성
use school; //라이브러리 열기 SCHOOL
교사 테이블 만들기 //TEACHER 테이블 만들기
(
id int(3) auto_increment not null 기본 키,
name char(10) not null,
address varchar (50) default "Shenzhen",
연도
); //테이블 생성 종료

//다음은 삽입된 필드입니다

교사 값에 삽입 ("","glccheng", "심천 제1중학교","1976-10-10");
교사 값에 삽입("","jack","심천 제1중학교", "1975-12-23");

참고: 구성 중인 테이블에서

1. ID를 길이가 3인 숫자 필드로 설정하고 각 레코드를 자동으로 허용합니다. 1씩 증가합니다. auto_increment; 비어 있을 수 없습니다. null이 아니고 He가 기본 필드가 되도록 합니다.

2. NAME을 길이 10의 문자 필드로 설정합니다.

3. ADDRESS를 길이 50의 문자 필드로 설정하고 기본값은 Shenzhen입니다.

4. 날짜 필드를 YEAR로 설정합니다

위 내용은 MySQL 명령 모음(수집)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.