> php教程 > PHP开发 > 본문

MySQL 명령 목록

高洛峰
풀어 주다: 2016-12-14 10:13:24
원래의
1087명이 탐색했습니다.

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 환경에서의 명령이므로 뒤에 오는 내용은 다음과 같습니다. 명령 종결자로 세미콜론

형식: "password"로 식별되는 사용자 이름@login 호스트에 대해 데이터베이스.*에 대한 선택 부여

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

그러나 더 많은 사용자를 추가하는 것은 매우 위험합니다. 누군가 test1의 비밀번호를 알고 있다면 인터넷상의 모든 컴퓨터에서 mysql 데이터베이스에 로그인하여 데이터에 액세스할 수 있습니다. 다음을 수행할 수 있습니다. 원하는 것이 무엇이든 해결 방법 2를 참조하세요.

2. 비밀번호 abc를 사용하여 test2 사용자를 추가합니다. 그러면 이 사용자는 localhost에만 로그인할 수 있고 데이터베이스 mydb( localhost )를 쿼리, 삽입, 수정 및 삭제할 수 있습니다. 로컬 호스트, 즉 MYSQL 데이터베이스가 위치한 호스트를 의미합니다.) 이렇게 하면 사용자가 test2의 비밀번호를 알고 있더라도 인터넷에서는 데이터베이스에 직접 접근할 수 없고 웹을 통해서만 접근할 수 있습니다. MYSQL 호스트
페이지에서 "abc"로 식별되는 [email=test2@localhost]test2@localhost[/email]에 mydb.*에 대한 선택, 삽입, 업데이트, 삭제 권한을 부여합니다.

test2에 비밀번호가 있는 것을 원하지 않으면 다른 명령을 입력하여 비밀번호를 삭제할 수 있습니다.
mydb.*에서 [email=test2@localhost]test2@localhost[/email에 대한 선택, 삽입, 업데이트, 삭제 권한을 부여합니다. ]는 ""로 식별됩니다.

4.1 데이터베이스 생성

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

명령: 데이터베이스

생성
예제 1: xhkdb 데이터베이스의 이름 만들기
mysql> create Database xhkdb; ,DELETE,CREATE,DROP,ALTER ON 데이터베이스 이름.* TO 데이터베이스 이름@localhost IDENTIFIED BY 'password';
③SET PASSWORD FOR 'database name'@'localhost' = OLD_PASSWORD('password');

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

4.2 데이터베이스 표시

명령: show 데이터베이스(참고: 끝에 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 코드: header("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; 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(*) FROM mytable; 🎜> mysql> USE db2;
mysql> SELECT COUNT(*) FROM mytable; # db2.mytable에서 선택

다른 테이블에 대한 액세스를 차단하지 않고 특정 현재 데이터베이스를 표시합니다. 데이터베이스. 다음 예에서는 db1 데이터베이스의 작성자 테이블과 db2 데이터베이스의 편집 테이블에 액세스할 수 있습니다.
mysql> USE db1;
mysql> SELECTauthor_name,editor_name FROM 작성자,db2.editor
-> ; 작성자 .editor_id = db2.editor.editor_id;

Sybase와의 호환성을 위해 USE 문이 설정되어 있습니다.

일부 네티즌들은 접속 후 어떻게 종료하는지 문의를 주셨습니다. 실제로 데이터베이스를 사용한 후에는 show 데이터베이스를 사용하여 모든 데이터베이스를 쿼리할 수 있습니다. 다른 데이터베이스로 이동하려면
다른 데이터베이스 이름 사용
을 사용하면 됩니다.

4.5 현재 선택된 데이터베이스

명령: mysql> select Database();

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

1. MYSQL 버전 표시
mysql> 버전 선택()
+--------- +
| 버전() |
+----------+
| 🎜 >+----------+
1행 세트(0.02초)

2. 현재 시간을 표시합니다.
mysql> 선택 지금()
+-------+
| 지금() | -- -----+
| 2009-09-15 22:35:32
+------------ --- --------+
1행(0.04초)

3. 연도, 월, 일 표시
SELECT DAYOFMONTH(CURRENT_DATE)
+ ----- --------+
| DAYOFMONTH(CURRENT_DATE)
+---------- ----- ----------+
| 15
+------------ --+
1개 행(0.01초)

SELECT MONTH(CURRENT_DATE)
+------- ------+
| 월(CURRENT_DATE)
+---------+
+------ ---------------+
1행 세트(0.00초)

연도 선택(CURRENT_DATE)
+--------- ------------+
| 연도(CURRENT_DATE)
+--------------- ------+
| 2009
+-------------+
세트에 1개 행 (0.00초)

4. 표시 문자열
mysql> "welcome to my blog!"; ----+
| 내 블로그에 오신 것을 환영합니다
+---------+
| |
+--------- ---------------+
세트당 1행(0.00초)

5. 계산기에서는
select ((4 * 4) / 10 ) + 25
+---------+
| ((4 * 4) / 10 ) + 25
+ ----------+
| --- -----+
1행(0.00초)

6. 문자열 연결
CONCAT(f_name)을 선택하세요. , " ", l_name)
직원_데이터의 AS 이름

여기서 직함 = '마케팅 임원'
+---------------+
| 이름 |
+------ --------+
| 할 심라이
+--- -----------+
세트의 3개 행(0.00초)
참고: 여기서는 CONCAT() 함수를 사용하여 문자열을 연결합니다. 또한, 결과 컬럼 'CONCAT(f_name, " ", l_name)'에 가명을 부여하기 위해 앞서 배운 AS도 활용했습니다.

5.1 데이터 테이블 생성

명령: 테이블 생성 ( [,.. ]);

예를 들어 MyClass라는 테이블을 생성합니다.

mysql> create table MyClass(
> id int (4 ) null이 아님 기본 키 auto_increment,
> name char(20) not null,

> sex int(4) null이 아님 기본값 '0',

> ;MySQL 명령 목록

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 )]

