您的位置:首页 > 数据库 > MySQL

MySQL 教程

2016-05-15 23:37 351 查看
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列内容, id、name、phone为每列的名称,
后面跟的是数据类型描述,
列与列的描述之间用逗号(,)隔开;
以 "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] null、in、like等等。还可以对查询条件使用
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 数据库名;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: