如何更好地学习Mysql数据库

发布网友 发布时间:2022-04-22 02:14

我来回答

4个回答

懂视网 时间:2022-04-30 00:03

1. 人工管理阶段

主要存储在纸带、磁带等介质中,手工记录,效率低下。

 

2. 文件系统阶段

存储在计算机磁盘中,以文件形式出现,数据管理变得简单,但是数据没有结构化处理,不易于查询。

 

3. 数据库系统阶段

以数据库形式存储在计算机的磁盘上,用户可以通过数据库管理系统来查询数据。

 

二:数据库技术构成

1. 数据库系统(DataBase System----DBS)

不只是单纯的数据库,而是数据库、数据库管理系统、应用开发工具、数据库管理员和用户等的集合。

数据库是存储数据的地方、数据库管理系统(DataBase Management System---DBMS)是定义、管理、维护数据的软件、应用开发系统是需要使用数据库的软件。

 

2. SQL语言(Structured Query Language----结构化查询语言)

是一种数据库查询和程序设计语言,用来存取数据、查询数据、更新数据和管理数据库系统。

被美国国家标准学会和国际标准化组织通过为关系数据库语言的标准。

主要有DDL(定义数据表、表、视图、索引触发器)、DML(插入、查询、更新、删除数据)、DCL(控制用户访问权限)构成。

 

3. 数据库访问技术

只有使用了数据库访问技术,程序中嵌入的SQL语句才会起作用。不同程序语言访问数据库的方式是不一样的。

ODBC----为访问不同的关系数据库提供了一个共同的接口。使用ODBC来访问数据库必须安装驱动程序Connector/ODBC。

JDBC ----Java语言编写的类和接口,Java可以使用JDBC来访问数据库,需要安装驱动程序Connector/J。

ADO.NET ----是微软公司提供的组件,C#可以使用ADO.NET来访问数据库,需要安装驱动程序Connector/Net。

PHP中为程序员提供了MySQL功能模块,PHP可以通过MySQL功能模块来访问MySQL数据库。

 

三:常见的数据库系统

1. 甲骨文的Oracle

甲骨文公司是世界领先数据库软件开发商,当今世界最优秀的数据库,世界第一个支持SQL语言的数据库。

主要应用在大型系统,数据库非常复杂,管理不方便。

 

2. IBM的DB2

主要应用与OS/2、Windows等平台。

主要应用与大型系统,提供了高层次的数据利用性、数据完整性、高安全性、很强的可恢复性。

 

3. 微软的Access和SQL Server

Access----主要用于小型系统中,是Office系统中的一部分。

SQL Server----微软专用软件,不支持UNIX和Linux,主要应用于大型系统中。

 

4. 开源的MySQL

由瑞典MySQLAB公司开发,2008年被Sun公司10亿美元价格收购,2009年Oracle以74亿美元价格收购Sun公司,很多国内大型网站使用如新浪、网易等。

 

四:为什么使用MySQL数据库

1. MySQL是开放源代码的数据库

任何人都可以获取数据库代码,并且改进数据库BUG,开源、自由。

 

2. MySQL的跨平台性

不仅可以在Windows上运行,还可以在UNIX、Linux和MacOS等操作系统上运行。

 

3. 价格优势

任何人都可以在MySQL官网下载,社区版本的MySQL都是免费使用,即使需要付费的附加版本,价格也是很便宜。

 

4. 功能强大使用方便

多用户、多线程SQL数据库服务器。快速、有效和安全的处理大量数据,相对与Oracle来说,使用非常简单。

 

五:MySQL版本和获取

主要区分Windows版、UNIX版、Linux版和Mac OS版。根据自己的系统来选择数据库版本。

根据开发情况分为

Alpha----该版本处于开发阶段,可能增加新的功能或进行重大修改;

Beta----该版本处于测试阶段,开发已经基本完成,但没有进行全面测试;

Gamma----该版本是发行过一段时间的Beta版,比Beta版要稳定一些;

Generally Available(GA)----该版本已经足够稳定,可以在软件开发中应用。也称为Production版。

 

