文章目录
与MySQL相识的第一天
Love is hard to get into, but harder to get out of. 我和MySql大概就是如此叭。俗话说,没有永远的朋友,只有足够的利益,才能让我们与人友善。
与她在一起的的利益(好处)
- 可以持久化数据到本地
- 结构化查询数据,比较方便掌控
看看她的五官(数据库的常见概念)
- DB:数据库,存储数据的容器
- BDMS:数据库管理系统,又称为数据软件或数据库产品,用于创建或管理DB
- SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
认识她的第一印象(数据库存储数据的特点)
- 数据存放到表中,让后表再放在库中
- 一个库中可以由多张表,每张表具有唯一的表名用来标识自己
- 表中有一个或者多个列,列又称为”字段“,相当于Java中的属性
- 表中的每一行数据,相当于Java中的”对象“
认识她的闺蜜(常见的数据库管理系统)
闺蜜的名字(数据库名) | 住哪里(是谁旗下的) | 备注 |
---|---|---|
她(MySQl) | 由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品 | 她最受欢迎,要好好待她,别一不小心就跑了 |
Oracle | 她也是Oracle旗下的,MySql是呗她家收购的灰公主 | 她也是万众瞩目的一个,由于其骄奢的性格让它没有最多的欢迎,但再高端市场,她比MySql更受欢迎一点 |
db2 | IBM公司研制的一种关系型数据库系统 | DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下 |
SQL Server | sqlserver 是Microsoft、Sybase 和Ashton-Tate三家公司共同开发的。但后面由于另外两家公司分家,就称为由微软公司推出的了 | 具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。 |
与MySQL相知的又一天
The more I know her, the more I like her. 在认识一个人后,我们会有一种想要深入去了解她的冲动,那就去更加深入的了解她叭。
她的家里情况(MySQl的背景)
- MySQL数据库隶属于MySQL AB分公司,总部位于瑞典,后被Oracle收购
她的性格脾气(MySQl的优缺点)
- 豪气(开源、免费、成本低)
- 温柔(性能好、移植性好)
- 体积小,便于安装
把她叫出来(MySQL安装)
- 属于C/S架构的软件,一般来讲安装服务端,(安装路径不能包括中文)
- 分类
- 社区版
- 企业版
- 她的多种形态(版本又多种)
把她揽入怀里(MySQL服务的启动和停止)
- 方式一:浪漫的开始(以CMD形式,通过命令行)
- net start 服务名 抱着(启动)
- net stop 服务名 松开(停止)
- 方式二:霸道总裁(强势点点点)
- 计算机——右击——管理——服务——找到MySQL启动
和她一起出门与回家(MySQL的登录和退出)
- 出门方式的选择(登录):
- mysql -h主机名 -p端口号 -u 用户名 -p密码
- mysql -u 用户名 -p密码(这是前提为主机,且端口号为3306)
- 最后你可以偷偷进去,不用密码,背着偷偷输密码
为她疯狂购物的一天(MySQL的一些基本操作)
I’m a miser, but in my love life, I would be willing to spend every penny i have. 既然决定和她一起,就要去为她做一些事了,学一些基本的东西叭,以备不时之需呀!
观察她的想法(基本语法)
-
select 查询列表
-
from 表名
-
where 判断条件
想法的小总结(特点)
-
查询列表可以是字段、常量、表达式、函数、也可以是多个
-
查询结果是一个虚拟表
-
基本的操作小表达
-
一、按条件表达式筛选 条件运算符:> < = (!=不等于为)<> >= <= 二、按逻辑表达式筛选 逻辑运算符: && || ! and or not 三、模糊查询 like = between and in is null 四、安全等于 <=> 可以判断null值 五、注释 注释 单行注释:#注释文字 单行注释:-- 注释文字 多行注释:/* 注释文字 */ 六、语法规范 不区分大小写 使用“;”结尾 各子句一般分行写 关键字不能缩写也不能分行 合理使用缩进 七、查询 select 常量值; 注意:字符型和日期型必须用单引号引起来,数值不需要 八、起别名 as 或者空格 九、一些关键字 去重:select distinct 字段名 from 表名 不允许select distinct a,b from 表名 +号:做加法运算,不能连接字符 select 数值+数值 直接计算 select 字符+数值 先将字符尝试转化为数值,不能转即为0在计算 null+任何值 返回null concat函数: 功能:拼接字符 select concat(a,b,……); ifnull函数 功能:判断某字段或者表达式是否为null,若是返回指定值,否则返回原本值 select ifnull(commission_pct,0) from employees; isnull函数: 功能:判断某字段或者表达式是否为null,若是返回1,否则返回0
-
教学示范(实例)
- 查询员工号为176的员工的姓名和部门号和年薪
SELECT
CONCAT(last_name,first_name) AS 姓名,`manager_id` AS 部门号,salary*12 AS 年薪
FROM
employees
WHERE
employee_id LIKE 176;
- 选择工资在5000到12000之间的员工的姓名和工资
SELECT
CONCAT(last_name,first_name) AS 姓名,salary AS 工资
FROM
employees
WHERE
salary>5000 AND salary <12000;
- 选择在20或50号部门工作的员工姓名和部门号
SELECT
`employee_id` AS 员工号,CONCAT(last_name,first_name) AS 姓名,`manager_id` AS 部门号
FROM
employees
WHERE
employee_id BETWEEN 20 AND 50;
- 选择姓名中有字母a和e的员工姓名
SELECT
CONCAT(last_name,first_name) AS 姓名
FROM
employees
WHERE
CONCAT(last_name,first_name) LIKE '%a%' OR CONCAT(last_name,first_name) LIKE '%e%' ;
- 显示出表employees部门编号在80-100之间的姓名、职位
SELECT
department_id AS 部门编号,CONCAT(last_name,first_name) AS 姓名,`job_id` AS 职位
FROM
employees
WHERE
`department_id` BETWEEN 80 AND 100;
比较产品品牌的不一样(isnull PK <=>)
普通类型数值 | null值 | 可读性 | |
---|---|---|---|
isnull | false | true | true |
<=>(安全等) | true | true | false |
有了上面的表格,她都把这两个牌子优缺点给你,你就得为她选择了呀,去吧骚年。