MySQL 数据库管理系统学习Day01
本单元目标
一、为什么要学数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
使用数据库的好处:
- 实现数据持久化
- 使用完整的管理系统统一管理,易于查询
二、数据库的相关概念
DB(database)数据库:存储数据的“仓库”。它保存了一系列有组织 的数据。
DBMS(Database Management System)数据库管理系统:数据库是通过DBMS创建和操作的容器。
SQL(Structure Query Language)结构化查询语言:专门用来与数据库通信的语言。
关系型数据库:
存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有Mysql,SqlServer等。
非关系型数据库:
随着近些年技术方向的不断拓展,大量的NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、 摒弃复杂分布式的目的被设计。
三、数据库存储数据的特点
- 将数据放到表中,表再放到库中
- 一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中“类”的设计。
- 表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
- 表中的数据是按行存储的,每一行类似于java中的“对象”。
四、初始MySQL
MySQL产品的介绍
MySQL数据库隶属于MySQL AB公司,总部位于瑞典,后被oracle收购。
优点:
- 成本低:开放源代码,一般可以免费试用
- 性能高:执行很快
- 简单:很容易安装和使用
MySQL产品的安装
下载地址:
https://dev.mysql.com/downloads/mysql/
两种下载方式:
1. Recommended Download(推荐下载):
点Recommended Download:下面的图片进去是.msi文件以安装包形式的安装。
2. Other Downloads(其他下载):
Other Downloads:下面的两个文件是.zip文件以压缩包的形式安装。
具体步骤就略了。
我的失败原因:计算机名是中文名(不是计算机的用户名),因为这个让我安装了一下午,都是以前手残把计算机名改成"学习机"这个中文名了。
MySQL服务的启动和停止
- 方式一:计算机——右击管理——服务——找到当初设置的服务名鼠标右击启动
- 方式二:通过管理员身份运行
net start 服务名(启动服务)
net stop 服务名(停止服务)
MySQL服务的登录和退出
- 方式一:通过mysql自带的客户端
此方式只限于root用户 - 方式二:通过windows自带的客户端
登录:
mysql 【-h主机名 -P端口号 】-u用户名 -p密码 - 退出:
exit或ctrl+C
MySQL的常见命令和语法规范
常见命令:
- 查看当前所有的数据库:
show databases; - 打开指定的库:
use 库名 - 查看当前库的所有表:
show tables; - 查看其它库的所有表:
show tables from 库名; - 创建表:
create table 表名(
列名 列类型,
列名 列类型,
…
); - 查看表结构:
desc 表名; - 查看服务器的版本:
方式一:登录到mysql服务端
select version();
方式二:没有登录到mysql服务端
mysql --version
或
mysql --V
语法规范:
- 不区分大小写,但建议关键字大写,表名、列名小写。
- 每条命令最好用分号结尾。
- 每条命令根据需要,可以进行缩进 或换行。
- 注释:
单行注释:#注释文字
单行注释:-- 注释文字(注意-- 后面有空格)
多行注释:/* 注释文字 */
SQL的优点
- 不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
- 简单易学
- 虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
SQL的语言分类
- DML(Data Manipulation Language):数据操纵语句,用于添加、删除、修改、查询数据库记录,并检查数据完整性
- DDL(Data Definition Language):数据定义语句,用于库和表的 创建、修改、删除。
- DCL(Data Control Language):数据控制语句,用于定义用户的访问权限和安全级别。
- TCL(Transaction Control Language):事务控制语言,确保被DML语句影响的表的所有行及时得以更新。
五、DQL语言的学习
基础查询
语法:
SELECT
要查询的东西
FROM
表名;
特点:
- 通过select查询完的结果 ,是一个虚拟的表格,不是真实存在
- 要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数
条件查询
条件查询:根据条件过滤原始表的数据,查询到想要的数据
语法:
select
要查询的字段|表达式|常量值|函数
from
表
where
条件 ;
分类:
一、条件表达式
示例:salary>10000
条件运算符:
作用 | 运算符 |
---|---|
大于 | > |
小于 | < |
大于等于 | >= |
小于等于 | <= |
等于 | = |
不等于 | <>或 != |
#案例:查询工资>12000的员工信息
SELECT
*
FROM
employees
WHERE
salary>12000;
二、逻辑表达式
示例:salary>10000 && salary<20000
逻辑运算符:
作用 | 运算符 |
---|---|
两个条件如果同时成立,结果为true,否则为false | and 或 && |
两个条件只要有一个成立,结果为true,否则为false | or 或 || |
如果条件成立,则not后为false,否则为true | not 或 ! |
#案例:查询工资z在10000到20000之间的员工名、工资以及奖金
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
salary>=10000 AND salary<=20000;
三、模糊查询
运算符 | 作用 |
---|---|
like | 含义:‘像’ 。一般和通配符搭配使用 |
between and | 在…和…之间。包含临界值。 |
in | 判断某字段的值是否属于in列表中的某一项in列表的值的类型必须一致或兼容 |
is null | is null 或 is not null 可以判断null值 |
#案例1:LIKE的使用。查询员工名中第三个字符为n,第五个字符为l的员工名和工资
select
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__n_l%';
#案例2:BETWEEN AND的使用。查询员工编号在100到120之间的员工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 120 AND 100;
#案例3:IN的使用。查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES');
#案例4:IS NULL的使用。查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
#案例5:IS NOT NULL的使用。查询有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
补充:
安全等于 <=> :既可以判断null值,也可以判断数值,可读性低一般不使用。
#案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=>NULL;
#案例2:查询工资为12000的员工信息
SELECT
last_name,
salary
FROM
employees
WHERE
salary <=> 12000;
2020-1024=?
程序员节快乐!