一、数据库?数据库管理系统?SQL?关系是什么?

  • 数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。
    顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了 具有特定格式的数据。
  • 数据库管理系统: DataBaseManagement,简称DBMS。
    数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以 对数据库当中的数据进行增删改查。
  • 常见的数据库管理系统: MySQL、Oracle、MS SqlServer、DB2、sybase等…
  • SQL:结构化查询语言 程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。
  • SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在mysql中可以使用,同时在Oracle中也可以使用,在DB2中也可以使用。

三者之间的关系

DBMS–执行–> SQL --操作–> DB

SQL语句的分类

SQL语句有很多,最好进行分门别类,这样更容易记忆,分为:

  • DQL:数据查询语言(凡是带有select关键字的都是查询语句)select…
  • DML:数据操作语言(凡是对表当中的数据进行增删改的都是DML)insert delete update(这个主要是操作表中的数据data)。
  • DDL:数据定义语言(凡是带有create、drop删、alter改的都是DDL)。 这个主要操作的是表的结构。不是表中的数据。
    ——这个增删改和DML不同,这个主要是对表结构进行操作。
  • TCL:事务控制语言,包括:事务提交:commit 和 事务回滚:rollback;
  • DCL:数据控制语言。例如:授权grant、撤销权限revoke…

二、看一下计算机上的服务,找一找MySQL的服务在哪里?

计算机-->右键-->管理-->服务和应用程序-->服务-->找mysql服务
MySQL的服务,默认是“启动”的状态,只有启动了mysql才能用。
默认情况下是“自动”启动,自动启动表示下一次重启操作系统的时候
自动启动该服务。

可以在服务上点击右键:
	启动
	重启服务
	停止服务
	...

还可以改变服务的默认配置:
	服务上点击右键,属性,然后可以选择启动方式:
		自动(延迟启动)
		自动
		手动
		禁用

三、windows操作系统中启动和关闭mysql服务呢?

语法:
	net stop 服务名称;
	net start 服务名称;

其它服务的启停都可以采用以上的命令。

四、mysql安装了,服务启动了,怎么使用客户端登录mysql数据库呢?

使用bin目录下的mysql.exe命令来连接mysql数据库服务器

本地登录(显示编写密码的形式):
	C:\Users\Administrator>mysql -uroot -p123456
	Welcome to the MySQL monitor.  Commands end with ; or \g.
	Your MySQL connection id is 1
	Server version: 5.5.36 MySQL Community Server (GPL)

	Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

	Oracle is a registered trademark of Oracle Corporation and/or its
	affiliates. Other names may be trademarks of their respective
	owners.

	Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

	mysql>

本地登录(隐藏密码的形式):
	C:\Users\Administrator>mysql -uroot -p
	Enter password: ******
	Welcome to the MySQL monitor.  Commands end with ; or \g.
	Your MySQL connection id is 2
	Server version: 5.5.36 MySQL Community Server (GPL)

	Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

	Oracle is a registered trademark of Oracle Corporation and/or its
	affiliates. Other names may be trademarks of their respective
	owners.

	Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

	mysql>

五、mysql常用命令

  • 退出mysqlexit
  • 查看mysql中有哪些数据库?注意:以分号结尾。
show databases;
mysql默认自带了4个数据库。
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys              |
+--------------------+
  • 选择使用某个数据库
use databases;
mysql> use sys;
Database changed
表示正在使用一个名字叫做sys的数据库。
  • 创建数据库
create database name;
mysql> create database mk;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mk        |
| mysql              |
| performance_schema |
| sys               |
+--------------------+
  • 查看某个数据库下有哪些表?
show tables;
mysql> show tables;

注意:以上的命令不区分大小写,都行。
  • 查看mysql数据库的版本号:
mysql> select version();
	+-----------+
	| version() |
	+-----------+
	| 8.0.11    |
	+-----------+
	1 row in set (0.00 sec)
  • 查看当前使用的是哪个数据库?
mysql> select database();
+-------------+
| database()  |
+-------------+
| mk |
+-------------+

六、数据库当中最基本的单元是表:table

什么是表table?为什么用表来存储数据呢?

