MySQL
是一个广泛使用的开源关系型数据管理系,它由多种命令成,用于建、、更新和管理数据。下面是一些基
本的 MySQL 命令及其解:
### 1. 建表
```sql
CREATE TABLE 表名 (
列名 数据类型,
列名2 数据类型, ...
);
```
**解**: 个命令用于建一个新的表,并定了表中的列以及每个列的数据类型。例如:
```sql
CREATE TABLE Employees (
EmployeeID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Position VARCHAR(100),
DepartmentID INT,
Salary DECIMAL
);
```
### 2. 插入数据
```sql
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (1, 2, ...);
```
**解**: 将数据插入到表中。例如:
```sql
INSERT INTO Employees (EmployeeID, FirstName, LastName) VALUES (101, 'John', 'Doe');
```
### 3. 看所有表名
```sqlSHOW TABLES;
```
**解**: 示当前数据中的所有表。
### 4. 除表
```sql
DROP TABLE 表名;
```
**解**: 永久除指定的表。例如:
```sql
DROP TABLE Employees;
```
### 5. 数据
```sql
SELECT 列名1, 列名2 FROM 表名 [WHERE 条件];
```
**解**: 从表中特定的列和行。例如,所有工的姓名:
```sql
SELECT FirstName, LastName FROM Employees;
```
### 6. 更新数据
```sql
UPDATE 表名 SET 列名 = WHERE 条件;
```
**解**: 修改表中的数据。例如,更新工ID101的工的部门ID:
```sql
UPDATE Employees SET DepartmentID = 20 WHERE EmployeeID = 101;
```
### 7. 除
```sql
DELETE FROM 表名 [WHERE 条件];
```
**解**: 永久除表中的特定行。例如,除所有部门ID5的工:
```sql
DELETE FROM Employees WHERE DepartmentID = 5;
```
### 8. 建索引
```sql
CREATE INDEX 索引名 ON 表名 (列名);
```
**解**: 增加一个基于指定列的索引来加速。例如,Employees表上的DepartmentID建索引:```sql
CREATE INDEX idx_DepartmentID ON Employees(DepartmentID);
```
### 9. 看索引
```sql
SHOW INDEXES FROM 表名;
```
**解**: 示表中的所有索引。
### 10. 建存程
```sql
DELIMITER //
CREATE PROCEDURE 程序名 (
参数列表)
BEGIN
SQL句...
END;
```
**解**: 定一个可重用的SQL代。例如,建一个程序来找特定部门的所有工:
```sql
DELIMITER //
CREATE PROCEDURE FindEmployeesInDepartment(IN deptID INT) BEGIN SELECT * FROM Employees
WHERE DepartmentID = deptID; END;
```
### 11. 行存程
```sql
CALL 程序名 (参数);
```
**解**: 用之前定的存程。例如:
```sql
CALL FindEmployeesInDepartment(20);
```
### 12. 建触器
```sql
CREATE TRIGGER 触器名称 BEFORE|AFTER INSERT|UPDATE|DELETE ON 表名 FOR EACH ROW BEGIN
SQL句... END;
```
**解**:
定在特定事件(如插入、更新或除)生自行的SQL代。例如,建一个触器在工被除前送警告:
```sql
CREATE TRIGGER warn_before_delete BEFORE DELETE ON Employees FOR EACH ROW BEGIN IF
EXISTS(SELECT * FROM Employees WHERE EmployeeID = OLD.EmployeeID) THEN SIGNAL SQLSTATE '45000'SET MESSAGE_TEXT='Employee cannot be deleted'; END IF; END;
```
### 13. 建立接
MySQL不直接提供建立接的功能,但可以通其他工具如phpMyAdmin或命令行客端来。
### 14. 接数据服器
```sql
mysql -u 用名 -p 密 -h 主机名 数据名;
```
**解**: 使用MySQL命令行界面接到特定的数据服器。入密后,会提示你要接的数据。
### 15. 建数据
```sql
CREATE DATABASE 数据名;
```
**解**: 在服器上建一个新的数据。
### 16. 除数据
```sql
DROP DATABASE 数据名;
```
**解**: 永久除指定的数据。