MySQL學習(一) SQL基本操做 MySQL基礎查詢

SQL的基本操做無非就是增刪改查(CRUD),根據對操做的對象分類,又能夠分爲三類,庫操做,表操做與數據操做。html

庫操做

新增數據庫

CREATE DATABASE [IF NOT EXISTS] db_name [庫選項]

其中庫選項是用來約束數據庫, 分爲兩個選項sql

字符集設定:CHARACTER SET 具體字符集(數據存儲的編碼格式): 經常使用的字符集有GBKUTF8數據庫

校對集設定:COLLATE 具體校對集(數據比較的規則)。post

-- 建立一個名稱爲db的數據庫,而且設置字符集爲utf8
CREATE DATABASE IF NOT EXISTS db CHARACTER SET utf8;

注意這裏建立的數據庫的名字不能用關鍵字(已經使用的字符)或者保留字(未來可能使用到的)編碼

若是必定想要用關鍵字或者保留字(不建議使用),那麼須要用到反引號(通常在鍵盤上Esc鍵的下方,要在英文狀態下輸出url

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

固然,也能夠建立中文名稱的數據庫(不建議使用)spa

CREATE DATABASE IF NOT EXISTS `數據庫` CHARACTER SET utf8;

查看數據庫

SHOW DATABASES [LIKE 'pattern']

其中pattern是匹配模式設計

%:表示匹配多個字符3d

_:表示匹配一個字符orm

-- 查看全部數據庫
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重命名爲teacher
RENAME 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字段名稱爲total
ALTER 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);

查看數據

MySQL基礎查詢

更新數據

更新單張表

UPDATE 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 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'
相關文章
相關標籤/搜索