- 前言
- 一、数据库的概念
- 二、数据库管理系统(DBMS)--MySQL
- 1.MySQL5.5下载安装
- 2.启动和停止&登录和退出
- 3.MySQL的常用命令
- 4.图形化用户界面客户端的安装
- 三、SQL语言
- 1.SQL语言的分类
- 2.查询语句之基础查询
- 3.查询语句之条件查询
- 4.查询语言之排序查询
- 总结
前言
数据库技术是Java工程师必备的技能,本篇从MySQL软件讲起,初步介绍数据库、数据库管理系统的概念,以及SQL语言的基础应用。
一、数据库的概念 1.DB
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
2.DBMS
数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器
DBMS分为两类:
– 基于共享文件系统的DBMS (Access )
– 基于客户机——服务器的DBMS(MySQL、Oracle、SqlServer)
3.SQL
二、数据库管理系统(DBMS)–MySQL 1.MySQL5.5下载安装结构化查询语言(Structure Query Language):专门用来与数据库通信的语言,不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
官网:https://downloads.mysql.com/archives/community/
MSI版本为安装版,选择适合自己电脑位数的版本
2.启动和停止&登录和退出MySQL服务的启动和停止
方式一:计算机——右击管理——服务
方式二(推荐):通过管理员身份运行cmd(命令提示符)
net start 服务名(启动服务)
net stop 服务名(停止服务)
MySQL服务的登录和退出
方式一:通过mysql自带的客户端,但只限于root用户
3.MySQL的常用命令方式二:通过管理员身份运行cmd(命令提示符)
登录:
mysql 【-h主机名 -P端口号 】-u用户名 -p密码
【-h主机名 -P端口号】 可以省略
退出:
exit或ctrl+C
4.图形化用户界面客户端的安装1.查看当前所有的数据库
show databases;
2.打开指定的库
use 库名
3.查看当前库的所有表
show tables;
4.查看其它库的所有表
show tables from 库名;
5.创建表
create table 表名(
列名 列类型,
列名 列类型,
。。。
);
6.查看表结构
desc 表名;
7.查看服务器的版本
方式一:登录到mysql服务端
select version();
方式二:没有登录到mysql服务端
mysql --version
或
mysql --V
SQLyog-10.0.0.0安装包及破解码见博主空间
myemployees库中的四个表
DQL(Data Query Language):数据查询语言
select
DML(Data Manipulate Language):数据操作语言
insert 、update、delete
DDL(Data Define Languge):数据定义语言
create、drop、alter
2.查询语句之基础查询TCL(Transaction Control Language):事务控制语言
commit、rollback
#进阶1:基础查询
USE myemployees;
#1.查询表中的单个字段
SELECT last_name FROM employees;
#2.查询表中的多个字段
SELECt last_name,salary,email FROM employees;
#3.查询表中的所有字段
#方式一:
SELECt
`employee_id`,
`first_name`,
`last_name`,
`phone_number`,
`last_name`,
`job_id`,
`phone_number`,
`job_id`,
`salary`,
`commission_pct`,
`manager_id`,
`department_id`,
`hiredate`
FROM
employees ;
#方式二:
SELECt * FROM employees;
#4.查询常量值
SELECt 100;
SELECT 'john';
#5.查询表达式
SELECT 100%98;
#6.查询函数
SELECT VERSION();
#7.起别名
#方式一:使用as
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式二:使用空格
SELECt last_name 姓,first_name 名 FROM employees;
#案例:查询salary,显示结果为 out put
SELECt salary AS "out put" FROM employees;
#8.去重
#案例:查询员工表中涉及到的所有的部门编号
SELECt DISTINCT department_id FROM employees;
#9.+号的作用
#案例:查询员工名和姓连接成一个字段,并显示为 姓名
SELECt CONCAT('a','b','c') AS 结果;
SELECT
CONCAT(last_name,first_name) AS 姓名
FROM
employees;
3.查询语句之条件查询
#进阶2:条件查询 #一、按条件表达式筛选 #案例1:查询工资>12000的员工信息 SELECt * FROM employees WHERe salary>12000; #案例2:查询部门编号不等于90号的员工名和部门编号 SELECt last_name, department_id FROM employees WHERe department_id<>90; #二、按逻辑表达式筛选 #案例1:查询工资z在10000到20000之间的员工名、工资以及奖金 SELECt last_name, salary, commission_pct FROM employees WHERe salary>=10000 AND salary<=20000; #案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息 SELECt * FROM employees WHERe NOT(department_id>=90 AND department_id<=110) OR salary>15000; #三、模糊查询 #1.like #案例1:查询员工编号在100到120之间的员工信息 SELECt * FROM employees WHERe employee_id >= 120 AND employee_id<=100; #---------------------- 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 = 'IT_PROT' OR job_id = 'AD_VP' OR JOB_ID ='AD_PRES'; #------------------ SELECt last_name, job_id FROM employees WHERe job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES'); #4、is null #案例1:查询没有奖金的员工名和奖金率 SELECt last_name, commission_pct FROM employees WHERe commission_pct IS NULL; #案例1:查询有奖金的员工名和奖金率 SELECt last_name, commission_pct FROM employees WHERe commission_pct IS NOT NULL; #----------以下为× SELECt last_name, commission_pct FROM employees WHERe salary IS 12000; #安全等于 <=> #案例1:查询没有奖金的员工名和奖金率 SELECt last_name, commission_pct FROM employees WHERe commission_pct <=>NULL; #案例2:查询工资为12000的员工信息 SELECt last_name, salary FROM employees WHERe salary <=> 12000; #is null pk <=> IS NULL:仅仅可以判断NULL值,可读性较高,建议使用 <=> :既可以判断NULL值,又可以判断普通的数值,可读性较低4.查询语言之排序查询
#进阶3:排序查询 #1、按单个字段排序 SELECt * FROM employees ORDER BY salary DESC; #2、添加筛选条件再排序 #案例:查询部门编号>=90的员工信息,并按员工编号降序 SELECt * FROM employees WHERe department_id>=90 ORDER BY employee_id DESC; #3、按表达式排序 #案例:查询员工信息 按年薪降序 SELECt *,salary*12*(1+IFNULL(commission_pct,0)) FROM employees ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC; #4、按别名排序 #案例:查询员工信息 按年薪升序 SELECt *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDER BY 年薪 ASC; #5、按函数排序 #案例:查询员工名,并且按名字的长度降序 SELECt LENGTH(last_name),last_name FROM employees ORDER BY LENGTH(last_name) DESC; #6、按多个字段排序 #案例:查询员工信息,要求先按工资降序,再按employee_id升序 SELECt * FROM employees ORDER BY salary DESC,employee_id ASC;总结
本篇是学习数据库的开篇之作,主要涉及SQL查询语言的应用。



