1. 程式人生 > 其它 >15個MySQL常用基本SQL語句

15個MySQL常用基本SQL語句

在學習SQL語句之前,首先需要區分幾個概念,我們常說的資料庫是指資料庫軟體,例如MySQL、Oracle、SQL Server等,而本文提到的資料庫是指資料庫軟體中的一個個用於儲存資料的容器。

 

 在MySQL中,資料庫稱為database,資料表稱為table,一個數據庫軟體中有多個數據庫(databases),每個資料庫中又可以有多個數據表(tables),最終,資料是儲存在資料表中。

資料庫和資料表之間的關係可以用下面這個圖來表示,對於一個數據庫來說,有多個數據表。 

在正式開始寫SQL語句之前,需要說明兩點。

  1. SQL語句不區分大小寫。
  2. 每條SQL語句以分號(;)結尾(英文輸入法下的分號)。

這裡通過MySQL Workbench來寫SQL程式碼,在Workbench中,執行一條SQL語句的方式有兩種。

  • 一種是通過上方快捷選單中的按鈕。
  • 另一種是通過快捷鍵Ctrl+Enter。 

 

 瞭解了這之後,接下來介紹一些常見的命令,分兩部分:資料庫常用命令和資料表常用命令。

一、資料庫常用SQL語句

1、檢視有哪些資料庫 

show databases;

2、建立資料庫 

create database Testdb; 

建立一個名為Testdb的資料庫。

3、建立資料庫並指定編碼格式

有些時候,為了防止中文亂碼,建立資料庫的時候需要指定編碼格式。 

create
database mydb character set utf8mb4;

4、使用某個資料庫 

use mydb; 

使用mydb這個資料庫,或者進入mydb這個資料庫。

5、刪除資料庫 

drop database Testdb; 

刪除Testdb這個資料庫。

二、資料表常用SQL語句

1、檢視有哪些資料表

進入某個資料庫之後,想檢視有哪些資料表,SQL語句為: 

use mydb; 
show tables; 

mydb是一個新建的資料庫,所以自然是沒有資料表。

2、建立資料表

建表SQL語句格式為: 

create table <tablename>
( <欄位名稱> <資料型別>, <欄位名稱> <資料型別>, <欄位名稱> <資料型別>, ...... );

說明:每個欄位以逗號分隔,最後一個欄位不加逗號。

例如,給定一個學員資訊表,如下表所示。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

根據以上表格,建表SQL語句如下。 

create table stuInfo( 
        stuid int unsigned primary key, 
        stuname varchar(10) not null, 
        gender varchar(5), 
        birthdate date, 
        age int(3), 
        city varchar(20) 
); 

以上語句中,primary key表示主鍵,意思是這個欄位作為記錄的唯一標識,就像每個人的身份證號,都是唯一確定的。

3、查看錶結構

查看錶結構的SQL命令為: 

describe stuinfo; 

執行該命令會顯示錶stuinfo的基本結構,例如有哪些欄位,每個欄位是什麼型別,誰是主鍵等。

4、修改資料表

修改資料表通過drop子句進行,比如,建完表後,想增加一個欄位,SQL語句的格式為:

alter table <tablename> add <column> varchar(20); 

想在指定位置增加一個欄位,例如,在某個欄位後增加一個欄位,SQL語句的格式為:

alter table <tablename> add <column> varchar(20) after <column>; 

如果在某個欄位之前增加欄位,用before即可。

例如,在欄位age後增加一個欄位major(專業),SQL語句為: 

alter table stuinfo add major varchar(20) after age; 

執行這個命令,再通過describe查看錶結構,會發現表中多了一個欄位major。

如果要刪除major這個欄位,通過drop子句,SQL語句為: 

alter table stuinfo drop major; 

5、重命名錶

重命名錶通過alter+rename來實現,SQL語句格式為:

<new_tablename>

alter table <tablename> rename <new_tablename> ; 

這裡為了不影響之前建立的表,我們建立一個新表,SQL語句如下。 

create table stuInfoTest( 
    stuid int unsigned primary key, 
    stuname varchar(10)  
); 

以上建立一個名為stuInfoTest的表,現在想將它的名稱改成stuinfotest1,SQL語句為: 

alter table stuinfotest rename stuinfotest1; 

6、刪除資料表

刪除資料表通過drop進行,SQL語句格式為:

drop table <tablename>; 

例如,刪除資料表stuinfotest1,SQL語句為: 

drop table stuinfotest1; 

7、插入記錄

此時的表stuinfo是空的,沒有資料,我們要向表中插入記錄。

插入記錄通過insert into進行,SQL語句格式為:

insert into <tablename>(欄位1,欄位2,......) values(欄位1的值,欄位2的值,......); 

例如,向表stuinfo插入一條記錄,SQL語句為: 

insert into stuinfo(stuid,stuname,gender,birthdate,age,city)  
values(20161001,'Sunbin','','1990/1/1',28,'Beijing'); 

注意:上方是一條SQL語句,為了可讀性換行,記住一條SQL語句預設以分號結尾。

如果需要一次性插入多條記錄,SQL語句格式為: 

insert into <tablename>(欄位1,欄位2,......) values 
(欄位1的值,欄位2的值,......), 
(欄位1的值,欄位2的值,......), 
(欄位1的值,欄位2的值,......); 

例如,向表stuinfo再插入兩條記錄,SQL語句為: 

insert into stuinfo(stuid,stuname,gender,birthdate,age,city)  
values(20161002,'Wangwu','','1991/1/3',19,'Beijing'), 
(20161003,'Lisi','','1990/11/4',21,'Shanghai'); 

注意:如果設定了主鍵,插入記錄的主鍵欄位是不能重複的,也就是不能插入重複的記錄。

作業:大家可以按照上述方法將上面的學員資訊表中的所有記錄都插入表stuinfo中。

8、查詢記錄

有了資料之後,就可以查詢記錄了,查詢記錄通過select子句進行。

例如,想查詢表stuinfo中的所有記錄,SQL語句為: 

select * from stuinfo; 

執行之後,就可以看到表stuinfo中的所有記錄了。

如果想查詢符合某個條件的記錄,就要用到where子句了,SQL格式為:

select * from <tablename> where 欄位名=某個值;

例如,想查詢stuid為20161001的記錄,SQL語句為: 

select * from stuinfo where stuid=20161001; 

9、刪除記錄

刪除記錄通過delete子句進行,SQL語句格式為:

delete from <tablename> where 欄位名=某個值; 

例如,想刪除stuid為20161002的記錄,SQL語句為: 

delete from stuinfo where stuid=20161002; 

10、修改記錄

修改記錄通過update子句進行,update就是更新的意思,SQL語句格式為:

update <tablename> set 欄位1=某個值 where 欄位2=某個值; 

例如,想將學號(stuid)為20161001的記錄的姓名(stuname)更新為Jack,SQL語句為: 

update stuinfo set stuname='Jack' where stuid=20161001; 

以上,就是MySQL中的基本SQL語句。