一、MySQL命令行基本命令

  1. 列出当前数据库管理系统中有哪些数据库。
1
show databases;
img

2. 创建数据库,起名为ryan。

1
create database ryan;

img

显示如图的提示信息则表示创建数据库成功,可以使用命令列出数据库。

3. 使用数据库 ryan

1
use ryan;

img

显示Database changed说明当前使用的数据库已经更改,更改为了ryan这个数据库。

4. 查看当前使用的是哪个数据库

1
select database();

img

5. 查看当前数据库中有哪些表。

1
show tables;

img

因为还没创建表,所以是空的。

6. 删除数据库 ryan

1
drop database ryan;

img

显示如图的提示信息则表示删除数据库ryan成功。

7. 退出MySQL(两种方式)

1
2
1. exit
2. quit

8. 查看MySQL版本

1
2
select version();  // 登录了MySQL的状态下
mysql --version // Windows打开cmd的状态下

二、数据表概述

数据表(Table)是关系型数据库(RDBMS)中最基本的存储结构,是数据库存储数据的基本单元。用于存储和管理数据。表由行(Row)和列(Column)组成,每一行代表一条记录,每一列代表一个字段(属性)。

数据表的基本结构

一个数据表table的典型结构如下:

学生ID(S_id) 姓名(S_name) 年龄(S_age) 班级(S_class)
1001 张三 20 计算机231班
1002 李四 21 计算机232班
1003 王五 22 计算机231班
  • 表名:该表可以命名为 Students(学生表)。
  • 行(记录):一行就是一条数据
  • 列(字段):S_id字段、S_name字段、S_age字段、S_class字段
  • 每个字段包含以下属性:
    • 字段名:S_id、S_name、S_age、S_class这些都是字段名
    • 字段的数据类型:每个字段都有数据类型,比如字符类型,数字类型、日期类型等
    • 字段的数据长度:每个字段有可能会有长度的限制
    • 字段的约束:比如某些字段要求该字段下的数据不能重复、不能为空等,用来保证表格中的数据合法有效。

三、初始化测试数据


为了方便后面内容的学习,提前准备了表以及表中的测试数据,以下是建表并且初始化数据的sql脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
DROP TABLE IF EXISTS EMP;
DROP TABLE IF EXISTS DEPT;
DROP TABLE IF EXISTS SALGRADE;

CREATE TABLE DEPT(DEPTNO int(2) not null ,
DNAME VARCHAR(14) ,
LOC VARCHAR(13),
primary key (DEPTNO)
);
CREATE TABLE EMP(EMPNO int(4) not null ,
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR INT(4),
HIREDATE DATE DEFAULT NULL,
SAL DOUBLE(7,2),
COMM DOUBLE(7,2),
primary key (EMPNO),
DEPTNO INT(2)
);

CREATE TABLE SALGRADE( GRADE INT,
LOSAL INT,
HISAL INT
);

INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 30, 'SALES', 'CHICAGO');
INSERT INTO DEPT ( DEPTNO, DNAME, LOC ) VALUES ( 40, 'OPERATIONS', 'BOSTON');

INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, NULL, 20);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, NULL, 20);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20);
INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);

INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 1, 700, 1200);
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 2, 1201, 1400);
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 3, 1401, 2000);
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 4, 2001, 3000);
INSERT INTO SALGRADE ( GRADE, LOSAL, HISAL ) VALUES ( 5, 3001, 9999);
commit;
  • 什么是sql脚本:文件名是.sql,并且该文件中编写了大量的SQL语句,执行sql脚本程序就相当于批量执行SQL语句。
  • 你入职的时候,项目一般都是进展了一部分,多数情况下你进项目组的时候数据库的表以及数据都是有的,项目经理第一天可能会给你一个较大的sql脚本文件,你需要执行这个脚本文件来初始化你的本地数据库。(当然,也有可能数据库是共享的。)
  • 创建文件:ryan.sql,把以上SQL语句全部复制到sql脚本文件中。

img

  • 执行SQL脚本文件,初始化数据库
    • 第一步:命令窗口登录mysql
    • 第二步:创建数据库ryan(如果之前已经创建就不需要再创建了):create database ryan;
    • 第三步:使用数据库ryan:use ryan;
    • 第四步:source命令执行sql脚本,注意:source命令后面是sql脚本文件的绝对路径,然后回车。

  image.png

  • 第五步:查看是否初始化成功,执行:show tables;

  image.png

  • 使用其他的mysql客户端工具也可以执行sql脚本,比如navicat。使用source命令执行sql脚本的优点:可支持大文件

四、熟悉测试数据

emp、dept、salgrade三张表分别存储什么信息

  • emp:员工信息
  • dept:部门信息
  • salgrade:工资等级信息

查看表结构:

1
desc 表名;

即查看该表的字段,数据类型,约束等信息。

示例

1
desc dept;	// 查看dept表的表结构