>  기사  >  데이터 베이스  >  MySQL, 시스템 정보 기능 도입

MySQL, 시스템 정보 기능 도입

coldplay.xixi
coldplay.xixi앞으로
2021-03-04 09:17:182233검색

MySQL, 시스템 정보 기능 도입

시스템 정보 함수

(1) MySQL 버전 번호, 연결 번호, 데이터베이스 이름을 가져오는 함수
(2) 사용자 이름을 가져오는 함수
(3) MySQL의 문자 집합 및 정렬 방법을 가져오는 함수 string
( 4) 자동으로 생성된 마지막 ID 값을 가져오는 함수

(관련 무료 학습 권장 사항: mysql 비디오 튜토리얼 )

(1), MySQL 버전 번호, 연결 수 및 데이터베이스 이름을 가져오는 함수

1.version( )

  • version()은 MySQL 서버 버전을 나타내는 문자열을 반환합니다. 이 문자열은 utf8 문자 집합을 사용합니다.

【예】현재 MySQL 버전 번호를 보려면 SQL 문은 다음과 같습니다.

mysql> select version();+-----------+| version() |+-----------+| 8.0.16    |+-----------+1 row in set (0.05 sec)

2.connection_id()

  • connection_id()는 MySQL 서버에 대한 현재 연결 수를 반환합니다. 자신의 고유 ID.

【예】현재 사용자의 연결 수를 보려면 SQL 문은 다음과 같습니다.

mysql> select connection_id();+-----------------+| connection_id() |+-----------------+|              18 |+-----------------+1 row in set (0.05 sec)

3.show processlist 및 show full processlist

  • processlist 명령의 출력은 어떤 스레드가 실행 중인지 보여줍니다. 현재 연결 수를 모두 볼 수 있을 뿐만 아니라 현재 연결 상태를 볼 수 있어 문제가 있는 쿼리 문 등을 식별하는 데 도움이 됩니다.
  • 루트 계정이 있으면 모든 사용자의 현재 연결을 볼 수 있습니다. 다른 일반 계정이 있으면 자신이 차지하는 연결만 볼 수 있습니다. show processlist는 처음 100개의 항목만 나열합니다. 모든 항목을 나열하려면 show full processlist 명령을 사용하십시오.

[예] showprocesslist 명령을 사용하여 현재 사용자의 연결 정보를 출력합니다. SQL 문은 다음과 같습니다.

mysql> show processlist;+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+| Id | User            | Host            | db      | Command | Time   | State                  | Info             |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+|  4 | event_scheduler | localhost       | NULL    | Daemon  | 381487 | Waiting on empty queue | NULL             || 18 | root            | localhost:60272 | company | Query   |      0 | starting               | show processlist |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+2 rows in set (0.05 sec)

각 열의 의미:

Hostdb CommandTimeStateInfo4. 데이터베이스() 및 스키마()
column meaning
id 열 MySQL에 대한 사용자 로그인 시스템에서 "연결 ID"
User 를 할당하면 현재 사용자가 루트가 아닌 경우 사용자 권한 내에서 MySQL 문을 표시합니다.
는 이 명령문이 발행된 IP와 포트를 표시하며, 문제가 있는 명령문의 사용자를 추적하는 데 사용할 수 있습니다.
이 프로세스가 현재 어떤 데이터베이스에 연결되어 있는지 표시
현재 연결의 실행 명령을 표시합니다. 일반적으로 값은 sleep(sleep)입니다. ), Query, Connect
이 상태의 지속 시간을 초 단위로 표시합니다.
상태를 표시합니다. 현재 연결을 사용하는 SQL 문 중 상태는 실행 중인 문일 뿐입니다.
의 특정 상태는 이 SQL 문을 표시하며 이는 문제 문을 판단하는 데 중요한 문입니다.
[예] 현재 사용 중인 데이터베이스, SQL 문을 확인합니다.

mysql> select database(),schema();+------------+----------+| database() | schema() |+------------+----------+| company    | company  |+------------+----------+1 row in set (0.00 sec)

(2), 사용자 이름을 가져오는 함수
user(), current_user(), system_user() 및 session_user() 이 함수는 현재 MySQL 서버에서 확인한 사용자 이름과 호스트 이름 조합을 반환합니다. 이 값은 현재 로그인된 사용자의 접근 권한을 결정하는 MySQL 계정에 해당합니다.
  • [예제] 현재 로그인된 사용자의 이름을 가져옵니다. SQL 문은 다음과 같습니다.

반환된 결과 값은 현재 계정이 서버에 연결되고 연결된 클라이언트 호스트가 루트인 경우의 사용자 이름을 나타냅니다. 현재 로그인된 사용자 이름과 localhost는 로그인 호스트 이름입니다.
  • mysql> select user(),current_user,system_user();+----------------+----------------+----------------+| user()         | current_user   | system_user()  |+----------------+----------------+----------------+| root@localhost | root@localhost | root@localhost |+----------------+----------------+----------------+1 row in set (0.05 sec)
