MySQL数据库学习小结

数据库

数据库(database)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据. DB

学习数据库的五个基本概念

  1. 数据库服务器
  2. 数据库
  3. 数据表
  4. 数据字段
  5. 数据行

数据库服务器。是指用来运行数据库服务的一台电脑。小型项目通常为一台,中大型项目通常是多台数据库服务器共同来存储或计算。由于数据安全非常重要,所以我们需要对数据库服务器里面的数据进经备份管理。

 

数据库。一个数据库服务器里面有可以有多个数据库。主要用来分类使用。我们可以建立学员管理系统数据库、电子商城数据库、CRM数据库、ERP数据库等等,主要用来将各个不同用途的数据,按照业务进行划分。

 

数据表。例如在学员管理系统数据库中。根据业务的不同又分为了不同的数据表。专门用来存放不同人员的数据。例如:学员数据表(学号、用户名、密码);老师数据表(用户名、密码,工作经验)

 

数据字段,也叫数据列。就是我们日常所见表格里面的列。在表格中,我们会将一张用户表分成多个列。如下(表一)所示:用户编号、用户名、性别、年龄是字段。在真正的数据库中数据字段需要换成英文需要写成:id、username、sex、age。

 

数据行。真正的数据存在每一个表的行里面。字段(列)划分出来了一个表应该按照什么样的格式存数据。而行,是真正的数据。每一行需要遵循数据字段(列)的规范和要求进行存入数据。

(表一)

用户编号

用户名

性别

年龄

1

老李

18

2

科比

36

 

 

MySQL

MySQL是一款完全免费的产品,用户可以直接从网上下载使用,而不必支付任何费用。此外,MySQL数据库的跨平台性也是其一个很大的优势之一。

MySQL是一个真正的多用户、多线程SQL数据库服务器。它是以客户机/服务器结构实现的,由一个服务器守护程序以及很多不同的客户程序和库组成

官方下载地址:

http://dev.mysql.com/downloads/mysql/

 

MySQL 5.5融合了MySQL数据库和InnoDB存储引擎的优点,能够提供高性能的数据管理解决方案,包括:

InnoDB作为默认的数据库存储引擎。

改善性能和可扩展性,全面利用各平台现代、多核构架的计算能力。

提高实用性。

提高易管理性和效率。

提高可用性。

安装MySQL

双击即可,大部分都是一路next

关键节点注意事项:

  1. 选中“Typical”,典型安装模式
  2. 选中“Detailed Configuration”(详细配置)单选按钮
  3. 选中“Developer Machine”(开发者机器)单选按钮
  4. 选中“Multifunctional Database”(多功能数据库)单选按钮
  5. 服务端口3306,不建议更改
  6. 字符集注意要选“Manual Selected Default Character Set/Collation”单选按钮,设置字符集编码为utf8
  7. 设置密码尽量简单,注意不要忘了,我们只是来做实验  root  123

启动MySQL服务

“我的电脑”→“管理”→“服务”在服务器的列表中找到mysql服务并右键单击,在弹出的快捷菜单中,完成MySQL服务的各种操作(启动、重新启动、停止、暂停和恢复)

 

也可以通过命令行的方式来管理

Window键+x

 

客户端连接mySQL服务

 

SQL

一切就绪,开始学SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL是关系模型的数据库应用语言,由IBM在20世纪70年代为其关系型数据库 System R 所开发。

SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准。

虽然各个数据库系统略有不同,但是他们基本均遵循SQL 92标准。或者在SQL 92上做了一些简单的扩展和变化。