예: MyClass 테이블에 두 개의 레코드를 삽입합니다. 이 두 레코드는 숫자 1인 Tom이라는 사람의 점수가 96.45이고, 숫자 2인 Joan이라는 사람의 점수가 82.99입니다. 3번 왕이라는 사람의 점수는 96.5점이었습니다.
mysql> insert into MyClass 값(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

참고: 모든 항목에 삽입 한 번에 하나의 레코드만 테이블에 삽입할 수 있습니다.

5.5 테이블의 데이터 쿼리

1) 모든 행 쿼리
명령:
예: MyClass 테이블의 모든 데이터 보기
mysql> MyClass에서 * 선택;

2) 데이터의 처음 몇 행 쿼리
예: 테이블 보기 MyClass 데이터의 처음 2행
mysql> select * from MyClass order by idlimit 0,2>select는 일반적으로 보다 정확하고 복잡한 데이터를 쿼리하는 위치와 함께 사용됩니다.

5.6 테이블의 데이터 삭제

명령: 표현식이 있는 테이블 이름에서 삭제

예: MyClass 테이블에서 1번 레코드를 삭제합니다.
mysql> from MyClass where id=1;

다음은 데이터 삭제 전과 후의 테이블 비교입니다.

MySQL 명령 목록다음은 PHP 코드를 예로 들어 "Persons" 테이블에서 LastName='Griffin'인 모든 레코드를 삭제합니다.


여기 삭제 후 테이블은 다음과 같습니다.
<?php 
   $con = mysql_connect("localhost","peter","abc123"); 
   if (!$con) 
   {
      die(&#39;Could not connect: &#39; . mysql_error()); 
   } 
   mysql_select_db("my_db", $con); 
   mysql_query("DELETE FROM Persons WHERE LastName=&#39;Griffin&#39;"); mysql_close($con); 
?>
로그인 후 복사


MySQL 명령 목록5.7 테이블의 데이터 수정

구문: 테이블 이름 설정 필드 업데이트 = 새 값,… 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), 기본값은 0입니다.

mysql> alter table MyClass add passtest int(4) default '0'

add index
mysql> (필드 이름 1[, 필드 이름 2...]);
예: mysql> alter table Employees add index emp_name(name);

기본 키 인덱스 추가
mysql> 테이블 이름 변경(필드 이름);
예: mysql> 테이블 직원 추가 기본 키(id);

고유 제한 인덱스 추가
mysql> 인덱스 이름(필드 이름);
예: mysql> alter table Employees add Unique emp_name2(cardnumber);

인덱스 삭제
mysql> alter table table name drop index index name;
예: mysql> ;alter table Employees drop index 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://\mysql\bin]\mysql\bin[/url] 디렉터리에서 실행됩니다.

1. 전체 데이터베이스 내보내기
내보내기 파일 기본적으로 mysqlbin에 저장됩니다.
mysqldump -u username-p 데이터베이스 이름> 내보낸 파일 이름
mysqldump -u user_name -p123456 데이터베이스_이름 > outfile_name.sql

2. > 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; //도서관 SCHOOL 생성
학교 열기;
create table Teacher //테이블 생성 TEACHER
(
id int(3) auto_increment not null 기본 키,
name char(10) not null,
address varchar(50) default ' Shenzhen' ,
연도
); //테이블 생성 끝

//다음은 삽입된 필드입니다
sert into Teacher value(”,'allen','Dalian No . 1 중학교','1976 -10-10′);
교사 값에 삽입(”,'jack','Dalian No. 2 Middle School','1975-12-23′);

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

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


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

학교가 있으면 데이터베이스 삭제; //SCHOOL이 있으면 삭제

create 데이터베이스 school; // 라이브러리 SCHOOL 생성
use school; //라이브러리 SCHOOL 열기
교사 테이블 생성 //TEACHER 테이블 생성
(
id int(3) auto_increment not null 기본 키,
name char (10 ) not null,
주소 varchar(50) 기본 ''Shenzhen'',
연도
) //테이블 생성 종료

//다음은 삽입된 내용입니다. 필드
교사 값에 삽입('''',''glccheng'',''Shenzhen No. 1 Middle School'',''1976-10-10'');
교사 값에 삽입( '''',''jack '',''심천제1중학교'',''1975-12-23'');

참고: 공사중 테이블에서
1 . ID를 길이가 3인 숫자 필드로 설정합니다: int(3); 각 레코드에 자동으로 하나를 추가합니다: auto_increment; not null;

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

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

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


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!