(3), 문자열의 문자 집합 및 정렬 방법을 가져오는 함수
1.charset(str)

[예] charset() 함수를 사용하여 문자열을 반환합니다. 문자 집합, SQL 문은 다음과 같습니다. charset(str)

【例】使用charset()函数返回字符串使用的字符集,SQL语句如下:

mysql> select charset('abc'),
    -> charset(convert('abc' USING latin1 ) ),
    -> charset(version());+----------------+----------------------------------------+--------------------+| charset('abc') | charset(convert('abc' USING latin1 ) ) | charset(version()) |+----------------+----------------------------------------+--------------------+| gbk            | latin1                                 | utf8               |+----------------+----------------------------------------+--------------------+1 row in set (0.00 sec)

2.collation(str)

【例】使用collation()函数返回字符串排列方式,SQL语句如下:

mysql> select collation('abc'),collation(convert('abc' USING utf8 ));+------------------+---------------------------------------+| collation('abc') | collation(convert('abc' USING utf8 )) |+------------------+---------------------------------------+| gbk_chinese_ci   | utf8_general_ci                       |+------------------+---------------------------------------+1 row in set, 1 warning (0.05 sec)

(4)、获取最后一个自动生成的ID值的函数

【例】使用select last_insetr_id查看最后一个自动生成的列值,执行过程如下:

①一次插入一条记录
首先创建表worker,其id字段带有auto_increment约束,SQL语句如下:

mysql> create table worker    -> (
    -> id int auto_increment not null primary key,
    -> Name varchar(30)
    -> );Query OK, 0 rows affected (0.21 sec)

分别单独向表worker中插入两条记录:

mysql> insert into worker values(null,'jimy');Query OK, 1 row affected (0.07 sec)mysql> insert into worker values(null,'Tom');Query OK, 1 row affected (0.05 sec)mysql> select * from worker;+----+------+| id | Name |+----+------+|  1 | jimy ||  2 | Tom  |+----+------+2 rows in set (0.00 sec)

查看已经插入的数据,发现最后一条插入的记录的id字段值为2,使用last_insert_id()查看最后自动生成的id值:

mysql> select last_insert_id();+------------------+| last_insert_id() |+------------------+|                2 |+------------------+1 row in set (0.05 sec)

可以看到,一次插入一条记录时,返回值为最后一条插入记录的id值。

②一次同时插入多条记录
向表中插入多条记录:

mysql> insert into worker values
    -> (null,'Kevin'),
    -> (null,'Michal'),
    -> (null,'NICK');Query OK, 3 rows affected (0.05 sec)Records: 3  Duplicates: 0  Warnings: 0mysql> SELECT * FROM WORKER;+----+--------+| id | Name   |+----+--------+|  1 | jimy   ||  2 | Tom    ||  3 | Kevin  ||  4 | Michal ||  5 | NICK   |+----+--------+5 rows in set (0.00 sec)

使用last_insert_id查看最后自动生成的id值:

mysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+|                3 |+------------------+1 row in set (0.00 sec)

使用一条insert语句插入多个行时,last_insert_id()只返回插入的第一行数据时产生的值,在这里为插入第3条记录。之所以这样是因为这使依靠其他服务器复制同样的insert语句变得简单。

提示:

  • last_insert_id是与table无关的,先向表a插入数据,再向表b插入数据,last_insert_idrrreee
  • 2.collation(str)
[예] 문자열 배열을 반환하려면 collation() 함수를 사용하세요. SQL 문은 다음과 같습니다.

rrreee

(4), 마지막 자동 생성된 ID 값을 가져오는 함수

[예제] select last_insetr_id를 사용하여 마지막 자동 생성된 열 값을 확인하는 방법은 다음과 같습니다.
🎜①한 번에 하나의 레코드를 삽입합니다🎜 먼저 id 필드에 auto_increment 제약 조건이 있는 테이블 워커를 만듭니다. SQL 문은 다음과 같습니다. 🎜rrreee🎜테이블 워커에 두 개의 레코드를 별도로 삽입합니다. 🎜rrreee🎜삽입된 데이터를 보고 마지막으로 삽입된 레코드의 id 필드 값이 2임을 확인합니다. last_insert_id()를 사용하여 마지막으로 자동 생성된 id 값을 확인합니다. 🎜rrreee🎜한 번에 하나의 레코드를 삽입할 때 반환 값이 마지막으로 삽입된 레코드의 ID 값입니다. last_insert_id()는 데이터의 첫 번째 행이 삽입될 때 생성된 값만 반환합니다. 여기서는 세 번째 레코드가 삽입됩니다. 그 이유는 다른 서버에 의존하여 동일한 insert 문을 복제하기가 쉽기 때문입니다. 🎜🎜팁: 🎜🎜🎜last_insert_id는 테이블 a에 먼저 데이터를 삽입한 다음 테이블 b에 데이터를 삽입합니다. . 🎜🎜🎜🎜관련 무료 학습 권장 사항: 🎜mysql 데이터베이스🎜(동영상)🎜🎜

위 내용은 MySQL, 시스템 정보 기능 도입의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제