MySQL教程 SQL基本操作

來源:互聯網
上載者:User

標籤:並且   har   from   rename   esc   修改表   查看   rac   efault   

SQL的基本操作無非就是增刪改查(CRUD),根據對操作的對象分類,又可以分為三類,庫操作,表操作與資料操作

庫操作 新增資料庫
CREATE DATABASE [IF NOT EXISTS] db_name [庫選項]

其中庫選項是用來約束資料庫, 分為兩個選項

字元集設定:CHARACTER SET 具體字元集(資料存放區的編碼格式): 常用字元集: GBK和UTF8

校對集設定:COLLATE 具體校對集(資料比較的規則)

-- 建立一個名稱為db的資料庫,並且設定字元集為utf8CREATE DATABASE IF NOT EXISTS db CHARACTER SET utf8;

注意這裡建立的資料庫的名字不能用關鍵字(已經使用的字元)或者保留字(將來可能使用到的)

如果一定想要用關鍵字或者保留字,那麼需要用到反引號(一般在鍵盤上Esc鍵的下方,要在英文狀態下輸出)

CREATE DATABASE IF NOT EXISTS `database` CHARACTER SET utf8;

當然,也可以建立中文名稱的資料庫(不建議使用)

CREATE DATABASE IF NOT EXISTS `資料庫` CHARACTER SET utf8;
查看資料庫
SHOW DATABASES [LIKE ‘pattern‘]

其中pattern是匹配模式

%:表示匹配多個字元

_:表示匹配一個字元

-- 查看所有資料庫SHOW DATABASES;
-- 查看以information_開頭的資料庫,需要對中劃線_進行轉義SHOW DATABASES LIKE ‘information\_%‘;

-- 查看以information開頭的資料庫,相當於information%SHOW DATABASES LIKE ‘information_%‘;

查看資料庫的建立語句

SHOW CREATE DATABASE db_name
-- 查看資料庫db的建立語句SHOW CREATE DATABASE db;

更新資料庫
ALTER DATABASE db_name [庫選項]
-- 修改資料庫db的字元集ALTER DATABASE db CHARACTER SET gbk; 
刪除資料庫
DROP DATABASE [IF EXISTS] db_name
-- 刪除db資料庫DROP DATABASE IF EXISTS db;
表操作 新增資料表
CREATE TABLE [IF NOT EXISTS] tbl_name(    col_name type,    col_name type    )

任何一個表的設計都必須指定資料庫

顯示指定

-- 建立student表CREATE TABLE IF NOT EXISTS db.student (id INT PRIMARY KEY NOT NULL,name VARCHAR(10),age TINYINT)

隱式指定

-- 指定資料庫USE db;-- 建立student表CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY NOT NULL,name VARCHAR(10),age TINYINT)
查看資料表

查看所有表

SHOW [FULL] TABLES [FROM db_name] [LIKE ‘pattern‘]

其中FULL修改符,可以顯示第二個輸出資料行,對於一個表,第二列的值為BASE TABLE;對於一個視圖,第二列的值為VIEW。

SHOW TABLES;

SHOW FULL TABLES;

根據匹配模式查看部分表

-- 查看以s開頭的表SHOW TABLES LIKE ‘s%‘;

查看錶的建立語句

SHOW CREATE TABLE student;

查看錶結構

DESC student;

更新資料表

修改表名

RENAME TABLE tbl_name TO new_tbl_name    [, tbl_name2 TO new_tbl_name2] ...

可對一個或多個表進行重新命名

-- 將student重新命名為teacherRENAME TABLE student to teacher;

新增欄位

對於欄位的操作就比較多了,包括欄位的新增、修改、重名以及刪除

ALTER TABLE tbl_name ADD [COLUMN] col_name type [FIRST | AFTER col_name ]

FIRST:表示插入表中第一個位置

AFTER:表示插入在某個欄位的後面,預設在最後一個欄位的後面

-- 在name欄位後面插入grade欄位ALTER TABLE class ADD COLUMN grade VARCHAR(10) AFTER name;

修改欄位

ALTER TABLE tbl_name MODIFY [COLUMN] col_name type [FIRST | AFTER col_name ]
-- 修改grade欄位的長度ALTER TABLE class MODIFY COLUMN grade VARCHAR(20);

重新命名欄位

ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name type [FIRST | AFTER col_name ]
-- 修改表class的num欄位名稱為totalALTER TABLE class CHANGE COLUMN num total int(11);

刪除欄位

ALTER TABLE tbl_name DROP [COLUMN] col_name
-- 刪除class表的total欄位ALTER TABLE class DROP COLUMN total;

刪除資料表
DROP TABLE [IF EXISTS] tbl_name [, tbl_name] ...

可以刪除一張或多張表

-- 刪除class表DROP TABLE IF EXISTS class;
資料操作新增資料
INSERT [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...)

不明確指定列名,需要跟資料表的欄位順序一致

-- student表插入一條資料INSERT INTO student VALUES(1, ‘s1‘, 20);

指定列名

-- 根據列名與順序,往student表插入一條資料INSERT INTO student(name, age) VALUES(‘s2‘, 20);
查看資料

 

更新資料

更新單張表

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name    SET col_name1=expr1 [, col_name2=expr2 ...]    [WHERE where_definition]
-- 更新student表name為s2的age欄位值UPDATE student SET age = 22 WHERE `name` = ‘s2‘;

更新多張表

UPDATE [LOW_PRIORITY] [IGNORE] table_references    SET col_name1=expr1 [, col_name2=expr2 ...]    [WHERE where_definition]
UPDATE class, student SET student.age = 23 WHERE student.classId = class.id;
刪除資料
DELETE FROM tbl_nam [WHERE where_definition]
-- 刪除姓名為s1的資料DELETE FROM student WHERE student.`name` = ‘s1‘

 

MySQL教程 SQL基本操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.