课程引入
常见的数据库管理系统有MySQL、Oracle、DB2、SqlServer。程序员在客户端程序,通过数据库管理系统,对数据进行增删改查。其中,MySQL由于开源、免费等因素,是当前最受欢迎的数据库管理系统。淘宝、网易、百度、Facebook等众多互联网公司都在使用MySQL,学精了MySQL,就业市场广阔。
为什么要学数据库
将数据存放在内存中不能持久化存储,存放在普通文件中不方便管理。
数据库管理系统的好处:
- 实现数据持久化
- 使用完整的管理系统统一管理,易于查询
数据库相关概念
DB:数据库(database),存储数据的“仓库”,他保存了一系列有组织的数据。
DBMS:数据库管理系统(database management system),数据库是通过DBMS进行管理的。
SQL:结构化查询语言(structure query language)。
SQL的优点
- 几乎所有的DBMS都支持SQL
- 简单易学
- 虽然简单,但是功能强大,灵活使用可以完成诸多复杂、高级的功能。
数据库是如何存储数据的
- 将数据放在表上,再将表放进库中。
- 一个数据库可以有多个表,每个表名称具有唯一性。
- 表有自己的特性,表示表中数据的属性,一张表就类似于C++中的一个类。
- 表由列组成,列也称为字段。每一个列就类似于C++中类的一个属性。
- 表中数据按行存储,每一行类似于C++中的一个对象。
MySQL服务的登陆和退出
#MySQL服务的启动
net start 服务名
#MySQL服务的停止
net stop 服务名
#连接本机
mysql -u root -p
#退出
exit
MySQL常见命令
#查看当前所有数据库
show databases;
#打开指定的库
use 库名;
#查看库中的表
show tables from 库名;
#创建表
creat table 表名(
列名 列类型,
列名 列类型,
列名 列类型,
... ...
);
#查看表结构
desc 表名;
MySQL语法规范
- 不区分大小写,但是建议关键字大写,其他小写
- 每条命令用分号结尾
- 命令可以缩进和换行
- 单行注释
#单行注释
-- 单行注释(--后有空格)
- 多行注释
/*
多行注释
*/
SQL语言的细分
-
DQL语言(Data Query Language):查询功能
-
DML语言(Data Manipulation Language):增删改功能
tips:也有书籍将上面两种语言统称为DML,也即合并了增删改查四个功能。 -
DDL语言(Data Define Language):数据定义语言
-
TCL语言(Transaction Control Language):事务控制语言
基础查询
#语法
select 查询列表 from 表名;
#查询单个字段
select first_name from employees;
#查询多个字段 逗号隔开
select first_name,last_name from employees;
#查询所有字段
select * from employees;
#起别名 AS关键字 (空格也行)
select first_name AS 名,last_name 姓 from employees
#去重 Distinct关键字
select distinct last_name 姓 from employees
条件查询
#语法
select
查询列表
from
表名
where
筛选条件;
#条件运算符
>
<
<=
>=
<> 或 !=
#逻辑运算符
and 或 &&
or 或 ||
not 或 !
#模糊查询
like
between and
in
is null
#按条件运算符查询
select
*
from
employees
where
salary>12000;
#逻辑运算符连接条件运算符查询
select
*
from
employees
where
salary>12000
and
salary<180000;
SQL中的+号
SQL中的+号只能用于数字间的运算,如果一方为非数字,会尝试将其转换为数字进行运算。如果其中一方为NULL,那么结果必然为NULL。