目录
第1章 数据库概述
数据库优点
持久化数据
方便检索
存储大量数据
共享、安全
通过组合分析,获取新的数据
数据库的常见概念
DB:数据库,存储数据的仓库
DBMS:数据库管理系统,又称为数据库软件或者数据库产品,用于创建和管理数据库,常见的有MySQL、Oracle、SQL Server
DBS:数据库系统,数据库系统是一个通称,包括数据库、数据库管理系统、数据库管理人员等,是最大的范畴
SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
数据库的存储特点
数据存放到表中,然后表再放到库中
一个库中可以有多张表,每张表具有唯一的表名用来标识自己
表中有一个或多个列,列又称为“字段”,相当于Java中“属性”
表中的每一行数据,相当于Java中“对象”
数据库的常见分类
关系型数据库:MySQL、Oracle、DB2、SQL Server
非关系型数据库:
* 键值存储数据库:Redis、Memcached、MemcacheDB
* 列存储数据库:HBase、Cassandra
* 面向文档的数据库:MongDB、CouchDB
* 图形数据库:Neo4J
第2章 MySQL
MySQL的启动与退出
图形化界面:【此电脑】-右键-【管理】–【服务和应用程序】–【服务】–【MySQL】-右键-【启动】/【停止】
DOS命令行:以管理员身份运行
输入
net start MySQL
net stop MySQL
MySQL的登录与退出
DOS命令行:
mysql -h主机名 -P端口号 -u用户名 -p密码
本机可省略 -h
端口为3306可省略 -P
mysql -uroot -p****
exit
SQLyog可视化数据库管理
第3章 SQL语句
SQL概述
SQL(Structured Query Language),结构化查询语言,对关系型数据库的操作语言,可以应用到所有关系型数据库中
MySQL中的LIMIT语句是它独有的方言
语法要求
SQL语句可以单行或多行书写,以分号结尾
可以使用空格和缩进
关键字不区分大小写,建议使用大写
分类
DDL(Data Definition Language):数据定义语言,用来以定义数据库对象:库、表、列等;
create/drop/alter
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)
Insert/updata/delete
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别
**DQL(Date Query Language):**数据查询语言,用来查询记录(数据)
select
DQL
基础查询
语法
SELECT 查询列表 FROM 表名;
特点
查询列表可以是字段、常量、函数、表达式,多个部分以逗号隔开
查询结果是一个虚拟表
先执行from,再执行select
示例
1、查询单个字段
SELECT `字段名` FROM `表名`;
最好加入着重号`,防止与某些关键字重复
2、查询多个字段
SELECT `字段名`,`字段名` FROM `表名`;
选中所有字段名,按F12即可对齐格式
3、查询所有字段
SELECT * FROM 表名;
4、查询常量
SELECT 常量值;
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
5、查询函数
SELECT 函数名(实参列表);
contect();将两个表组合
6、查询表达式
SELECT 100%25;
7、起别名
SELECT 字段名 AS "别名" FROM 表名;
注意:别名可以使用单引号、双引号引起来,当只有一个单词时,可以省略引号,当有多个单词且有空格或特殊符号时,不能省略,AS可以使用空格代替
8、去重复
SELECT DISTINCT 字段名 FROM 表名;
9、做加法(mySQL + 只作为加法运算)
1、 SELECT 数值+数值; 直接运算
2、 SELECT 字符+数值; 首先先将字符转换为整数,如果转换成功,则继续运算,如果转换失败,则默认为0,然后继续运算
3、 SELECT NULL+数值; NULL和任何数值参与运算结果都是NULL
10、查看表的结构
DESC 表名;
11、ifnull函数
功能:判断某字段或表达式是否为null,如果为null,返回指定的值,否则返回原本的值
SELECT IFNULL(字段名, 指定值) FROM 表名;
12、isnull函数
功能:判断某字段或表达式是否为null,如果是null,则返回1,否则返回0
SELECT ISNULL(字段名) FROM 表名;
条件查询
一、语法
SELECT 查询列表 FROM 表名 WHERE 筛选条件;
先执行FROM
再WHRER
再SELECT
二、分类
条件运算符:>、>=、安全等于,还可以判断null、不等于:<>、不建议使用!=
#1、查询工资>=12000的员工信息
SELECT
*
FROM
employees
WHERE salary >= 12000 ;
逻辑运算符:and、or、not , 不建议使用&& || !
#查询工资<=12000||工资>=18000的员工信息
SELECT
*
FROM
employees
WHERE salary <= 12000 OR salary >= 18000 ;
模糊运算符:
like:和通配符搭配使用(类似正则表达式):%任意多个字符、_任意单个字符,如果有特殊字符,需要使用转义字符\
between XX and YY/ not between XX and YY :判断某个字段的值是否介于XX和YY之间
XX要小于等于YY
in(字段1,字段2…),查询某字段的值是否属于指定的列表内
not in()
注意:in列表的值类型必须一致或兼容,in列表中不支持通配符%和_
字段 is null/is not null:查询某字段的值是否为空
#1.查询姓名中包含第二个字符为_的员工信息
SELECT *
FROM employees
WHERE last_name LIKE '_$_%' ESCAPE '$';
#代表$成为一个转义字符
#查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE job_id IN ('IT_PROT', 'AD_VP', 'AD_PRES') ;
注意:=、!=不能用来判断NULL、而<=>、is null 、 is not null可以用来判断NULL,但注意<=>也可以判断普通类型的数值
排序查询
一、语法
SELECT
查询列表
FROM
表
WHERE 筛选条件
ORDER BY 排序列表 asc | desc;
查出数据后再排序
排序列表可以是单个字段、多个字段、别名、函数、表达式
asc代表升序,desc代表降序,如果不写,默认是asc
order by的位置一般放在查询语句的最后(除limit语句之外)
#按多个字段查询:查询员工信息,要求先按工资降序,再按员工编号升序
SELECT
*
FROM
employees
ORDER BY salary DESC, employee_id ASC ;
标签:精通,入门,SQL,数据库,表名,查询,MySQL,SELECT
来源: https://blog.csdn.net/weixin_45907832/article/details/113193043