一、数据库概述
数据库(Database DB DBA)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
二、数据库的分类
按照早期的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库(前两者已经基本消失)。而当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。
关系型数据库:关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,(关系型数据库是以表的形式进行存储数据 其中一张表有行和列组成并且列是固定的 行随便加)一组表组成了数据库。Oracle、MySQL、SqlServer
非关系型数据库:非关系型数据库也被称为NoSQL数据库,NoSQL的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”的意思(没有SQL语句?),因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。一般是key-value形式 类似于一个Map
我们用关系型数据库来最终持久化数据,非关系型数据库作为作为关系型数据库的缓存去使用。
三 MySQL数据库
安装的是MySQL 课程名称MySQL 但是咱们学的不是MySQL
而是学习 SQL
四 SQL
结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
MYSQL:建表、查询、增删改、多条件查询、关联查询、子查询。数据库设计。
Oracle:建表、增删改查、游标、触发器、储存过程。。。PLSQL
结构化查询语言包含6个部分:
一:数据查询语言(DQL:Data Query Language):查
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
二:数据操作语言(DML:Data Manipulation Language):增删改
其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
三:事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
五:数据定义语言(DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
六:指针控制语言(CCL):
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
五 MySQL服务的启动
我的电脑右键---》管理
选择服务--搜索mysql
设置为开机自动
六 连接MySQL
A 开始--》MySQL---》mysql5.5 command lineshell
B 找到MySQL的安装目录--bin
在地址栏输入 cmd 回车,此时会弹出一个黑窗口 然后我们进行MySQL的连接
mysql -uroot -p 回车
接下来输入密码
C 我们使用 navicat 图形工具进行连接
打开程序
选择连接
填入信息之后 进行连接测试
点击确定进入mysql图形界面
我们看到的四个大饼 是mysql自带的四个数据库 每个数据库下面都有数据库表
每个数据库表中存放这数据
服务器:能提供服务的机器
硬件服务器:装有硬盘 内存 。。。 的电脑主机
软件服务器: web服务器 : Tomcat
数据库服务器 : MySQL
我们可以想想一下 连接别人的服务器 需要怎么连?
例如我们连接百度 http://www.baidu.com 其实 这经历过了域名解析 根本道理是使用ip地址+端口号的形式进行连接 网编变成中称之为 套接字
那么此时 我们连接MySQL 首先先进行连接
主机: 其实就是输入ip地址 表明当前你想连哪台电脑
我们此时输入的是 localhost 代表 127.0.0.1 这个ip地址是本机的ip地址
端口: 确定连接某台主机上面的哪个服务器程序
用户名:root
密码:******
七 常用SQL
1 查看当前数据库中所有的数据库表
2 创建数据库
3 我们希望在mytest中对mytest这个数据库进行操作 所以我们需要 使用这个数据库
4 查看mytest中有多个数据库表
5 建表语句
CREATE TABLE 表名 (
列名 类型 [约束] ,
列名1 类型 [约束]
)
6 查看表结构
注意 如果写错了
7 查询数据库表中的数据
SELECT 列名1,列名2 FROM 表名
* 代表通配符 代表所有列
8 添加数据
A 往指定列进行数据的添加
INSERT INTO 表名 (列名1,列名2) values (值1,值2)
B 所有列都添加
INSERT INTO 表名 VALUES (NULL ,值。。。);
注意:因为现在是给所有列添加数据 id肯定也得需要添加,但是id是自增的,所以我们添加的时候写null,此时id依然会去自增
C 添加多行
INSERT INTO 表名 VALUES (),(),()
9 修改数据
UPDATE 表名 set 列名=值,列名1=值 WHERE 条件
10 删除数据(
逻辑删除: 在设计数据库表的时候添加一个状态列
例如: state 0 使用 1 代表无用
物理删除:从数据库中将数据进行删除
)
DELETE FROM 表名 where 条件
注意 我们此时的删除 之后 id不会填充
11 删除表
12 删除库
八 约束
primary key 主键约束相当于A 唯一约束+非空约束的组合(非空且唯一),主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束, 那么这些列都不允许为空值,并且组合的值不允许重复。 每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。MySQL的主键名总是PRIMARY, 当创建主键约束时,系统默认会在所在的列和列组合上建立对应的 B 唯一索引。
我们创建数据库表的时候 一定要保证有一个无意义的主键 id int primary key
AUTO_INCREMENT(自增长)
DEFAULT(默认)
unique代表唯一约束。唯一约束是指定table的列或列组合不能重复,保证数据的唯一性
not null为非空约束,指定某一行的值不能为null。
九 数据库中的数据类型
面试题 : char 和 varchar的区别?
MySQL的数据库引擎有哪些?
作业:alter 语句的使用