標籤:並且 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基本操作