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子句除外