3 mySQL 輸入查詢

2021-10-21 14:18:54 字數 3266 閱讀 7333

輸入查詢,確保已經連線到伺服器。這樣做本身並不選擇要使用的任何資料庫。

看乙個簡單的查詢。要求伺服器告訴您其版本號和當前日期。

mysql>

select version(),

current_date;+

---------------------------+--------------+

| version()|

current_date|+

---------------------------+--------------+

|10.3

.27-mariadb-

0+deb10u1 |

2021-03

-09|+

---------------------------+--------------+

1row

inset

(0.000 sec)

mysql>

注意一些事情:

下面的一些查詢是等效的。

mysql>

select version(),

current_date

;mysql>

select version(),

current_date

;mysql>

select version(),

current_date

;

看乙個例子,說明可以將 mysql 用作簡單的計算器:

mysql>

select sin(pi()/

4),(

4+1)

*5;+

------------------+---------+

| sin(pi()/

4)|(

4+1)

*5|+

------------------+---------+

|0.70710678118655|25

|+------------------+---------+

1row

inset

(0.02 sec)

也可以一行輸入多個語句,只要用分號來結束就行。

select version();

select

now();

+---------------------------+

| version()|

+---------------------------+

|10.3

.27-mariadb-

0+deb10u1 |

+---------------------------+

1row

inset

(0.000 sec)

+---------------------+

|now()

|+---------------------+

|2021-03

-0916:31:44|+

---------------------+

1row

inset

(0.000 sec)

或者也可以寫多行語句,最後分號結束就行。

select

->

user()

->,-

>

current_date;+

----------------+--------------+

|user()

|current_date|+

----------------+--------------+

| root@localhost

|2021-03

-09|+

----------------+--------------+

1row

inset

(0.000 sec)

提示從 mysql>變為的方式->。這就是 mysql表示尚未看到完整語句並正在等待其餘語句的方式。說明可以在下一行接著寫沒寫完的語句。

如果不想執行輸入過程中的查詢,那麼可以使用 ctrl+c 來取消

mysql>

select

->

user()

-> \c

mysql>

mysql>鍵入後\c,它會切換回 ,提供反饋以指示mysql已準備好進行新查詢。

一些 mysql 所處狀態的含義。

提示意義

mysql>

準備進行新查詢

->

等待多行查詢的下一行

'>

等待下一行,等待以單引號(』)開頭的字串的完成

">

等待下一行,等待以雙引號(")開頭的字串的完成

`>

等待下一行,等待以反引號開頭的識別符號的完成

/*>

等待下一行,等待以開頭的注釋的完成 /*

我們平時寫**的時候總是會忘記分號,然後就會有提示 -> ,

mysql>

select

user()

->

這個時候只需要加乙個分號即可。

mysql>

select

user()

->;+

----------------+

|user()

|+----------------+

| root@localhost|+

----------------+

您看到』>或 ">提示時,表示您已經輸入了包含以』 或"引號字元開頭的字串的行,但尚未輸入終止該字串的匹配引號。這通常表明您無意中省略了引號字元。例如:

mysql>

select

*from my_table where name =

'smith and age < 30;

'>

最簡單的解決辦法是取消查詢。但是,\c在這種情況下,您不能僅輸入內容,因為mysql會將其解釋為所收集字串的一部分。而是輸入右引號(因此mysql知道您已經完成了字串),然後鍵入\c:

mysql>

select

*from my_table where name =

'smith and age < 30;

'> '\c

mysql>

3mysql查詢擷取分析

explain 分析 1觀察,至少跑一天,看看生產的慢sql情況 2開啟慢查詢日誌,設定闕值,比如超過5秒鐘的就是慢sql,並將它抓取出來 3explain 慢sql分析 4show profile 5運維經理 or dba,進行sql資料庫伺服器的引數調優 總結 1慢查詢的開啟並捕獲 2expla...

mysql高階3 MYSQL高階

檢視 create view v employee asselect a.empid,a.empname,a.gender,b.deptname from employee a left join dept b on a.deptid b.deptid select from v employee ...

3 mysql分庫分表

垂直拆分 垂直拆分就是要把表按業務模組劃分到不同資料庫表中,乙個大的專案拆分成若干個小專案,將表根據業務放至在不同的業務資料庫中.非常有利於進行區域性的優化和治理,保障核心模組的穩定性 垂直拆分用於分布式場景.當乙個 還在很小的時候,只有小量的人來開發和維護,各模組和表都在一起,當 不斷豐富和壯大的...