您的位置:首页 > 数据库

关系型数据库基础 第一章(共六章节)

2008-06-07 14:41 357 查看
第一章 [/b]关系数据库基础[/b][/b]
[/b]
[/b]
n 关系数据库的基本概念
n 数据库要素

关系数据库[/b][/b]

n 关系数据库是利用数据库进行数据组织的一种形式,是现代流行数据库系统中应用最为普遍的一种,也是最有效率的数据组织方式之一;
n 在关系数据库系统中,所有的数据都是按表(按关系理论的术语,表应成为“关系”)进行组织和管理的;

表是数据库中数据的组织方式[/b][/b]

雇员代号
Code
雇员姓名
Name
性别
Sex
工作部门代号
Dep
001张三丰B-1
002孙不二B-2
003王五B-3
004张翠山B-2
关系数据库的基本概念[/b][/b]

n 表,是具体组织和存储数据的对象,由字段和记录组成。在同一表中,字段的名字具有唯一性,在同一个数据库中,表的名字也具有唯一性;
n 主键(primary key),是表中一列或多列的组合,其值唯一标识了表中的一行记录。在表中,主键的值具有唯一性;
n 外键(foreign key),是表中一列或多列的组合,它存在于表1中,但不是表1的主键。它同时存在于表2中,是表2的主键。于是称这一列或多列是表1相对于表2的外键。外键体现了表之间的关系;
n
主键与外键[/b][/b]

雇员代号
Code
雇员姓名
Name
性别
Sex
部门代号
Dep
001张三丰B-1
002孙不二B-2
003王五B-3
004张翠山B-2
部门代号
Dep
部门名称
Name
部门职能
Function
B-1财务部财务管理
B-2人事部人事管理
B-3开发部项目开发
创建数据库[/b][/b]

n Create database 数据库名;
n Create database library;
n Create database if not exists 数据库名;
n if not exists强调如果数据库不在则执行该命令;

选择与查看数据库[/b][/b]

n 选择数据库
n Use 数据库名
n 查看可用的数据库
n Show databases;

删除数据库[/b][/b]

n 删除数据库;
n Drop database 数据库名;
n Drop database if exists 数据库名;
n if exists强调如果数据库在则删除
n Create table 表名(字段名 数据类型 not null auto_increment, primary key (字段名));
n mysql> create table members
-> (member_id int(11) not null auto_increment,
-> fname varchar(50) not null,
-> lname varchar(50) not null,
-> tel varchar(15),
-> email varchar(50)not null,
-> primary key (member_id));
Query OK, 0 rows affected (0.24 sec)

Create table[/b]关键字[/b][/b]

n 字段约束 Null与not null;
n Default 为字段指定一个默认值,如果未向字段插入数据,则字段自动继承该值;
create table userinfo (name varchar(16) not null, sex varchar(8) default 'man');
n Auto_increment,只适用于int数据类型字段,表明MYsql应该为该字段自动生成序列值;
n Primary key
create table dept (deptno int not null, dname varchar(20), loc varchar(40), primary key (deptno) );

MYSQL[/b]数据类型[/b][/b]

n 表中的每一个字段都有一个与它相关联的数据类型,这个数据类型定义了字段中可以保存的数据的种类;
n MYSQL支持多种数据类型,具体包括4类:
n 数值类型
n 字符串类型
n 日期和时间类型
n 复合类型

数值类型数据[/b][/b]
[/b]

类型大小范围(有符号)范围(无符号)用途
TINYINT1字节-128,1270,255小整数值
SMALLINT2字节-32768,327670,25535大整数值
MEDIUINT3字节-224,224-10,1677215大整数值
INT4字节-232 ,232-10,4294967295大整数值
BIGINT8字节-264,264-10,264-1极大整数值
FLOAT4字节单精度,浮点
DOUBLE8字节双精度,浮点
REAL8字节双精度,浮点
INT[/b]整数类型[/b][/b]

n 在MYSQL中主要有五种INT类型的数据TINYINT,SMALLINT,MEDIUINT,INT,BIGINT;
n 这些类型在很大程度上是相同的,他们之间的区别在于存储值的大小不同;
INT说明
Ø create table data
(fti tinyint ,fsi smallint,fmi mediumint,fi int,fbi bigint);
Ø Insert into data values (123456789,123456789,123456789,12345678987654321);
Ø Select * from data;
Ø UNSIGNED 类型用于设定只存储无符号数;

宽度指示器[/b][/b]

n Mysql提供了一个宽度指示器,用于指定值的显示宽度,但该宽度指示器即不影响取值范围也不影响结果显示,它主要用于临时表中,当字段数值不足宽度位时将添0补齐;
create table data4(id int(5) zerofill);
n zerofill用于显示用于补齐的0;