开发者可以在http://dev.mysql.com/downloads/下载不同版本的MySQL。

MySQL数据库学习----理论基础

标签:

热心网友 时间:2022-04-29 21:11

UPDATE worker_view4 SET name='hi';
ERROR............The target table worker_view4 of the UPDATE is not updatable.
(4)视图中的SELECT中包含子查询。
CREATE VIEW worker_view5(name)
AS SELECT (SELECT name FROM worker);
UPDATE worker_view5 SET name = '刘佳';
该视图中包含了子查询,因此也是不能更新的。
(5)由不可更新的视图导出的视图。
CREATE VIEW worker_view6
AS SELECT * FROM worker_view5;
UPDATE worker_view6 SET name = '王仔';
因为worker_view6是不可更新的视图,所以worker_view6也不可以更新的视图。使用UPDATE语句更新时,会出现系统报错。
(6)创建视图时,ALGORITHM为TEMPTABLE类型。
CREATE ALGORITHM=TEMPTABLE
VIEW worker_view7
AS SELECT * FROM worker;
UPDATE worker_view7 SET name = '王仔';
因为该视图ALGORITHM为TEMPTABLE类型,所以worker_view7不可以更新的视图。TEMPTABLE类型就是临时表类型。系统默认临时表是不能更新的。
(7)视图对应的表上存在没有默认值的列,而且该列没有包含在视图里。例如,表中包含的name字段没有默认值,但是视图中不包含该字段。那么这个视图是不能更新的。因为,在更新视图时,这个没有默认值的记录将没有值插入,也没有NULL值插入。数据库系统是不会允许这样的情况出现的,数据库系统将会阻止这个视图更新。
注意:视图中虽然可以更新数据,但是有很多的*。一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图来更新数据。因为,使用视图更新数据时,如果没有全面考虑在视图中更新数据的*,可能会造成数据更新失败。
除了上述条件不能更新视图以外,WITH[CASCADED|LOCAL]CHECK OPTION也将决定视图能否更新。"LOCAL"参数表示更新视图时要满足该视图本身的定义的条件即可;
8.6 删除视图
删除视图是指删除数据库中已经存在的视图。删除视图时,只能删除视图的定义,不会删除数据。MYSQL中,使用DROP VIEW语句来删除视图,不会删除数据。MySQL中,使用DROP VIEW语句来删除视图。但是,用户必须拥有DROP权限。
DROP VIEW[IF EXISTS] 视图名列表 [RESTRICT|CASCADE]
实例一:
SELECT Drop_priv
FROM mysql.user
WHERE user='root';
CREATE VIEW worker_view_del1
AS SELECT * FROM worker;
CREATE VIEW worker_view_del2
AS SELECT * FROM worker;
CREATE VIEW worker_view_del3
AS SELECT * FROM worker;
DROP VIEW IF EXISTS worker_view_del2, worker_view_del3;
8.7 本章实例
在test数据库中work_info表上进行视图操作。
1. 在test数据库中work_info表
2. 插入记录
3. 创建视图info_view
4. 查看视图info_view的基本结构和详细结构
5. 查看视图info_view的所有记录
6. 修改视图info_view
7. 更新视图
8. 删除视图
work_info表的结构
字段名 字段描述 数据类型 主键 外键 非空 唯一 自增
id 编号 INT(10) 是 否 是 是 否
name 姓名 VARCHAR(20) 否 否 是 否 否
gender 姓别 VARCHAR(4) 否 否 是 否 否
age 年龄 INT(5) 否 否 否 否 否
address 家庭住址 VARCHAR(50) 否 否 否 否 否
tel 电话号码 VARCHAR(20) 否 否 否 否 否
work_info表中的内容
id name gender age address tel
1 张三 M 18 北市市海淀区 01-155151
2 李四 M 22 北京市昌平区 01-215151
3 王五 F 17 湖南省永州市 025-545845
4 赵六 F 25 辽宁省阜新市 0625-514545
(1) 创建work_info表
USE test;
CREATE TABLE IF NOT EXISTS work_info (
id INT(10) NOT NULL UNIQUE PRIMARY KEY,
name VARCHAR(20) NOT NULL,
gender VARCHAR(4) NOT NULL,
age INT(5),
address VARCHAR(50),
tel VARCHAR(20)
) DEFAULT CHARSET=utf8;
(2)向work_info表中插入几条记录。
INSERT INTO work_info VALUES
(1, '张三', 'M', 18, '北市市海淀区','01-155151'),
(2,'李四', 'M', 22, '北京市昌平区', '01-215151'),
(3,'王五','F',17,'湖南省永州市','025-545845'),
(4,'赵六','F',25,'辽宁省阜新市','0625-514545');
(3) 创建视图info_view。从work_info表中选出age>20的记录来创建视图。视图的字段包括id、name、gender和address。ALGORITHM设置为MERGE类型。加上WITH LOCAL CHECK OPTION条件。
CREATE ALGORITHM=MERGE
VIEW info_view(id, name, gender, address)
AS SELECT id, name, gender, address
FROM work_info
WHERE age>20
WITH LOCAL CHECK OPTION;
(4)查看视图info_view的基本结构和详细结构。
SHOW CREATE VIEW info_view \G
(5)查看视图info_view的所有记录。
SELECT * FROM info_view;
(6)修改视图info_view,使其显示age<20的信息,其他条件不变。
ALTER ALGORITHM=MERGE
VIEW info_view(id, name, gender, address)
AS SELECT id, name, gender, address
FROM work_info
WHERE age<20
WITH LOCAL CHECK OPTION;
(7)更新视图,将id为3的记录进行更新。设置其gender为M。
UPDATE info_view SET gender='M' WHERE id=3;
(8)删除视图。
DROP VIEW info_view;
8.8 上机实践
题目要求:
(1)在数据库example下创建college表。
(2)在college表上创建视图college_view。视图的字段包括student_num、student_name、student_age和department。ALGORITHM设置为UNDEFINED类型。加上WITH LOCAL CHECK OPTION条件。
(3)查看视图college_view的详细结构。
(4)更新视图。向视图中插入三条记录。
(5)修改视图,使其显示专业为"计算机"的信息,其他条件不变。
(6)删除视图college_view。
college表的结构
字段名 字段描述 数据类型 主键 外键 非空 唯一 自增
number 学号 INT(10) 是 否 是 是 否
name 姓名 VARCHAR(20) 否 否 是 否 否
major 专业 VARCHAR(20) 否 否 是 否 否
age 年龄 INT(5) 否 否 否 否 否
college_view表的内容
student_num student_name student_age department
0901 张三 20 外语
0902 李四 22 计算机
0903 王五 19 计算机
USE example;
CREATE TABLE college(
number INT(10) NOT NULL UNIQUE PRIMARY KEY,
name VARCHAR(20) NOT NULL,
major VARCHAR(20) NOT NULL,
age TINYINT(3)
) DEFAULT CHARSET=utf8;
CREATE ALGORITHM=UNDEFINED
VIEW college_view(student_num, student_name, student_age, department)
AS SELECT number, name, age, major
FROM college
WITH LOCAL CHECK OPTION;
SHOW CREATE VIEW college_view \G
INSERT INTO college_view VALUES
(0901, '张三', 20, '外语'),
(0902, '李四', 22, '计算机'),
(0903, '王五', 19, '计算机');
CREATE OR REPLACE ALGORITHM=UNDEFINED
VIEW college_view(student_num, student_name, student_age, department)
AS SELECT number, name, age, major
FROM college
WHERE major='计算机'
WITH LOCAL CHECK OPTION;

热心网友 时间:2022-04-29 22:29

从基础开始学习,数据库的安装、常用的CRUD操作、以及数据库的维护方面的知识,一边学习一边操作。多多练习时间长了就了解了;

热心网友 时间:2022-04-30 00:03

我手边有些程序朋友应该能帮你,你在线吗?
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top