MySQL数据库项目式教程
2022-05-23 15:42:05 0 举报
AI智能生成
MySQL数据库
作者其他创作
大纲/内容
MySQL映象
尝试接触数据库
MySQL概述:
MySQL是一个关系型数据库管理系统,关系型数据库将数据保存在不同表中。
数据库的主要特点:运行数度快、复杂程度较低、价格相对廉价、支持查询语句、连接性和安全性,可移植性。
数据库的技术构成:
数据库系统由硬件部分和软件部分共同构成
数据库用于存储数据的地方
数据库管理系统用于管理数据库的软件
数据库应用程序。为了提高数据库系统的处理能力所使用的管理数据库的软件补充
客户端服务器结构
主从式架构或客户端/服务器结构(简称C/S结构)是一种网络构架,该网络构架下软件分为客户端和服务器。
服务器是整个应用系统资源的存储与管理中心,多个客户端则个自处理相应的功能,共同实现完整的应用。
MySQL的命令行工具
结构化查询语言
数据定义语言:用于创建、删除、更改数据库对象,代表语言有CREATE、DROP、ALTER。
数据操作语言:用于对数据库进行操作,代表语句有SELECT、INSERT、UPDATE、DELETE等。
数据控制语言:主要负责用户权限管理,代表语句有GRANT、REVOKE、COMMIT、ROLLBACK等。
my.ini
my.inn是数据库使用的配置文件,修改这个文件可以达到更新配置的目的。
图形管理工具Navicat
Navicat是一套快速、可靠并价格便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而开发,其设计符合数据库管理员开发人员的需要。让用户更安全且简单的方式创建、组织、访问和共享MySQL数据库中的数据。
Navicat可以用来对本机或远程的MySQL、SQL Server、sqlite、Oracle及post-greSQL数据库进行管理及开发。
Navicat适用于Microsoft Windows 、Mac OS及Linux 3种平台,它可以让用户连接到本机或任意远程服务器,并提供一些使用的数据库工具(如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具)及计划以协助管理数据。
创建与维护MySQL数据库
使用图形化工具创建数据库
数据库是存储数据库对象的容器。
字符集及字符序,默认情况下MySQL使用的是latinl字符集。 字符是人类语言最小的表意符号,“字符和编码对”组成的合集就是字符集
MySQL字符集的设置
通过修改my.ini配置文件,可修改MySQL默认字符集。
MySQL存储引擎
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据库引擎进行创建、查询、更新和删除数据操作。
MySQL的核心就是存储引擎。
MySQL提供了多个不同的存储引擎,包括事务处理安全表的引擎和处理非事务安全表的引擎。
innodb支持外键完整性约束(foreign key)
使用命令语句创建、修改和删除数据库
创建数据库命令语句
create database 数据库名
修改数据库命令语句
alter database 数据库名
删除数据库命令语句
drop database 数据库名
使用语句方式选择和查看数据库
选择当前数据库为phonesy
use phonesy;
查看数据库phonesy的建库信息
在提示符“MySQL>”后输入以下语句:show create database phonesy;
使用图形化工具备份、还原MySQL的数据库
使用Navicat备份数据库phonesy
使用Navicat还原数据库phonesy的数据
创建与维护MySQL数据表
数据表的结构及数据完整性设计
数据表是数据库的基本组成元素,以记录(行) 和字段(列)组成的二维结构用于存储数据。
数据结构:二维表,解决数据如何存储。
操作指令集合:所有的SQL语句,解决如何处理数据。
完整性约束:表内数据约束(字段与字段),表与表之间的约束(外键)。
数据类型
数据类型 :整数类型的数,默认情况下既可以表示正整数又可以表示负整数(此时称为有符号数)。若只希望表示零和正整数,则可以使用无符号关键字“进行修饰(此时称为无符号整数)。
使用语句创建数据表及其约束
使用create table语句创建数据表及其约束
数据表属于数据库,在创建数据表之前,应该使用语句“USE<数据库名>”定操作在椰个数据库中进行,如果没有选择数据库,就会抛出“NO DATABASE SELECTED"的错误提示。
表的创建命令需要表的名称、字段名称、定义每个字段(类型、长度等)。
主键约束(PRIMARY KEY CONSTRAINT)要求主键列的数据唯一,并且不允许为空。主键分为两种类型:单字段主键和多字段组合主键。
使用语句查看数据表结构
用语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确在MySQL中,查看表结构可以使用DESCRIBE和SHOW CREATE TABLE语句。
查看表基本结构语句DESCRIBE。DESCRIBE/DESC语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等,其语法格式为:DESCRIBE表名;C或者简写为:DESC表名;表SHOW CREATE TABLE数
查看表详细结构语句SHOW CREATE TABLE。语句可以用来显示创建表时的CREATE TABLE语句,其语法格式为:SHOW CREATE TABLE<表名>;使用SHOW CREATE TABLE语句,不仅可以查看表创建时的详细语句,而且可以查看存储引擎和字符编码。
使用图形管理工具创建数据表
使用Navicat创建“供货商表”及其约束
使用Navicat创建“进货表”及其约束
在主键约束“序号”字段定义时要选中“自动递增”和“无符号”复选框。
修改、删除数据表结构
使用ALTER TABLE语句修改、删除表结构
修改表名。其语法格式为:阅单ALTER TABLE<旧表名>RENAME[TO]<新表名>;
修改字段的数据类型,就是把字段的数据类型转换为另一种数据类型,具体的语法格式为:ALTER TABLE表名>MODIFY字段名<数据类型>
修改字段名。其语法格式为:群出街的菜ALTER TABLE表名)CHANGE〈旧字段名>《新字段名><新数据类型>;
添加字段。其语法格式为:ALTER TABLE(表名>ADD(新字段名>(数据类型>[约束条件][FIRST IAFTER已存在字段名];新字段名为需要添加字段的名称;
删除字段。删除字段是指将数据表中的某个字段从表中移除,其语法格式为:ALTER TABLE<表名>DROP<字段名;
数据插入、更新与删除
使用命令语句插入数据
insert into <表名> 【字段1,字段2,…,字段N】 VALUES (数据1,数据2,数据N);
使用命令语句更新数据
UPDATE 表名 SET 字段1=值1,字段2=值2,…,字段N=值N [WHERE 条件]
使用命令语句删除数据
DELETE FROM 表名 [where 条件]
数据转储
使用命令语句转储数据
使用MySQLdump命令必须有足够的权限,其基本,语法格式为:MySQLdump[-H<IP地址>]-U<用户名>-P[数据库密码]-DATABASE 数据库1 数据库2…>[存储路径]文件夹.SQL
MySQL数据表检索
查询时选择列
基本查询语句
MySQL从数据表中查询的基本语句为select语句。
FROM<表1>,表2>...:表1和表2表示查询数据的来源,可以是单个或多个。
WHERE<表达式>:可选项,如果选择该项,将限定查询行必须满足的查询条件[GROUP BY<字段>]:该子句告诉MySQL如何显示查询出来的数据,并按照指定的字段分组。
[ORDER BY<字段>]:该子句告诉MySQL按怎样的顺序显示查询出来的教据,可以进行的排序有升序(ASC)、降序(DESC)。
检索所有列
ORDER BY<字段>]:该子句告诉MySQL按怎样的顺序显示查询出来的教据,可以进行的排序有升序(ASC)、降序(DESC)。
在SEL.ECT语句中指定所有字段。根据前面SELECT语句的格式,SELEC关键字后面的字段名为将要查找的数据因此可以将表中所有字段的名称里SELECT子句后面。
其语法格式为:SELECT字段1,字段2,…,字段n FROM表名;
检索指定列
检索单个字段。查询表中的某一个字段,语法格式为:SELECT字段名FROM表名;
检索多个字段。要想从数据表中检索多个字段的数据,仍然使用相同的SELECT语句,只需在关键字SELECT后面指定要查找的多个字段的名称,不同字段名称之间用逗号(,)分隔开,最后一个字段后面不需要加逗号,语法格式为:SELECT字段1,字段2,.…,字段nFROM表名;
查询时选择行
查询指定记录
select 字段名1,字段名2,……,字段名n from 表名 where条件;
带in关键字的查询
select 字段名1,字段名2,……,字段名n from 表名 in(值1,值2,……);
带between and的查询范围
select 字段名1,字段名2,……,字段名n from 表名 where 字段名 between 值1 and 值2;
带like的字符匹配查询
select 字段名1,字段名2,……,字段名n from 表名 where 字段名 like 条件
查询空值
select 字段名1,字段名2,……,字段名n from 表名 where 字段名 is null;
带and的多条件查询
select 字段名1,字段名2,……,字段名n from 表名 where条件1 and 条件2……;
带or的多条件查询
select 字段名1,字段名2,……,字段名n from 表名 where条件1 or 条件2……;
查询不同的值
select distinct 字段名1,字段名2,……,字段名n from 表名 ;
显示前N行
select distinct 字段名1,字段名2,……,字段名n from 表名 limit【位置偏移量,】行数;
查询结果排序
从表中查询出来的数据是无序的,或者期排列顺序不是用户所要的。
select 字段名1,字段名2,……,字段名n from 表名 order by 字段名1 【asc|desc】,字段名2【asc|desc】……;
查询的分组与汇总
聚集函数
AVG(函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。AVG()函数可以用来返回所有列的平均值,也可以用来返回特定列或行的平均值。
COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,其使用方法有以下两种。DCOUNT(*):计算表中总的行数,不管某列是否有数值或为空值。
分组查询
其基本语法形式为:[GROUP BY字段名J[HAVING<条件表达式>]
select 子句顺序
创建多表连接查询
交叉连接查询
语法格式为: select * from 表名1 crossjoin 表名2;
内连接查询
Select*from 表名1 inner join表名2
On 表名1.表1字段名=表名2.表2字段名
On 表名1.表1字段名=表名2.表2字段名
外连接查询
Select*from 表名1 left join 表名2;
复合条件连接查询
是在连接查询的过程中
为表取别名
select * from 表名 【as】 别名;
创建子查询
带in关键字的子查询
select 查询字段 from表名 【not】 in (select 语句);
带exists 关键字的子查询
select 查询字段 from 表名 where 【not】exists (select语句);
带any 、some 关键字的子查询
带all关键字的子查询
创建多表联合查询
使用union
select 查询字段 from表名;
union规则
必须由两条或两条以上的select 语句组成
对联合查询排序
创建与使用视图
使用语句创建视图
创建视图
子主题
视图的规则和限制
与表一样视图必须唯一命名
对于可以创建的视图数目没有限制
视图可以嵌套,可以利用从其他视图中检所数据的查询来构造一个视图。
使用图形管理工具创建视图
添加数据
从左侧数据库对象窗口拖动数据表到图标设计窗口或双机数据表。
选择字段名
选中相应数据表对象的字段复选框
删除对象
从视图工具界面的图标设计窗口中移除对象
添加表别名
用户只需在图标设计窗口中双击表明并输入别名
修改视图
使用create or replace view 语句修改视图
使用alter语句修改视图
删除视图
使用drop语句删除视图 view_ygmd
创建与使用存储过程
pl/SQL的变量
变量是指在程序运行过程中其值可以改变的量,包括用户变量、系统变量、和局部变量。
PL/SQL 的运算符及表达式
运算符
算术运算符
赋值运算符、
比较运算符
逻辑运算符
位运算符
一元运算符
子主题
表达式是由操作数、运算符、分组符号、和函数构成的组合。
创建与使用事务
事物的acid特性
原子性
一致性
隔离性
持久性
事务控制语句
开始事务:start transaction;
提交事务:commit;
设置保存点:savepoint<保存点名称>;
撤销事务:rollback;
创建与使用触发器
触发器概述
触发器是特殊的存储过程,是一个被指定关联到数据表上的数据库对象,可以有作数据表定义的一部分,可用于实现数据库中数据的完整性。
触发器有以下三个作用
安全性。可以使用户具有操作数据库的特定权利。
实现复杂的数据完整性。
实现复杂的非标准数据相关完整性。
创建触发器
create trigger语句
查看及删除触发器
查看触发器:show trigger 【from 数据库名】;
删除触发器:drop trigger 【if exists】 【数据库名.】 触发器名;
数据库的安全性维护
添加数据库用户
MySQL权限表
user权限表。user是MySQL中最重要的一个权限表,user列主要分为4个部分:用户列、权限列、安全列和资源控制列。①用户列:用户登录时通过表中的Host、User和Password列判断连接的IP、用户名称和密码是否存在于表中来通过身份验证或拒绝连接。
添加用户
添加用户可以可以通过 create user 、insert 和语句来实现。
授予、 回收数据库用户权限
授予用户权限
可以达到添加新用户或修改用户密码的作用GRANT语句的语法格式为:GRANT<权限名称>[(字段列表)]ON<对象名>TO<用户名@<主机[IDENTIFIED BY[PASSWORD]<新密码>][WITH GRANT OPTION]:
ALL[PRIVILEGES]:除GRANT OPTION之外的所有简单权限。CREATE:允许创建数据表ALTER:允许修改数据表。HOM38 DROP:允许删除数据表。SELECT:允许检索数据表。客内爱INSERT:允许在数据表中插入数据。
查看用户权限
使用SHOW GRANTS语句查看授权信息,其语法格式为:SHOW GRANTS FOR<用户名<主机>
回收用户权限
使用回收权限语法格式:revoke<"权限名称">【字段列表】 on <"对象名"> from <"用户名">@<"主机">
收藏
0 条评论
下一页