姓名	性别	年龄(列:字段) 
	---------------------------
	张三	男			20            ------->行(记录)
	李四	女			21            ------->行(记录)
	王五	男			22            ------->行(记录)

数据库当中是以表格的形式表示数据的。因为表比较直观。
任何一张表都有行和列:
行(row):被称为数据/记录。
列(column):被称为字段。
比如: 姓名字段、性别字段、年龄字段。

了解一下:
	每一个字段都有:字段名、数据类型、约束等属性。
	字段名可以理解,是一个普通的名字,见名知意就行。
	数据类型:字符串,数字,日期等
	约束:约束也有很多,其中一个叫做唯一性约束,

七、完成一些简单操作

提前准备一个test.sql的数据库表。如何将sql文件中的数据导入呢?

mysql> source C:\Desktop\test.sql	`注意`:路径中不要有中文!!!!
		Query OK, 0 rows affected, 1 warning (0.01 sec)
		Query OK, 0 rows affected, 1 warning (0.00 sec)
		Query OK, 0 rows affected, 1 warning (0.00 sec)
		Query OK, 0 rows affected (0.10 sec)
		Query OK, 0 rows affected (0.01 sec)
		Query OK, 0 rows affected (0.01 sec)
		Query OK, 1 row affected (0.01 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
	    Query OK, 1 row affected (0.00 sec)
		Query OK, 0 rows affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)	
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 0 rows affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 1 row affected (0.00 sec)
		Query OK, 0 rows affected (0.00 sec)
		mysql> show tables;
		+-----------------------+
		| Tables_in_test |
		+-----------------------+
		| dept                  |
		| emp                   |
		| salgrade              |
		+-----------------------+

注:

  • dept是部门表
  • emp是员工表
  • salgrade 是工资等级表
查看表中的数据
select * from 表名;
mysql> select * from emp; // 从emp表查询所有数据。
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
|  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 |  800.00 |    NULL |     20 |
|  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30 |
|  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 |    NULL |     20 |
|  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30 |
|  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 |    NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 |    NULL |     10 |
|  7788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 | 3000.00 |    NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 1981-11-17 | 5000.00 |    NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 1987-05-23 | 1100.00 |    NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 |  950.00 |    NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 |    NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 |    NULL |     10 |
+-------+--------+-----------+------+------------+---------+---------+--------+

mysql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+

mysql> select * from salgrade;
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
|     1 |   700 |  1200 |
|     2 |  1201 |  1400 |
|     3 |  1401 |  2000 |
|     4 |  2001 |  3000 |
|     5 |  3001 |  9999 |
+-------+-------+-------+
不看表中的数据,只看表的结构
desc 表名;//describe
mysql> desc dept;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int(2)      | NO   | PRI | NULL    |       |部门编号
| DNAME  | varchar(14) | YES  |     | NULL    |       |部门名字
| LOC    | varchar(13) | YES  |     | NULL    |       |地理位置
+--------+-------------+------+-----+---------+-------+
mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO    | int(4)      | NO   | PRI | NULL    |       |员工编号
| ENAME    | varchar(10) | YES  |     | NULL    |       |员工姓名
| JOB      | varchar(9)  | YES  |     | NULL    |       |工作岗位
| MGR      | int(4)      | YES  |     | NULL    |       |上级编号
| HIREDATE | date        | YES  |     | NULL    |       |入职日期
| SAL      | double(7,2) | YES  |     | NULL    |       |工资
| COMM     | double(7,2) | YES  |     | NULL    |       |补助
| DEPTNO   | int(2)      | YES  |     | NULL    |       |部门编号
+----------+-------------+------+-----+---------+-------+
mysql> desc salgrade;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| GRADE | int(11) | YES  |     | NULL    |       |工资等级
| LOSAL | int(11) | YES  |     | NULL    |       |最低工资
| HISAL | int(11) | YES  |     | NULL    |       |最高工资
+-------+---------+------+-----+---------+-------+

mysql> describe dept;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int(2)      | NO   | PRI | NULL    |       |
| DNAME  | varchar(14) | YES  |     | NULL    |       |
| LOC    | varchar(13) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

下一篇博客,我们将会进入到SQL语句的学习。