1、为什么学习数据库
实现数据持久化
使用完整的管理系统统一管理,易于查询
2、数据库的相关概念
数据库(database),存储数据的‘仓库’,它保存了一系列有组织的数据。
数据库管理系统(Database Management System),数据库是通过DBMS创建和操作的容器。
:结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。
的优点:
不是某个特定数据库供应商转有的语言,几乎所有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(Access)
基于客户机——服务器的DBMS(MySQL、Oracle、SqlServer)
5、MySQL的常见命令
(1) 查看当前所有的数据库
show databases;
(2) 打开指定的库
库名;
(3) 查看当前库的所有表
Show tabels;
(4) 查看其它库的所有表
库名;
(5) 创建表
表名(
列名 列类型;
列名 列类型;
)
(6) 查看表结构
表名;
6、查看服务器版本
或
Select version();
7、Mysql的语法规范
(1) 不区分大小写,但建议关键字大写,表名、列名小写
(2) 每条命令最好用分号结尾
(3) 每条命令根据需要,可以进行缩进或换行
(4) 注释
单行注释: #注释文字
单行注释: -- 注释文字(--后面有一个空格)
8、基础查询
(1) 语法:
查询列表 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) 起别名:
结果;
姓 FROM employees;
(9) 去重:
SELECT DISTINCT department from employees;
+号的作用,在mysql中仅仅只能作运算符
其中一方为字符型,则试图将字符型数值转换成数值型
如果转换成功,则继续做加法
如果转换失败,则将字符型数值转换成0
只要其中一方为null,则结果肯定为null
CONCAT连接
结果;
姓名 FROM employees;
9、条件查询
语法:
查询列表
表名
筛选条件
分类:
1) 按条件表达式筛选
条件运算符:> < = != <> >= <=
2) 按逻辑表达式筛选
逻辑运算符:用于连接条件表达式
|| ! and or not
3) 模糊查询
Like
(1) 一般和通配符搭配使用
通配符:%任意多个字符,包含0个字符
任意单个字符
(3) 支持转义字符
employees
WHERE last_name LIKE ‘_$_%’ ESCAPE ‘$’;
between and
使用between and 可以提高语句简洁性
(2) 包含临界值
(3) 两个临界值不要调换顺序,否则含义相反
In
含义:判断某字段的值是否属于in列表中的某一项
特点:1)使用in提高语句简洁度
列表的值类型必须一致或兼容
不支持通配符
SELECT last_name,job_id FROM employees
WHERE job_id IN (‘IT_PROT’,’AD_VP’,’AD_PRES’);
Is null
=或<>不能用于判断null值
或is not null可以判断null值
安全等于
仅仅可以判断null值,可读性较高
既可以判断null值,又可以判断普通的数值,可读性较低
10、排序查询
语法:
查询列表
表
【WHERE 筛选条件】
排序列表 【ASC|DESC】
特点:
代表的是升序,desc代表的是降序
2) 如果不写,默认是升序
子句中可以支持单个字段、多个字段、表达式、函数、别名
子句一般是放在查询语句的最后面,limit子句除外