1、为什么学习数据库
实现数据持久化
使用完整的管理系统统一管理,易于查询
2、数据库的相关概念
DB:数据库(database),存储数据的‘仓库’,它保存了一系列有组织的数据。
DBMS:数据库管理系统(Database Management System),数据库是通过DBMS创建和操作的容器。
SQL:结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。
SQL的优点:
(1) 不是某个特定数据库供应商转有的语言,几乎所有DBMS都支持SQL
(2) 简单易学
(3) 虽然简单,但实际上是一中强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作
SQL语句主要分为:
(1)DQL:数据查询语言,用于对数据进行查询
(2)DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete
(3)TPL:事务处理语言,对事物进行处理,包括begin transaction、commit、rollback
(4)DCL:数据控制语言,进行授权与权限回收,如grant、revoke
(5)DDL:数据定义语言,进行数据库、表的管理等,如create、drop
(6)CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor
对于web程序员,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作。
3、数据库存储数据的特点
1、将数据放到表中,表再放到库中。
2、一个数据库中可以有多张表,每个表都有一个名字,用来标识自己,表明具有唯一性。
3、表具有一些特性,这些特性定义了数据在表中如何存储。
4、表由列组成,称为字段。所有表都是由一个或多个列组成的。
5、表中的数据是按行存储的。
4、MySQL产品的特点
优点:
(1) 成本低,开放源代码,一般可以免费试用
(2) 性能高,执行很快
(3) 简单,很容易安装和使用
DBMS分为两类:
(1) 基于共享文件系统的DBMS(Access)
(2) 基于客户机——服务器的DBMS(MySQL、Oracle、SqlServer)
5、MySQL的常见命令
(1) 查看当前所有的数据库
show databases;
(2) 打开指定的库
Use 库名;
(3) 查看当前库的所有表
Show tabels;
(4) 查看其它库的所有表
Show tabels from 库名;
(5) 创建表
Create tabel 表名(
列名 列类型;
列名 列类型;
)
(6) 查看表结构
Desc 表名;
6、查看服务器版本
Mysql --version或
Select version();
7、Mysql的语法规范
(1) 不区分大小写,但建议关键字大写,表名、列名小写
(2) 每条命令最好用分号结尾
(3) 每条命令根据需要,可以进行缩进或换行
(4) 注释
1) 单行注释: #注释文字
2) 单行注释: -- 注释文字(--后面有一个空格)
8、基础查询
(1) 语法:
Select 查询列表from表名;
特点:
1) 查询列表可以是:表中的字段、常量值、表达式、函数
2) 查询的结果是一个虚拟的表格
(2) 查询表中的单个字段:
Select last_name from employees;
(3) 查询表中的多个字段:
Select last_name,salary,email from employees;
(4) 查询表中所有字段
Select * from employees;
(5) 查询常量值:
Select 100;
Select ‘john’;
(6) 查询表达式:
Select 100*99;
(7) 查询函数:
SELECT VERSION();
(8) 起别名:
SELECT 100%87 AS 结果;
SELECT last_name AS 姓FROMemployees;
(9) 去重:
SELECT DISTINCT department from employees;
(10)+号的作用,在mysql中仅仅只能作运算符
1)其中一方为字符型,则试图将字符型数值转换成数值型
2)如果转换成功,则继续做加法
3)如果转换失败,则将字符型数值转换成0
4)只要其中一方为null,则结果肯定为null
(11)CONCAT连接
SELECT CONCAT(‘A’,’B’,’C’) AS 结果;
SELECT CONCAT(last_name,first_name) AS 姓名FROM employees;
9、条件查询
语法:
SELECT 查询列表
FROM 表名
WHERE筛选条件
分类:
1) 按条件表达式筛选
条件运算符:> < = != <> >=<=
2) 按逻辑表达式筛选
逻辑运算符:用于连接条件表达式
&& || ! and or not
3) 模糊查询
Like
(1) 一般和通配符搭配使用
(2) 通配符:%任意多个字符,包含0个字符
_任意单个字符
(3) 支持转义字符
SELECT last_name FROMemployees
WHERE last_name LIKE ‘_$_%’ ESCAPE ‘$’;
between and
(1) 使用between and 可以提高语句简洁性
(2) 包含临界值
(3) 两个临界值不要调换顺序,否则含义相反
In
含义:判断某字段的值是否属于in列表中的某一项
特点:1)使用in提高语句简洁度
2)in列表的值类型必须一致或兼容
3)不支持通配符
SELECT last_name,job_id FROM employees
WHERE job_id IN (‘IT_PROT’,’AD_VP’,’AD_PRES’);
Is null
=或<>不能用于判断null值
Is null或is not null可以判断null值
安全等于 <=>
Is null仅仅可以判断null值,可读性较高
<=>既可以判断null值,又可以判断普通的数值,可读性较低
10、排序查询
语法:
SELECT 查询列表
FROM 表
【WHERE 筛选条件】
ORDER BY 排序列表 【ASC|DESC】
特点:
1) asc代表的是升序,desc代表的是降序
2) 如果不写,默认是升序
3) Order by子句中可以支持单个字段、多个字段、表达式、函数、别名
4) Order by子句一般是放在查询语句的最后面,limit子句除外