数据库
数据库(database)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据. DB |
学习数据库的五个基本概念
数据库服务器。是指用来运行数据库服务的一台电脑。小型项目通常为一台,中大型项目通常是多台数据库服务器共同来存储或计算。由于数据安全非常重要,所以我们需要对数据库服务器里面的数据进经备份管理。
数据库。一个数据库服务器里面有可以有多个数据库。主要用来分类使用。我们可以建立学员管理系统数据库、电子商城数据库、CRM数据库、ERP数据库等等,主要用来将各个不同用途的数据,按照业务进行划分。
数据表。例如在学员管理系统数据库中。根据业务的不同又分为了不同的数据表。专门用来存放不同人员的数据。例如:学员数据表(学号、用户名、密码);老师数据表(用户名、密码,工作经验)
数据字段,也叫数据列。就是我们日常所见表格里面的列。在表格中,我们会将一张用户表分成多个列。如下(表一)所示:用户编号、用户名、性别、年龄是字段。在真正的数据库中数据字段需要换成英文需要写成:id、username、sex、age。
数据行。真正的数据存在每一个表的行里面。字段(列)划分出来了一个表应该按照什么样的格式存数据。而行,是真正的数据。每一行需要遵循数据字段(列)的规范和要求进行存入数据。 (表一)
|
MySQL
MySQL是一款完全免费的产品,用户可以直接从网上下载使用,而不必支付任何费用。此外,MySQL数据库的跨平台性也是其一个很大的优势之一。 MySQL是一个真正的多用户、多线程SQL数据库服务器。它是以客户机/服务器结构实现的,由一个服务器守护程序以及很多不同的客户程序和库组成 官方下载地址: http://dev.mysql.com/downloads/mysql/
MySQL 5.5融合了MySQL数据库和InnoDB存储引擎的优点,能够提供高性能的数据管理解决方案,包括: InnoDB作为默认的数据库存储引擎。 改善性能和可扩展性,全面利用各平台现代、多核构架的计算能力。 提高实用性。 提高易管理性和效率。 提高可用性。 |
安装MySQL
双击即可,大部分都是一路next 关键节点注意事项:
|
启动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分类
|
DDL
我们将分三块来学习
|
数据库操作
|
数据表操作
创建表: 基本语法: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 字段 排序关键词
多字段排序 order by 后面可以跟多个不同的字段排序,并且排序字段的不同结果集的顺序也不同,如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序。 语法: select 字段 from 表 order by 字段1 排序关键词,... ...字段n desc|asc; 注意:只有在第一个字段排序后,出现相同值才会比较第二个字段,否则第二个比较字段无效,主排序字段和次排序字段
结果集限制 语法: select 字段 from 表 limit 数量; 取前几条记录 限制结果集并排序 语法: select 字段 from 表 order by 字段 关键词 limit 数量 取这个班年龄最大的前三个人
结果集区间选择(分页) 语法:select 字段 from 表 limit 偏移量,数量
统计类函数使用(聚合函数)
分组,分组过滤
注意:分组查询中,匹配的条件不用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
首先,需创建用户 添加权限
注:可以针对一个用户增加多条权限。 删除权限
参数说明
创建数据库用户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<d:\lhp.sql |