第一章:数据类型
数值类型(整数类型、浮点数类型)
日期时间类型
字符串和二进制类型
其他数据类型
*数值类型包括整数型和浮点型。
整数型数据:只能存储整数!最常用的整型数据类型是INT型。
浮点型数据:可以存储整数和小数,但都带有小数点。最常用的浮点型数据类型是FLOAT型。
*日期时间类型:
日期型:用于保存日期。DATE
时间性:用于保存时间。TIME
日期时间型:用于保存日期与时间。DATETIME
注意:
日期与时间之间,需要使用空格分开。
日期型、时间型、日期时间型的数据,需要使用单引号括起来。
*字符串型:
CHAR类型:固定长度的字符串 当实际字符长度小于类型其长度时,后面用空格补全。
VARCHAR类型:可变长度的字符串 保存的是实际字符串的长度。
CHAR与VARCHAR长度范围都是0~255之间的大小。
注意:
当字符串长度超过类型长度时,超出的字符将被删除。(没有了)
第二章、相关操作
mysql程序常用命令
选定默认数据库:use dbname;
显示所有数据库:show databases;
显示默认数据库中所有表:show tables;
放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s
处理SQL文件
mysql命令
处理存放在文件里的SQL命令
格式:mysql [option] dbname < file.sql
mysql –u root –p --default-character-set=latin1 dbname < backup.sql
注:latin1是MySQL4.0的默认字符集或者utf-8是MySQL5.0的默认字符集,如果不知道使用什么字符集的时候,可以选用这两个其中一个
mysqladmin命令
完成许多系统管理任务,如创建或删除一个数据库、修改密码等
格式:mysqladmin [option] admincommand
创建数据库:mysqladmin –u root –p create newdb
删除数据库:mysqladmin –u root –p drop newdb
更改密码:mysqladmin –u root –p password “newpasswd”
mysqldump命令
用于为数据库创建备份
格式:mysqldump [option] dbname > bak.sql
mysqldump –u root –p tmpdb > backuptmp.sql
备份出来的是一个文本文件,默认为utf-8字符集,如果想使用另外一种字符集,必须使用 --default-character-set=gbk选项来设置
附加工具
MySQL CC http://www.mysql.com/products/mysqlcc/index.html对于MySQL,它是一个极好的前端查询和数据库管理工具。现有Windows,UNIX和Linux版本可用,并且Mac OS X 的版本现在也有
DBTOOL专业管理器,来自http://www.dbtools.com.br,是一个用于管理MySQL数据库、表和索引的图形客户,其输入来自其他RDBMS的数据,该管理器提供一个用于查询和报告设计的接口。
注意:
不要直接删除磁盘中的数据库文件!否则会导致服务器出错!
此外,数据库文件不能直接双击打开,也不能直接访问。
该如何访问数据库中的数据?
使用数据库服务器(DBMS)进行访问。
第三章、数据库操作
查看当前服务器中的所有数据库(名称):show databases;
查看数据库的信息(创建语句):show create database 数据库名称;
修改数据库的基本语法格式(修改默认字符集,即编码):
ALTER database 数据库名称
default character set 编码方式
collate 编码方式_bin;
查看当前支持的字符集:show character set ;
删除数据库(包括该数据库中所有信息):drop database 数据库名称;
小结
查看:show
show databases 查看当前服务器中所有数据库的名称
show create database 查看指定数据库的创建语句
show character set 查看所有字符集
show collation 查看所有校对规则
创建:create
修改:alter
删除:drop
数据库:database
第四章、数据表操作
查看与删除数据表的操作
查看数据表的建立语句:SHOW CREATE table 表名;
查看当前数据库中所有表:SHOW tables;
查看表中的字段信息:DESCRIBE 表名;可简写为:DESC 表名;
删除数据表:DROP table 表名;
注意:要创建表格,必须先选定数据库
修改数据表
修改数据表的语法,与修改数据库的语法类似:
ALTER database mydb
default character set gbk
collate gbk_bin;
ALTER table 表名
具体要修改的选项;
注意:修改数据表是指,修改表的结构,而不是修改表中的数据。
1)修改表名称:
ALTER table 表名
rename [TO] 新表名;
注:[TO]为可选项,即可加可不加
2)修改字段名:
ALTER table 表名
change 旧字段名 新字段名 新(原)数据类型;
3)修改字段的数据类型:
ALTER table 表名
modify 字段名 新数据类型;
4)添加字段:
ALTER table 表名
add 新字段名 数据类型;
5)删除字段:
ALTER table 表名
drop 字段名 ;
6)修改字段的排列位置:
ALTER table 表名
modify 字段名1 数据类型 FIRST | AFTER 字段名2 ;
小结
注意:修改数据表是指,修改表的结构,而不是修改表中的数据
1)修改表名 rename
2)修改字段名(也可同时修改字段的数据类型) change
3)修改字段的数据类型 modify
4)添加字段 add
5)删除字段 drop
6)修改字段的排列位置 modify
第五章、约束
约束——用于实现数据完整性,数据完整性理解为:数据的有效性(正确性)。
数据库完整性概述:
(1)实体完整性(行与行) 主键约束、外键约束
(2)域(字段)完整性(各个字段数值) 非空约束、默认值约束、检查
(3)参照完整性(表与表) 外键约束
(4)用户(自定义)完整性
约束的类型:
(1)主键约束
(2)外键约束
(3)非空约束
(4)唯一约束
(5)默认值约束
(6)检查约束
1)主键约束(PRIMARY KEY)
用来唯一标识表中的一个列,一个表中主键约束最多只能有一个,不同的行上,主键值不能相等。
在创建表时设置联合主键约束。联合主键,即多个列联合作为主键。这是,主键列的值不能同时都相等。
*修改表时添加主键约束
语法格式:
ALTER TABLE 表名
ADD CONSTRAINT 约束名 PRIMARY KEY(列名);
表名:要添加约束的表
约束名:由用户指定,用于标识约束
列名:要添加主键约束的列
*修改表时删除主键约束
语法格式:
ALTER TABLE 表名
DROP PRIMARY KEY;
注意:由于主键约束在一个表中只能有一个,因此不需要指定主键名就可以删除。
2)外键约束( FOREIGN KEY )
外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一约束。
外键用于建立和加强两个表数据之间的连接。
外键用于建立和加强两个表数据之间的连接。
外键用于建立多个表之间的关系。
语法格式:
添加外键
ALTER TABLE 表名
ADD CONSTRAINT 约束名
FOREIGN KEY (外键字段名) REFERENCES 外键表名(列名);
删除外键
ALTER TABLE 表名
DROP FOREIGN KEY 外键名;
EG:ALTER TABLE student
ADD CONSTRAINT FK_ID
FOREIGEN KEY (gid) REFERENCES grade(id);
含义:在student表的gid列上建立一个外键约束,该约束是参照grade表的id字段。
对表添加数据时有什么影响?
对于被参照的表grade:添加数据时无任何影响。
对于外键表student上的外键列gid:该列上的数据只能选择被参照表grade上被参照列id中的数据。
简单的说:student表上gid列中的数据,只能是grade表上id列中已有的数据。即,student表的gid外键依赖于grade表的id。
3)非空约束(NOT NULL)
用来限定数据表中的列必须输入值。
*修改表时添加非空约束
语法格式:
ALTER TABLE 表名
MODIFY 列名 该列数据类型 NOT NULL ;
4)唯一约束(UNIQUE)
也是用来唯一标识表中列的,不同的行上,唯一键的值也不能相等与主键约束不同的是,在一张数据表中可以有多个唯一约束。
*修改表时添加唯一约束
语法格式:
ALTER TABLE 表名
ADD CONSTRAINT 约束名 UNIQUE(列名);
*删除唯一约束
语法格式:
DROP INDEX 约束名 ON 表名
5)默认值约束(DEFAULT)
用来当不给表的列输入值时,自动为该列指定一个值。
*修改表时添加默认值约束
语法格式:
ALTER TABLE 表名
ALTER 列名 SET DEFAULT 默认值 ;
*删除默认值约束
语法格式:
ALTER TABLE 表名
ALTER 列名 DROP DEFAULT ;
小结
表创建后,再添加约束
主键约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名 PRIMARY KEY(列名);
唯一约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名 UNIQUE(列名);
非空约束
ALTER TABLE 表名
MODIFY 列名 该列数据类型 NOT NULL ;
默认约束
ALTER TABLE 表名
ALTER 列名 SET DEFAULT 默认值 ;
外键约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名
FOREIGN KEY (外键字段名) REFERENCES 外键表名(列名);
注意:约束名称可以使用SHOW CREATE TABLE 表名;来查询。
删除约束
主键约束
ALTER TABLE 表名
DROP PRIMARY KEY;
唯一约束
DROP INDEX 约束名 ON 表名
非空约束
ALTER TABLE 表名
MODIFY 列名 该列数据类型 ;
默认约束
ALTER TABLE 表名
ALTER 列名 DROP DEFAULT ;
外键约束
ALTER TABLE 表名
DROP FOREIGN KEY 外键名;
第六章、索引
索引主要内容
1)索引的概念
数据库的索引好比新华字典的音序表,它是对数据表中一列或多列的值进行排序后的一种结构,其作用就是提高表中数据的查询速度。
2)索引的分类
(1)普通索引:基本索引类型
(2)唯一性索引:该索引所在字段的值必须是唯一的
(3)全文索引:定义在字符串类型上的索引
(6)空间索引:只能创建在空间数据类型上
(4)单列索引:在单个字段上创建的索引
(5)多列索引:在多个字段上创建的索引
3)创建索引
*创建表时创建索引
基本语法格式:
CREATE TABLE 表名称
(
字段名 数据类型 [完整性约束条件],
字段名 数据类型 [完整性约束条件],
…………
字段名 数据类型 ,
[ UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY
[索引名] (字段名 [(长度)] [ASC | DESC] )
);
UNIQUE :唯一索引
FULLTEXT:全文索引
SPATIAL :空间索引
INDEX | KEY :表示索引,二选一即可
字段名:要添加索引的字段
长度:索引的长度
ASC | DESC :ASC为升序排序,DESC为降序排序,默认是ASC升序排序
*使用CREATE INDEX语句在已有表上创建索引
基本语法格式:
CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名
ON 表名 (字段名 [(长度)] [ASC | DESC] ) ] ;
*使用ALTER TABLE语句在已有表上创建索引
基本语法格式:
ALTER T