MySQL 教程

MySQL 教程

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

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

特点:

1.数据以表格的形式出现

2.每行为各种记录名称

3.每列为记录名称所对应的数据域

4.许多的行和列组成一张表单

5.若干的表单组成database

RDBMS 术语

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

·        数据库: 数据库是一些关联表的集合。.

·        数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

·        : 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。

·        行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

·        冗余:存储两倍数据,冗余可以使系统速度更快。

·        主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

·        外键:外键用于关联两个表。

·        复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

·        索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

·        参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL 中的数据类型

MySQL有三大类数据类型分别为数字、日期\时间、字符串这三大类中又更细致的划分了许多子类型:

数字类型

整数: tinyint、smallint、mediumint、int、bigint

浮点数: float、double、real、decimal

日期和时间

date、time、datetime、timestamp、year

字符串类型

字符串: char、varchar

文本: tinytext、text、mediumtext、longtext

二进制(可用来存储图片、音乐等):tinyblob、blob、mediumblob、longblob

使用MySQL数据库

创建一个数据库

使用 create database 语句可完成对数据库的创建, 创建命令的格式如下:

create database 数据库名 [其他选项];

例如我们需要创建一个名为 namelist的数据库, 在命令行下执行以下命令:

create database namelist;

创建数据库表

使用 create table 语句可完成对表的创建, create table 的常见形式:

create table 表名称(列声明);

以创建 nlist 表为例, 表中将存放序号(id)姓名(name)、联系电话(phone) 这些内容:

        create table students

       

               id int unsigned not nullauto_increment primary key,

               name char(8) not null

               phone char(13) null default"-"

        );

create table “表名”(columns) 为创建数据库表的命令, 列的名称以及该列的数据类型将在括号内完成;

括号内声明了3列内容, idnamephone为每列的名称, 后面跟的是数据类型描述, 列与列的描述之间用逗号(,)隔开;

"id intunsigned not null auto_increment primary key" 行进行介绍:

"id" 为列的名称;

"int" 指定该列的类型为 int(取值范围为 -8388608到8388607), 在后面我们又用 "unsigned" 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为 0到16777215;

"not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;

"auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。

"primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。

下面的 char(8) 表示存储的字符长度为8, default 属性指定当该列值为空时的默认值。

向表中插入数据

insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:

insert [into] 表名 [(列名1, 列名2, 列名3, ...)]values (值1, 值2, 值3, ...);

其中 [] 内的内容是可选的, 例如, 要给数据库中表插入一条记录, 执行语句:

insert into nlist values(NULL, "xiaoyu","138");

有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:

insert intostudents (name) values("xiaohua");

查询表中的数据

select 语句常用来根据一定的查询规则到数据库中获取数据, 其基本的用法为:

select列名称 from 表名称 [查询条件];

例如要查询 nlist 表中所有学生的名字和年龄, 输入语句

select name fromnlist;

按特定条件查询:

where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;

where 子句不仅仅支持 "where 列名 = "这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =><>=<!=以及一些扩展运算符 is [not] nullinlike等等。还可以对查询条件使用 or and 进行组合查询

查询电话中带有 "3" 字的所有人信息: select * from nlistwhere phone like "%3%";

更新表中的数据

update 语句可用来修改表中的数据, 基本的使用形式为:

update 表名称 set 列名称=新值 where 更新条件;

删除表中的数据

delete 语句用于删除表中的数据, 基本用法为:

delete from 表名称 where 删除条件;

创建后表的修改

添加列

基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];

修改列

基本形式: alter table 表名 change 列名称 列新名称 新数据类型;

删除列

基本形式: alter table 表名 drop 列名称;

重命名表

基本形式: alter table 表名 rename 新表名;

删除整张表

基本形式: drop table 表名;

删除整个数据库

基本形式: drop database 数据库名;

 


你可能感兴趣的:(MySQL 教程)