mysql常用語句及關鍵字

來源:互聯網
上載者:User

標籤:employee   rem   資料類型   ODB   key   trace   inner   enc   相同   

一、常用sql語句

1.建立資料庫

create  database test;

2.刪除資料庫

drop database test;

3.使用資料庫

use test;

4.建立資料表

create table sys_role(
 id int(4) not null primary key ,
 available char(20) not null,
 description char(20) not null,
 role char(20) not null
 )  engine=InnoDB default charset=utf8;

5.刪除資料表

drop table if   exists  sys_role;

6.插入資料

insert  into  sys_role   values(1,‘0‘,‘管理員‘,‘admin‘);
7.查詢資料

select * from sys_role;

8.修改資料

update sys_role  set role=‘user‘ where id=1;

9.刪除資料

delete from sys_role  where id=1;

 二、關鍵字及符號

0. Constraints :SQL 約束

約束用於限制加入表的資料的類型。
可以在建立表時規定約束(通過 CREATE TABLE 語句),或者在表建立之後也可以(通過 ALTER TABLE 語句)。
比如,not null,unique,primary key,foreign key,default都屬於約束

可以用CONSTRAINT 命名約束。如下,命名外鍵約束為fk_PerOrders。

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

1.primary key 主鍵

主鍵表示該列值在表中是唯一的,不可以有重複。

主鍵必須包含唯一的值。主鍵列不能包含 NULL 值。
每個表都應該有一個主鍵,並且每個表只能有一個主鍵。

2.auto_increment  自增

auto_increment 就是對主鍵自動增加編號的。

3.unsigned  無符號
unsigned是無符號的意思,代表該欄位沒有正負。

4.欄位資料類型中,varchar和char的區別是什嗎?

varchar長度是可變的,能夠節省空間的。比如說儲存"abc",CHAR(10)需要10個字元的空間來儲存,而VARCHAR(10)只需要3個字元的空間。

 5.FOREIGN KEY  外鍵約束

一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。

如下示,Id_P是Orders表的外鍵,也是Persons表的主鍵。可以用CONSTRAINT 命名約束。命名外鍵約束為fk_PerOrders。

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

6.  % 萬用字元,表示一個或多個字元

如下示,查詢170開頭的電話號碼。

select * from phone_info  where  phoneNumber like  "170%"

7.  JOIN  用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料。通過Inner Join  ...  On   實現。

如下示,尋找Persons中Id_P和Orders表中Id_P相同的資料。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

各種join的區別:

JOIN: 如果表中有至少一個匹配,則返回行

INNER JOIN 與 JOIN 是相同的。
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行

8. UNION  聯表查詢
UNION 操作符用於合并兩個或多個 SELECT 語句的結果集。
請注意,UNION 聯合的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的資料類型。
同時,每條 SELECT 語句中的列的順序必須相同。

如下示:

SELECT Employee_Name FROM Employees_China
UNION   SELECT Employee_Name FROM Employees_USA
另外,UNION和UNION ALL區別:
預設地,UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL。

9.UNIQUE 約束, 使資料庫表中的某一列或某幾列的裡面的內容不重複

10.SELECT INTO   查詢並插入
SELECT INTO 語句從一個表中選取資料,然後把資料插入另一個表中。

SELECT INTO 語句常用於建立表的備份複件或者用於對記錄進行存檔。

SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

11.Group By   分組

將查詢結果按某一列或多列的值分組

如下示:

select Cno,count(sno)
from course
group by Cno;

一張表,一旦分組完成後,查詢後只能得到組相關的資訊。可以通過count,sum,max,min,avg統計。

--統計分組後各種情況的數量
select  count(*),age,sex  from staff where 1=1
and create_date>=‘2018-05-07 00:00:00‘  
group by age,sex
order by age asc

12.Having     

對由sum()或其它集合函數運算結果的輸出進行限制。如下示:

SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500

13.COUNT(column_name) 函數返回指定列的值的數目

COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目:

14.Case   ...  When 可以作為COUNT的條件

比如,count( CASE WHEN ERRSTR is  not null THEN 1 ELSE NULL END )表示如果ERRSTR不是空那麼就計數1,用於計算ERRSTR不為空白的數量

類似於程式設計語言中的if else。是判斷語句

比如:

select    MOND_ID,INTERFACE_CODE,count(*) as REQUEST_COUNT, count( CASE WHEN ERRSTR is  not null THEN 1 ELSE NULL END ) as FAILURE_COUNT
from vbase.ESB_TRACE_20180428 where 1=1
and CREATE_DATE>=‘2018-04-28 09:00:00‘  
and  CREATE_DATE<‘2018-04-28 09:30:00‘
and INTERFACE_CODE=‘Svc_ProvisionRet‘
group by MOND_ID,INTERFACE_CODE
order by MOND_ID asc

四、Index   索引

索引對於操作者,僅僅提供建立、刪除和修改的功能。操作者在增刪改查過程中,系統會自動調用索引。

可以在表中建立索引,以便更加快速高效地查詢資料。通過Create Index ... On實現。

建立一個簡單的索引,名為 "PersonIndex",在 Person 表的 LastName 列,如下示:

CREATE INDEX PersonIndex
ON Person (LastName)

 

九、附錄。 思考:

mysql常用語句及關鍵字

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.