SQL分类

  1. 数据定义语言(DDL ,Data Defintion Language)语句:数据定义语句,用于定义不同的数据对象、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等。

 

  1. 数据操作语言(DML , Data Manipulation Language)语句:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句关键字主要包括insert、delete、update和select等。(DML:添加,修改,删除,DQL:查询)

 

  1. 数据控制语言(DCL, Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

 

DDL

我们将分三块来学习

  1. 数据库操作
  2. 数据表操作
  3. 数据字段操作

数据库操作

 

 

 

数据表操作

创建表:

基本语法:create table 表名(字段名1 字段类型,....字段名n 字段类型n);

示例:create table user(username varchar(32),password varchar(32));

特别说明:

字段类型是建表的关键,目前要掌握关键常用的几个

int,代表整型。float,代表浮点

char和varchar(最多到255)代表字符串,text存放长文本信息

datetime,timestamp代表时间

  

 

 

删除表

 

修改表名  

语法:alter table 旧表名 rename 新的表名;

 

数据字段操作

修改字段类型

语法格式:alter table 表名 modify 字段名 varchar(20);

示例:alter table user modify username varchar(64);

 

 

 

增加表字段:

语法格式:alter table 表名 add column 字段名 类型;

 

 

删除表字段:

语法格式:alter table 表名 drop column 字段名;

 

 

修改字段名

语法格式:alter table 表名 change 字段原名 字段新名 字段类型;

 

 

DML

增删改查,CRUD

插入记录

语法格式:

insert into 表 values(值1,值2,值n);

insert into 表(字段1,字段2,字段n) values(值1,值2,值n);

 

两种语法的区别:

基本语法1的插入语句,表中有多少个字段就必须要插入多少个值。一个不能多,一个也不能少。若有默认值,不想传,可以写上null。

基本语法2中,除非有必填字段必须要写入值外。如果有默认值的不想写可以忽略不写。mysql会自动补主默认值

 

 

 

查询记录

 

语法:

select * from 表;

select 字段 from 表;

select distinct 字段 from 表;

select 字段 from 表 where where条件;

select 字段 from 表 order by 字段 排序关键词

asc

升序排列,从小到大(默认)

desc

降序排列,从大到小

 

 

 

多字段排序

order by 后面可以跟多个不同的字段排序,并且排序字段的不同结果集的顺序也不同,如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序。

语法:

select 字段 from 表 order by 字段1 排序关键词,... ...字段n desc|asc;

注意:只有在第一个字段排序后,出现相同值才会比较第二个字段,否则第二个比较字段无效,主排序字段和次排序字段

 

结果集限制

语法:

select 字段 from 表 limit 数量;

取前几条记录

限制结果集并排序

语法:

select 字段 from 表 order by 字段 关键词 limit 数量

取这个班年龄最大的前三个人

 

结果集区间选择(分页)

语法:select 字段 from 表 limit 偏移量,数量

 

统计类函数使用(聚合函数)

函数

说明

sum

求和

count

统计总数

max

最大值

min

最小值

avg

平均值

 

 

分组,分组过滤

 

 

 注意:分组查询中,匹配的条件不用where,而是having

多表联合查询

表连接

当需要查询多个表中的字段时,就可以使用表连接来实现。表联接分为内连接和外连接。

内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。

外连接:会选出其他不匹配的记录,分为外左联结和外右联结。

内连接

select 表1.字段 ,表n.字段 from 表1 [别名],表n where 条件;

select 表1.字段 [as 别名],表n.字段 from 表1 INNER JOIN 表n on 条件;

 

外连接

select 表1.字段 [as 别名],表n.字段 from 表1 LEFT JOIN 表n on 条件;

左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录

右连接:包含所有的右边表中的记录甚至是边表中没有和它匹配的记录

select 表1.字段 [as 别名],表n.字段 from 1`表1 right JOIN 表n on 条件;

 

实验:

建立两个表的关系

 

 

 

 

提供左连接和右连接的实验数据

 

 

 

更新记录

语法:

update 表名 set 字段1=值1,字段2=值2,字段n=值n where 条件

 

 

 

 

删除记录

语法:

delete from 表 [where 条件];

TRUNCATE TABLE 表名;

清空表的数据,并且让自增的id从1开始自增

 

 

 

 

DCL

首先,需创建用户

添加权限

类别

详细解示

基本语法

grant 权限 on 库.表 to '用户'@'主机' identified by '密码';

示例

grant select, insert on test.* to 'huangguizhao'@'localhost' identified by '4311';

示例说明

给予huangguizhao用户,在本机连接test库所有表的权限。操作的这些表具有查询和写入权限

注:可以针对一个用户增加多条权限。

删除权限

类别

详细解示

基本语法

revoke 权限 on 库.表 from '用户'@'主机';

示例

revoke select, insert on test.* from 'huangguizhao'@'localhost';

示例说明

删除huangguizhao用户,在本机连接test库所有表的权限。操作的这些表具有查询和写入权限

参数说明

符号

说明

grant all

在grant后接all说明给予所有权限

revoke all

在revoke后接all说明删除所有权限

权限 on .

. 所明给予所有库所有表的操作权限

'用户'@'主机'

主机里面若为%。任意来源的主机均可以使用这个用户来访问

创建数据库用户huangguizhao ,具有对test数据库中所有标的 select / insert 权限

 

 

 

 

数据库备份和恢复

备份:

mysqldump -u root -p lhp>d:\lhp.sql

密码过后输入

mysqldump -u root -proot  lhp>d:\lhp.sql

 

恢复:

前提:必须先创建数据库

需先登录mySQL,进入指定数据库后执行SQL

Source d:\\lhp.sql

 

还有一种方式

Mysql -uroot -proot lhp

你可能感兴趣的:(MySQL,数据库)