mSQL은 시스템 변수(종종 의사 필드, 의사 컬럼이라 부르는)를 지원한다. 이들 변수는 일반적인 필드와 동일한 방법으로 접근할 수 있다. 물론 이들 정보는 테이블로부터 읽혀진 것이 아니라 데이터베이스 엔진 자체에서 제공하는 것이다.
시스템 변수는 서버관리 정보나 데이터베이스와 연관된 메타데이타를 접근하는데 사용된다.
시스템 변수는 변수명을 밑줄(_)로 시작함으로 구분한다. 이러한 이름은 테이블이나 필드의 이름으로 사용할 수는 없다. 지원되는 시스템 변수와 이들 변수 사용예는 다음과 같다.
_rowid
_rowid 시스템 변수는 표의 행을 구분하는 구분자이다. 이 변수에 포함된 값은 mSQL 엔진에의해 수용된 내부 표시 번호이다. 이 것은 표의 행을 확인하기위해 임의의 질의문내에 포함될 수 있다. _rowid 시스템 변수의 사용 예는 다음과 같다.
select _rowid, first_name, last_name from emp_details
where last_name = 'Smith'
update emp_details set title = 'IT Manager'
where _rowid = 57
위에서 두 번째 예는 단지 하나의 행(_rowid가 57인)만 참조하게 된다.
_timestamp
_timestamp 시스템 변수는 임의의 행이 마지막으로 변경된 날자를 갖는다. 이 값은 표준 UNIX 시간 형식으로 정의되지만 응용 프로그램에의해 사용되기위한 것은 아니며 다른 행이 변경되기 전, 후로 변경되었는지를 판정하기 위해 사용된다.
select first_name, _timestamp from emp_details
where first_name like '%fred%' order by _timestamp
select * from emp_details where _timestamp 88880123
_sysdate
_sysdate는 DD-Mon-YYYY 형식으로 서버 머신의 현재 날자를 리턴한다.
select _sysdate from staff
_systime
_systime은 HH:MMSS 형식으로 서버 머신의 현재 시간을 리턴한다.
select _systime from staff
_user
임의의 테이블로부터 _user 변수를 선택하면 서버는 질의를 전송한 사용자의 이름을 리턴한다.
select _user from staff