MySQL

1.什么是MySQL

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database

1.1RDBMS 术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库:数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • :一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成,

  • 表头(header):每一列的名称;
  • 列(col): 具有相同数据类型的数据的集合;
  • 行(row): 每一行用来描述某条记录的具体信息;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 键的值在当前列中具有唯一性。

2.数据库与表的创建与删除

2.1数据库的创建

创建数据库:
CREATE DATABASE 数据库名 ;

添加数据

INSERT INTO 表名 [(字段名1,字段名2,………)] values (值1,值2,值3,………);

修改数据

UPDATE 表名 SET column_name = value [ , column_name2 = value2, …. ] [ WHERE condition ];

删除数据

DELETE FROM 表名 [ WHERE condition ];

2.1.1数据表的建立

创建数据表需要:

表名
表字段名
定义每个表字段


1 create  table  `表名`(
2 `字段名`   列类型   [属性]  [索引]  [注释] ,
3 `字段名`   列类型   [属性]  [索引]  [注释] ,
4 `字段名`   列类型   [属性]  [索引]  [注释] ,
5 ............
6 `字段名`   列类型   [属性]  [索引]  [注释] ,
7 )[表类型][表字符集][注释];

### 实例
创建一个学生的个人信息,学生表(列,字段)

在建表之前一定要先确立数据库

CREATE DATABASE students;
CREATE TABLE students.student(
name VARCHAR(30) NOT NULL DEFAULT ‘匿名’ COMMENT ‘姓名’,
sex VARCHAR(2) NOT NULL DEFAULT ‘男’ COMMENT ‘性别’,
birthdayDATETIME DEFAULT NULL COMMENT '生日', address VARCHAR(100) DEFAULT NULL COMMENT ‘地址’,
email VARCHAR(50) DEFAULT NULL COMMENT ‘邮箱’,
PRIMARY KEY (name) )
ENGINE=INNODB
CHARSET=utf8 COLLATE=utf8_general_ci;

使用命令行操作数据库:
删除数据表:drop table `表名`;
删除表内数据(不保存表结构):delete    from  `表名`  where   删除条件;
清除表内数据(保存表结构):用  truncate  :truncate  table  `表名`;

2.1.2修改数据表

修改表名ALTER TABLE 旧表名 RENAME AS 新表名
添加字段ALTER TABLE 表名 ADD 字段名 列属性 [属性]
修改字段ALTER TABLE 表名 MODIFY 字段名 列属性[属性] ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性 [属性]
删除字段ALTER TABLE 表名 DROP 字段名
  • 数据类型
    数据类型中包含数值类型、字符串类型、日期和时间类型、字符串类型;
    a.数值类型

MySQL中支持所有的标准的数值数据类型

BIT数据类型保存为字段值,并且支持MyISAM、MEMORY、InnoDB、和BDB表。

b.日期和时间类型

表示时间值的日期和时间类型为DataTime、Date、TimeStamp、Time和Year。

每个时间类型都有一个有效值范围和一个“零”值,当指定不合法的MySQL不能表示的值时使用“零”值;

2.1.3数据库查询

名称解释命令
DDL(数据定义语言)定义和管理数据对象,如数据库,数据表等create、drop、alter
DML(数据操作语言)用于操作数据库对象中所包含的数据insert、update、delete
DQL(数据查询语言)用于查询数据库数据select
DCL(数据控制语言)用于管理数据库的语言,包括管理权限及数据更改grant、commit、rollback
查看数据库定义SHOW CREATE DATABASE students;
查看数据表的定义SHOW CREATE TABLE student;
显示表结构DESC student;
设置严格检查模式SET sql_mode=’ strict_tables’;

2.2MySQL的数据管理

UPDATE     更新数据   (  INSERT     插入数据、  DELETE   删除数据、     SELECT  查询数据)
 USE students; SELECT * FROM student; 	

在这里插入图片描述

2.2.1数据插入

MySQL 表中使用了 INSERT INTO SQL语法

方式一

INSERT INTO 表名 (字段1, 字段2,字段3...)

VALUES

(' 值1 ','值2','值3'...);

  1. 在INTO 字句中指出了表名 student,并指出了新增加的元组与哪些属性上要赋值,属性的顺序可以与 TABLE 表中的顺序不一样。
  2. VALUES 字句对新元组中的属性赋值,字符串常数要用单引号(英文符号)括起来;

实例

INSERT INTO student (NAME,sex)

VALUES

('李四','男');

结果:

在这里插入图片描述

方式二

INSERT INTO 表名

VALUES

(' 值1 ','值2','值3'...);

  1. INTO 字句中只指出表名,没有指出属性名,这表明新元组中要在表中所有的属性列都要指定值,属性列的值要求与 TABLE 表中的顺序相同;

  2. VALUES 字句对新元组的各属性列赋值,注意所赋的值要与属性列一致;

    INSERT INTO student VALUES ('王五','男','1996.06.03','陕西','1249192060@qq.com');

    结果:

在这里插入图片描述

2.2.2删除数据

删除语句的一般的格式为:

DELETE

FROM 表名

WHERE 条件;

方式1 删除某一元组的值

DELETE

FROM student

WHERE NAME='李四';

结果:

在这里插入图片描述

方式2 删除多个元组的值

DELETE FROM student ;

这条DELETE 语句将使student表成为空表,它删除了student表内的所有元素;

结果:

在这里插入图片描述

2.2.3数据查询

DQL( Data Query Language 数据查询语言 )

  • 查询数据库数据 , 如SELECT语句
  • 简单的单表查询或多表的复杂查询和嵌套查询
  • 是数据库语言中最核心,最重要的语句

语法

以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name

FROM table_name

[WHERE Clause]

[LIMIT N] [ OFFSET M]

  1. 查询语句可以是一个或者是多个表,表之间用逗号隔开,并使用where语句来设定查询的条件;
  2. select 命令可以读取一条或者多条记录;
  3. 可以使用 星号(*)代替其他的字段,SELECT语句返回所有的字段数据;
  4. 可以使用where语句包含任意的条件;

读取数据表:

select * from student; //查询表中所有的数据

DISTINCT关键字的使用

作用 : 去掉SELECT查询返回的记录结果中重复的记录(返回所有列的值都相同),只返回一条

where 条件语句:

  • 检索数据表中符合条件的记录;
  • 搜索条件可以有一个或多个逻辑表达式组成;
  • where语句也可以用在SQL的DELETE或者UPDATE命令;
  • where语句类似于if条件,根据MySQL表中的字段值来读取指定的数据;
  • 如果使用主键作为where字句的条件查询是非常快速的;

2.2.4视图

视图是由一个或几个基本表导出的表,他与基本表不同,是一个虚表。

视图一旦定义了就可以和基本表一样被查询,被删除,也可以在视图上在定义视图,但会对视图的更新(增,删,改)操作有一定的限制;

建立视图

CREATE VIEW 视图名

AS

[WITH CHECK OPTION];

QL的DELETE或者UPDATE命令;

  • where语句类似于if条件,根据MySQL表中的字段值来读取指定的数据;
  • 如果使用主键作为where字句的条件查询是非常快速的;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值