MYSQL基础语法(一)

159 阅读7分钟

MYSQL基础语法

1.数据库的基本知识

什么是数据库

保存数据的仓库。它体现我们电脑中,就是一个软件或者文件系统。然后把数据都保存这些特殊的文件中,并且需要使用固定的语言(SQL语言/语句)去操作文件中的数据。

数据的存储方式

需求:开发一个学生选课系统,学生系统中含有学生信息、老师信息、课程信息。需要将关系和数据进行保存,保存到哪里合适呢?

  1. 数据保存在内存

    Student s = new Student("张三",18,"上海");
    Teacher t = new Teacher("李四",19,"上海");
    Course c = new Course("语文",90);
    

    new出来的对象存储在堆中.堆是内存中的一小块空间

    优点:存储速度快 缺点:断电/程序退出,数据就清除了

  2. 数据使用IO流技术保存在硬盘的普通文件中 优点:永久保存 缺点:IO流的查找,增加,修改,删除数据比较麻烦。同时使用IO流技术需要频繁调用系统资源和将系统资源还给系统,这样操作效率比较低

  3. 数据保存在数据库 优点:永久保存,通过SQL语句比较方便的操作数据库。是方式一和方式二的结合。可以解决上述两种方式的缺点。

数据库的优点

数据库是按照特定的格式将数据存储在文件中,通过SQL语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。

常见数据库

我们开发应用程序的时候,程序中的所有数据,最后都需要保存到专业软件中。这些专业的保存数据的软件我们称为数据库。我们学习数据库,并不是学习如何去开发一个数据库软件,我们学习的是如何使用数据库以及数据库中的数据记录的操作。而数据库软件是由第三方公司研发。

Oracle:它是Oracle公司的大型关系型数据库。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、安全可靠的。但是它是收费的。 MYSQL:早期由瑞典一个叫MySQL AB公司开发的,后期被sun公司收购,再后期被Oracle收购。体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。MySQL6.x版本也开始收费。 DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中. SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。 SyBase:Sybase公司的。 已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

常用数据库:Java开发应用程序主要使用的数据库:MySQL(5.6)、Oracle、DB2。 在web应用中,使用的最多的就是MySQL数据库,原因如下:

  1. 开源、免费
  2. 功能足够强大,足以应付web应用开发(最高支持千万级别的并发访问)

2.关系型数据库

在开发软件的时候,软件中的数据之间必然会有一定的关系存在。比如商品和客户之间的关系,一个客户是可以买多种商品,而一种商品是可以被多个客户来购买的。

需要把这些数据保存在数据库中,同时也要维护数据之间的关系,这时就可以直接使用上述的那些数据库。而上述的所有数据库都属于关系型数据库。

关系型数据:设计数据库的时候,需要使用E-R实体关系图来描述。

E-R 是两个单词的首字母,E表示Entity 实体 R表示Relationship 关系。

实体:可以理解成我们Java程序中的一个对象。比如商品,客户等都是一个实体对象。在E-R图中使用 矩形(长方形) 表示。

属性:实体对象中是含有属性的,比如商品名、价格等。针对一个实体中的属性,我们称为这个实体的数据,在E-R图中使用椭圆表示。

关系:实体和实体之间的关系:在E-R图中使用菱形表示。

需求: 使用E-R图描述 客户、商品、订单之间的关系。

关系型数据库图解.bmp

2、服务器与数据库、表、记录的关系

1550409365086.png

实体类与表的对应关系

实体类与表的对应关系.png

数据库内部存储结构.PNG 说明:

1、一个数据库软件可以安装多个数据仓库,数据仓库可以简称为数据库,在数据库中创建数据表来保存数据。

2、数据库的一行称为记录,可以理解成java实例化后的一个对象。

3、数据库的一列称为字段,理解成java类中的属性。

4、一个数据仓库中是可以有多张表的。

未来关于数据库我们学习的目标:

1)对数据库进行增删改查(CRUD);(主要对整个数据库进行操作,比如删除一个数据库和增加一个数据库)。create(增) read(查) update(改) delete(删)

2)对数据表结构进行增删改查(CRUD);(主要对整张表,比如删除一张表和增加一张表)。

3)对表中的数据进行增删改查(CRUD);(主要对表中的具体数据,比如删除一个表中的一行记录和增加一行数据)。

注意:关于对数据库表的操作,查询是开发中最难的,也是最重要的;

小结

一个数据库软件,可以管理多个数据仓库(数据库)。

一个数据仓库可以管理多张数据表。

每个数据表中可以存储多行数据记录。

提示:每创建一个数据仓库,会在mysql的数据文件目录(data)中多一个文件夹。

3、SQL语句的分类和语法

什么是SQL

Structured Query Language结构化查询语言。SQL语句不依赖于任何平台,对所有的数据库是通用的。学会了SQL语句的使用,可以在任何的数据库使用,但都有特有内容。SQL语句功能强大、简单易学、使用方便。

SQL特点

SQL语句是一个非过程性的语言,每一条SQL执行完都会有一个具体的结果出现。多条语句之间没有影响。

过程性语言:例如java。

int a = 10;

int b = 20;

int sum = a +b;

SQL作用

SQL语句主要是操作数据库,数据表,数据表中的数据记录

SQL语句分类

SQL是用来存取关系数据库的语言,具有定义、操纵、控制和查询关系型数据库的四方面功能。所以针对四方面功能,我们将SQL进行了分类。

  1. DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create drop alter truncate(清空数据记录) show等

  2. DML(Data Manipulation Language)数据操作语言★★★

    在数据库表中更新,增加和删除记录。如 update(更新), insert(插入), delete(删除) 不包含查询

  3. DQL(Data Query Language) 数据查询语言★★★★★ 数据表记录的查询。关键字select。

  4. DCL(Data Control Language)数据控制语言(了解)

    是用来设置或更改数据库用户或角色权限的语句,如grant(设置权限),revoke(撤销权限),begin transaction等。这个比较少用到。

SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾。

  2. 可使用空格和缩进来增强语句的可读性。

  3. MySQL数据库的SQL语句不区分大小写,关键字开发中一般大写。

    SELECT * FROM student;
    
  4. 3种注释 单行注释: -- 注释内容 多行注释: /* 注释 */

    # 注释内容(mysql特有的单行注释)