浮点数类型[/b][/b]

n 基本的浮点数类型包括float和double;
n Float表示单精度浮点数值;
n Double表示双精度浮点数值;
n 数据类型的定义包括宽度和小数点指示器
n Float(m,n)
n Double(m,n)
n m定义了整个数据的长度,n定义了小数点后数据的长度;
n
字符串类型数据[/b][/b]

CHAR0-255字节定长字符串
VARCHAR0-255字节变长字符串
TINYTEXT0-255短文本字符串
TEXT0-65535字节长文本数据
MEDIUMTEXT0-1677215中等长文本数据
LONGTEXT0-4294967295大长文本数据
TINYBLOB0-255短二进制形式文本数据
BLOB0-65535二进制形式长文本数据
MEDIUMBLOB0-1677215二进制形式中等长文本数据
LONGBLOB0-4294967295大二进制形式长文本数据
CHAR[/b]与[/b]VARCHAR[/b]

n CHAR (长度指示器) [binary]
n Binary将修饰CHAR,使其值以二进制的方式存储;
n VARCHAR是CHAR的变体,具有根据内容的实际长短来确定存储空间的特性,是CHAR在存储效率和存储空间方面的改进;
n VARCHAR(长度指示器)[binary]

TEXT[/b]与[/b]BLOB[/b]

n TEXT与BLOB用于存储大的文本块或图像声音等二进制数据;
n “TEXT是不区分大小写的BLOB”―MYSQL5.0手册;

日期和时间数据类型[/b][/b]

类型B范围格式用途
DATE31000-01-019999-12-31YYYY-MM-DD日期值
TIME3-839:59:59839:59:59HHMMSS时间值
YEAR119012155YYYY年份值
DATETIME81000-01-01 00:00:009999-12-31 23:59:59YYYY-MM-DD
HH:MM:SS
日期和时间值
TIMESTAMP81970-01-01 00:00:00 2037YYYYMMDDHHMMSS日期和时间值
Date[/b],[/b]time[/b],[/b]year[/b]类型[/b][/b]

n Create table data (birthday date);
n Insert into data values(‘2003-03-04’),(20030304);
n create table data (showtime time);
n insert into data values (‘12:30:56’),(123056);
n create table data1 (showyear year);
n insert into data1 Values (2007),(07),(9);

复合类型数据[/b][/b]

n 复合类型数据是MYSQL对SQL的扩展,包括两种:
n ENUM
n SET

ENUM[/b]类型[/b][/b]

n 允许从集合中只选取单个值;
n create table data9 (se enum('男','女'));
n insert into data9 Values (‘男’) ,('女');

SET[/b]类型[/b][/b]

n SET允许从预先定义的字符串集合中选取任意数目的值;
n CREATE TABLE DATA8 (NAME SET('SMITH','JOEY','MONIKA','ROSS','GALE','BIN'));
n INSERT INTO DATA8 VALUES ('MONIKA,GALE');

修改表[/b]alter table[/b]

n Alter table的作用表现在两个方面:
n 在已有的表中添加一列;
n 在表中修改现存的一列;
n 修改表属性
n Alter table 表名 modify 字段名 数据类型;
mysql> alter table members
-> modify tel varchar(20);
Query OK, 4 rows affected (0.73 sec)

向表中添加新列[/b][/b]
n Alter table 表名 add 字段名 数据类型;
mysql> alter table members
è add qq varchar(11);

向表中添加数据[/b]1[/b]
n 向members表中添加数据:
mysql> insert into members
-> (member_id,fname,lname,tel,email)
-> values
-> (null,'john','doe','123456','joe@somewhere.com');

member_idfnamelnametelemail
1JohnDoe123456john@somewhere.com
[/b]
向表中添加数据[/b]2[/b]
n mysql> insert into members
-> values
-> (null,'jane','doe','8373728','jane@site.com');
n mysql> insert into members
-> (fname,lname,email,tel,member_id)
-> values
-> ('steve','klingon','steve@alien-race.com','7449373',null);

member_idfnamelnametelemail
1JohnDoe123456john@somewhere.com
2Janedoe8373728jane@site.com
3SteveKlingon7449373steve@alien-race.com
删除表[/b][/b]

n Drop table 表名;
n Delete from 表名;
n Delete from 表名 where 匹配条件;

(作者不能完全保证文章的正确性,文章较长难免会有文字遗漏、输入错字等。请大家多多谅解并给予指证。第一章Mysql数据库基础就写到这里,明天会介绍Mysql查询基础)
本文出自 “Web2.0开发-博客” 博客,请务必保留此出处http://myphp.blog.51cto.com/397793/80690
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: