1. 程式人生 > >MySQL數據庫基本命令-1

MySQL數據庫基本命令-1

mysq exp 應用 databases 建議 lai 同時 null describe

第一章:數據庫概述
1.數據(data) 數據庫(DB) 數據庫管理系統(DBMS) 數據庫系統(DBS)
2.數據庫管理系統提供的功能:
(1)數據定義語言:DDL
(2)數據操作語言:DML 基本的數據操作有兩類:檢索(查詢)和更新(插入,刪除,更新)
查-插-刪-更
(3)數據控制語言(DCL):數據完整性控制,數據安全性控制和數據庫的恢復
第二章:MySql安裝與配置

第三章.MySQL數據庫基本操作
系統數據庫和用戶數據庫
系統數據庫:information_schema,performance_schema,mysql,test
數據庫對象:表,視圖,存儲過程,函數,觸發器和事件
1.創建數據庫
CREATE DATABASE databasetest;
2.查看和選擇數據庫
查看:SHOW DATABASES;
選擇:USE databasetest;
3.刪除數據庫
DROP DATABASE databasetest1;

第四章.MySQL數據庫中存儲引擎和數據類型
1. SHOW ENGINES \G 顯示存儲引擎
MySQL5.5支持9種存儲引擎:分別為:FEDERATED, MRG_MYISAM,MyISAM,BLACKHOLE,CSVmMEMORY,ARCHIVE,InnoDB和PERFORMANCE_SCHEMA
P53:存儲引擎應用場合建議
2.數據類型:整數類型,浮點數類型,定點數類型和位類型,日期和時間類型,字符串類型

(1)整數類型:TINYINT,SMALLINT,MEDIUMINT,INT和INTEGER,BIGINT
(2)浮點類型:FLOAT,DOUBLE
定點數類型:DEC(M,D)和DECIMAL(M,D)
(3)位類型:BIT(M)
(4)日期和實踐類型:DATE,DATETIME,TIMESTAMP,TIME,YEAR
(5)字符串類型:CHAR(M),VARCHAR(M)

第五章.表的操作
表的基本概念:表中數據庫對象包含列,索引和觸發器
1.創建表
(CREATE DATABASE company;)
(USE company;)
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40)
);
2.查看表結構
(USE company;)
DESCRIBE t_dept; DESCRIBE語句查看表定義 describe:描述

(USE company;)
SHOW CREATE TABLE t_dept \G SHOW CREATE TABLE 語句查看表詳細定義
3.刪除表
(USE company;)
DROP TABLE t_dept;
(DESCRIBE t_dept;)
4.修改表
(1)修改表名
ALTER TABLE t_dept RENAME tab_dept;
(2)增加字段
(USE company;)
(DESC t_dept;)
ALTER TABLE t_dept ADD descri VARCHAR(20);
(DESC t_dept;)

(USE company;DESC t_dept;)
ALTER TABLE t_dept ADD descri VARCHAR(20) FIRST;
(DESCRIBE t_dept;)

(USE company;DESC t_dept;)
ALTER TABLE t_dept ADD descri VARCHAR(20) AFTER deptno;
(3)刪除字段
(USE company;DESC t_dept;)
ALTER TABLE t_dept DROP deptno;
(DESCRIBE t_dept;)
(4)修改字段
1.修改字段的數據類型
(USE company;DESC t_dept;)
ALTER TABLE t_dept MODIFY deptno VARCHAR(20);
(DESC t_dept;)
2.修改字段的名字
ALTER TABLE t_dept CHANGE loc location VARCHAR(40);
3.同時修改字段的名字和屬性
ALTER TABLE t_dept CHANGE loc location VARCHAR(20);
4.修改字段的順序
ALTER TABLE t_dept MODIFY loc VARCHAR(40) FIRST;
ALTER TABLE t_dept MODIFY deptno INT(11) AFTER dname;

