数据库相关概念
一、什么是数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
二、数据库特点
1、数据结构化
2、数据的共享性高、冗余度低、易扩充
3、数据的独立性高
4、数据由DBMS统一管理和控制
三、数据库的常见概念
1、DB:数据库,存储数据的容器
2、DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建和管理DB
3、SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是所有的主流数据库的软件通用的语言
四、数据库存储数据的特点
1、数据存放到表中,然后表放到库中
2、一个库中可以放多张表,每张表具有唯一的表名用来表示自己
3、表中又一个或多个列,列又称为“字段”,相当于java中的“属性”
4、表中的每一行数据,相当于java中的“对象”
MySQL相关概念
一、什么是MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一
二、MySQL优点:
1、开源、免费、成本低
2、性能高、移植性好
3、体积小、便于安装
三、MySQL服务的登录和退出
通过命令行的方式(管理员身份运行)
登录:mysql [-h主机名 -P端口号] -u用户名 -p密码
或者 通过 计算机管理->服务和应用程序->服务 找到MySQL手动启动
退出:命令行中使用 exit
四、MySQL常见命令
1、查看当前所有数据库
show databases;
2、打开指定的库
use 库名
3、查看当前库的所有表
show tables;
4、查看其他库的所有表
show tables from 库名;
5、查看表结构
desc 表名;
6、查看服务器版本
mysql --version(); #在外部查询
select version(); #在mysql中查询
!要注意每条命令以 分号 结束
五、MySQL的语法规范
1、不区分大小写,但是建议关键字大写,表名,列名小写
2、每条命令最好用;结尾
3、每条命令根据需要 可以进行缩进和换行 建议关键字单独一行
4、注释
单行注释:#注释文字
单行注释:-- 注释文字 (--后要有空格)
多行注释:/* 注释文字 */
DQL语言(查询语言)
一、基础查询
语法:
SELECT 查询列表
FROM 表名;
特点:
1、查询列表可以是:表中的字段、常量、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
#打开/启用指定的库
USE myemployees;
#1.查询表中的单个字段
SELECT last_name FROM employees;
#2.查询表中的多个字段
SELECT last_name,first_name,email FROM employees;
#3.查询表中所有字段
#方式一
SELECT
`first_name`,
`last_name`,
`email`,
`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 函数名(实参列表);
SELECT VERSION();
#7.起别名
#(1)方便理解
#(2)如果要查询的字段有重名的情况,使用别名也可以区分开来
#方式一 使用AS
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式二 使用空格
SELECT 100%98 结果;
SELECT last_name 姓,first_name 名 FROM employees;
#案例:查询 salary 显示结果为 out put
#SELECT salary AS OUT put FROM employees;
#报错:out put 中有特殊符号(空格)需要用双引号/单引号引起来
SELECT salary AS "out put" FROM employees;
#8、去重
#案例:查询员工表中涉及到的所有部门编号
SELECT DISTINCT department_id FROM employees;
#使用关键字 DISTINCT
#9、+号的作用
/* 仅有一个作用:运算符
select 100+90; 两个操作数都为数值型,则做加法运算
select '123'+90; 其中一方为字符型,试图将字符型数值转换成数值型,
如果转换成功,则做加法运算
select 'john'+90; 如果转换失败,则将字符型数值转换成0
select null+10; 只要其中一方为null,则结果为null
*/
#案例:查询员工名和姓 连接成一个字段,显示:姓名
#正确 使用CONCAT函数
SELECT CONCAT('a','b','c');
SELECT
CONCAT(last_name,first_name) AS 姓名
FROM
employees;
SELECT
last_name+first_name AS 姓名
FROM
employees;
#错误 结果都为0
#9、IFNULL 判断字段是否为NULL
SELECT
#如果commission_pct为null 则显示0
IFNULL(commission_pct,0) AS 奖金率,
commission_pct
FROM
employees;
#显示表中的全部列,各个列之间用逗号隔开,列头显示OUT_PUT
SELECT
CONCAT(first_name,',',last_name,',',job_id,',',commission_pct) AS OUT_PUT
FROM
employees;
#错误:因为某些员工的commission_pct的值为null 则一方为null 最后的结果就为null
#纠正:使用IFNULL判断,如果为NULL commission就显示为0
SELECT
CONCAT(first_name,',',last_name,',',job_id,',',IFNULL(commission_pct,0)) AS OUT_PUT
FROM
employees;