MySql 基礎使用(一)
參考網址:http://c.biancheng.net/view/7143.html
1. 安裝完成後,登入mysql.
//登入mysql
mysql -u root -p(mysql -u root -ppass,注意pass和-p引數無空格)
// 檢視狀態
status
//在管理員模式下啟動mysql
net start mysql57(注意服務名稱)
net stop mysql57
2. MySql配置檔案
(windows)my.ini檔案,一般情況下,my.ini 在 MySql 安裝的根目錄下,也有可能在隱藏資料夾“C:\ProgramData”下面。http://c.biancheng.net/view/7571.html
(Linux)my.cnf檔案,http://c.biancheng.net/view/7618.html
3. SQL概述
SQL 包含以下 4 部分:
1)資料定義語言(Data Definition Language,DDL)
用來建立或刪除資料庫以及表等物件,主要包含以下幾種命令:
- DROP:刪除資料庫和表等物件
- CREATE:建立資料庫和表等物件
- ALTER:修改資料庫和表等物件的結構
2)資料操作語言(Data Manipulation Language,DML)
用來變更表中的記錄,主要包含以下幾種命令:
- SELECT:查詢表中的資料
- INSERT:向表中插入新資料
- UPDATE:更新表中的資料
- DELETE:刪除表中的資料
3)資料查詢語言(Data Query Language,DQL)
用來查詢表中的記錄,主要包含 SELECT 命令,來查詢表中的資料。
4)資料控制語言(Data Control Language,DCL)
用來確認或者取消對資料庫中的資料進行的變更。除此之外,還可以對資料庫中的使用者設定許可權。主要包含以下幾種命令:
- GRANT:賦予使用者操作許可權
- REVOKE:取消使用者的操作許可權
- COMMIT:確認對資料庫中的資料進行的變更
- ROLLBACK:取消對資料庫中的資料進行的變更
4. 建立
(在mySQL中關鍵字不區分大小寫)
//建立資料庫
CREATE DATABASES test_db;
//使用 MySQL 命令列工具建立一個測試資料庫,命名為 test_db_char,指定其預設字符集為 utf8,預設校對規則為 utf8_chinese_ci(簡體中文,不區分大小寫):
mysql> CREATE DATABASE IF NOT EXISTS test_db_char
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_chinese_ci;
//建立後修改(同樣可用於修改表)
mysql> alter database test_db
default character set gb2312
default collate gb2312_chinese_ci;
// 切換資料庫
use test_db;
//建立表,支援utf8
CREATE TABLE students(
student_id INT UNSIGNED,
name VARCHAR(30) ,
sex CHAR(1),
birth DATE,
PRIMARY KEY(student_id)
) character set = utf8;
//修改已有表,支援utf8
alter table students convert to character set utf8;
//顯示資料庫
SHOW DATABASES LIKE 'test_db';
// 使用‘%’萬用字元顯示包含test的資料庫
SHOW DATABASES LIKE '%test%';
// 刪除表
drop databases if exists test_db;
//查看錶
show tables;
//DESCRIBE/DESC 語句可以查看錶的欄位資訊,包括欄位名、欄位資料型別、是否為主鍵、是否有預設值等。
desc students;
//SHOW CREATE TABLE語句可以用來顯示建立表時的CREATE TABLE語句
show create table students;
//修改表名
alter table students rename to student;
//修改表字符集
alter table student character set gb2312 collate gb2312_chinese_ci;
//修改欄位名稱
alter table student change student_id id int(15) unsigned;
//修改欄位資料型別
alter table student modify id int(20);
//刪除欄位
alter table student drop sex;
//新增欄位,末尾、表頭、中間位置。
alter table student add sex char(1);
alter table student add sex char(1) first;
alter table student add sex char(1) after id;
//關聯表,自己試驗的過程中,刪除主表不會報錯,暫未找到問題,mysql5.7.30
CONSTRAINT fk_emp4_emp5 FOREIGN KEY (deptId) REFERENCES tb_emp4(id)
//解除外來鍵約束
ALTER TABLE tb_emp5 DROP FOREIGN KEY fk_emp4_emp5;
(關於約束的問題詳看下一章)
5. 資料型別
1) 數值型別
整數型別包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮點數型別包括 FLOAT 和 DOUBLE,定點數型別為 DECIMAL。
2) 日期/時間型別
包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
3) 字串型別
包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。
4) 二進位制型別
包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
6. 儲存型別
現在許多資料庫管理系統都支援多種不同的儲存引擎。MySQL 的核心就是儲存引擎。MySQL 提供了多個不同的儲存引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎。在 MySQL 中,不需要在整個伺服器中使用同一種儲存引擎,針對具體的要求,可以對每一個表使用不同的儲存引擎。MySQL 5.7 支援的儲存引擎有 InnoDB、MyISAM、Memory、Merge、Archive、CSV、BLACKHOLE 等。可以使用SHOW ENGINES;
語句檢視系統所支援的引擎型別。
如何選擇MySQL儲存引擎?http://c.biancheng.net/view/7185.html
//顯示支援的引擎
show engines;
//顯示預設搜尋引擎
show variables like 'default_storage_engine%';
//修改預設搜尋引擎
set default_storage_engine=MyISAM;
//顯示資料表的當前搜尋引擎
show create table students;
//修改資料表的搜尋引擎
alter table students engine=MyISAM;
//以上這種方法適用於修改單個表的儲存引擎,如果希望修改預設的儲存引擎,就需要修改my.cnf(my.ini)配置檔案。在 my.cnf (my.ini) 配置檔案的 [mysqld] 後面加入:
default-storage-engine=儲存引擎名稱