5.操作表的約束:在具體使用MySQL軟件時,如果想針對表中的數據做一些完整性檢查操作,可以通過表的約束來完成
(1)完整性約束:
NOT NUL (NK)
DEFAULT
UNIQUE KEY (UK)
PRIMARY KEY (PK)
AUTO_INCREMENT
FOREIGN KEY (FK)
(1)設置非空約束(NOT NULL ,NK)
(CREATE DATABASE company; USE company;)
CREATE TABLE t_dept(
deptno INT(20) NOT NULL,
dname VARCHAR(20),
loc VARCHAR(40)
);
(DESC t_dept;)
(2)設置字段的默認值(DEFAULT)
(CREATE DATABASE company; USE company;)
CREATE TABLE t_dept(
deptno INT NOT NULL,
dname VARCHAR(20) DEFAULT ‘cjgong‘,
loc VARCHAR(40)
);
(DESC t_dept;)
(3)設置唯一約束(UNIQUE, UK)
...
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20) UNIQUE,
loc VARCHAR(40)
);
...
如果想給字段dname上的UK約束設置一個名字,可以執行sql語句CONSTRAINT,創建表t_dept constraint:約束;限制;強制
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT uk_dname UNIQUE(dname)
);
(4)設置主鍵約束(PRIMARY KEY, PK)
單字段主鍵
(CREATE DATABASE company; USE company;)
CREATE TABLE t_dept(
deptno INT PRIMARY KEY,
dname VARCHAR(20),
loc VARCHAR(40)
); 設置主鍵後默認NOT NULL
(DESC t_dept;)
給PK約束設置一個名字:CONSTRAINT
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT pk_dname PRIMARY KEY(dname)
);
多字段主鍵
...
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT pk_dname_deptno PRIMARY KEY(deptno, dname)
);
...
(5)設置字段值自動增加(AUTO_INCREMENT)
...
CREATE TABLE t_dept(
deptno INT PRIMARY KEY AUTO_INCREMENT,
dname VARCHAR(20),
loc VARCHAR(40)
);
...
(6)設置外鍵約束(FOREIGN KEY, FK)
...
CREATE TABLE t_dept(
deptno INT PRIMARY KEY,
dname VARCHAR(20),
loc VARCHAR(40)
);
CREATE TABLE t_employee(
empno INT PRIMARY KEY,
ename VARCHAR(20),
job VARCHAR(40),
MGR INT,
Hiredate DATE,
sal DOUBLE(10,2),
comm DOUBLE(10,2),
deptno INT,
CONSTRAINT fk_deptno FOREIGN KEY(deptno)
REFERENCES t_dept(deptno)
);
...

第六章.索引的操作
為什麽使用索引:
六種索引:普通索引,唯一索引,全文索引,單列索引,多列索引和空間索引
1.創建和查看索引
三種方式創建索引:創建表時創建索引,在已經存在的表上創建索引和通過SQL語句ALTER TABLE創建索引
(1).創建表時創建普通索引
(USE company;)
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
INDEX index_deptno(deptno)
);
(SHOW CREATE TABLE t_dept \G)
(2).在已經存在的表上創建普通索引
...
CREATE INDEX index_deptno
ON t_dept (deptno);
...
(2).通過SQL語句ALTER TABLE創建普通索引
ALTER TABLE t_dept ADD INDEX index_deptno(deptno);
2.創建和查看唯一索引
(1).創建表時創建唯一索引
...
CREATE TABLE t_dept(
deptno INT UNIQUE,
dname VARCHAR(20),
loc VARCHAR(40),
UNIQUE INDEX index_deptno(deptno)
);
(SHOW CREATE TABLE t_dept \G; EXPLAIN SELECT * FROM t_dept WHERE deptno=10 \G)
(2).在已經存在的表上創建唯一索引
CREATE UNIQUE INDEX index_deptno ON t_dept (deptno);
(3).通過SQL語句ALTER TABLE創建唯一索引
ALTER TABLE t_dept ADD UNIQUE INDEX index_deptno(deptno);
3.創建和查看全文索引
(1).創建表時創建全文索引
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
FULLTEXT INDEX index_loc(loc)
) ENGINE=MyISAM;
(2).在已經存在的表上創建全文索引
CREATE FULLTEXT INDEX index_loc ON t_dept (loc);
(3).通過SQL語句ALTER TABLE創建全文索引
ALTER TABLE t_dept ADD FULLTEXT INDEX index_loc(loc);
4.創建和查看多列索引
(1).創建表時創建多列索引
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
KEY index_dname_loc(dname,loc)
);
(SHOW CREATE TABLE t_dept \G)
(2)在已經存在的表上創建多列索引
CREATE INDEX index_dname_loc ON t_dept (dname,loc);
(3).通過SQL語句ALTER TABLE創建多列索引
ALTER TABLE t_dept ADD INDEX index_dname_loc(dname,loc);
5.刪除索引
(USE company; SHOW CREATE TABLE t_dept \G; EXPLAIN SELECT * FROM t_dept WHERE dname=‘cjgong‘ \G)
DROP INDEX index_dname_loc ON t_dept;
(SHOW CREATE TABLE t_dept \G)

MySQL數據庫基本命令-1