집 >데이터 베이스 >MySQL 튜토리얼 >MySQL, 시스템 정보 기능 도입
시스템 정보 함수
(1) MySQL 버전 번호, 연결 번호, 데이터베이스 이름을 가져오는 함수
(2) 사용자 이름을 가져오는 함수
(3) MySQL의 문자 집합 및 정렬 방법을 가져오는 함수 string
( 4) 자동으로 생성된 마지막 ID 값을 가져오는 함수
(관련 무료 학습 권장 사항: mysql 비디오 튜토리얼 )
1.version( )
【예】현재 MySQL 버전 번호를 보려면 SQL 문은 다음과 같습니다.
mysql> select version();+-----------+| version() |+-----------+| 8.0.16 |+-----------+1 row in set (0.05 sec)
2.connection_id()
【예】현재 사용자의 연결 수를 보려면 SQL 문은 다음과 같습니다.
mysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 18 |+-----------------+1 row in set (0.05 sec)
3.show processlist 및 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)
각 열의 의미:
column | meaning |
---|---|
id 열 | MySQL에 대한 사용자 로그인 시스템에서 "연결 ID" |
User | 를 할당하면 현재 사용자가 루트가 아닌 경우 사용자 권한 내에서 MySQL 문을 표시합니다. |
는 이 명령문이 발행된 IP와 포트를 표시하며, 문제가 있는 명령문의 사용자를 추적하는 데 사용할 수 있습니다. | |
이 프로세스가 현재 어떤 데이터베이스에 연결되어 있는지 표시 | |
현재 연결의 실행 명령을 표시합니다. 일반적으로 값은 sleep(sleep)입니다. ), Query, Connect | |
이 상태의 지속 시간을 초 단위로 표시합니다. | |
상태를 표시합니다. 현재 연결을 사용하는 SQL 문 중 상태는 실행 중인 문일 뿐입니다. | |
의 특정 상태는 이 SQL 문을 표시하며 이는 문제 문을 판단하는 데 중요한 문입니다. |
mysql> select database(),schema();+------------+----------+| database() | schema() |+------------+----------+| company | company |+------------+----------+1 row in set (0.00 sec)
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)
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)
【例】使用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_id
rrreeecollation(str)
[예] 문자열 배열을 반환하려면 collation() 함수를 사용하세요. SQL 문은 다음과 같습니다. [예제] 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!