MySQL数据库入门(二)

一、 数据库基础知识

1.1 创建和查看数据库

CREATE DATABASE 数据库名称;  // 创建数据库

SHOW DATABASES;  // 查看已经存在的数据库信息

SHOW CREATE DATABASE 数据库名称; // 查看某个已经创建的数据库信息

1.2修改数据库

修改数据库的编码

ALTER DATABASE 数据库名称 DAFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin

'数据库名称'指的是要修改的数据库的名称,'编码方式'指的是修改后的数据库编码.

1.3 删除数据库

删除数据库是将数据库系统中已经存在的数据库删除.成功删除数据库后,数据库中的所有数据都将被清除,

原来分配的空间也将被回收.

DROP DATABASE 数据库名称;

二、数据表的基本操作

2.1 创建数据表

创建数据表是指在已经存在的数据库中建立新表.在操作数据表之前,应该使用" USE 数据库名称"指定操作

是在哪个数据库中进行,否则会抛出"No database selected"的错误.

CREATE TABLE 表名(

    字段名1, 数据类型[完整性约束],    字段名2, 数据类型[完整性约束],    ....

    字段名n, 数据类型[完整性约束],

)

2.2 查看数据表

2.2.1 使用SHOW CREATE TABLE 查看数据表

在MySQL中,    SHOW CTEATE TABLE 语句不仅可以查看创建表时的定义语句,还可以查看表的字符编码.

SHOW CTEATE TABLE 表名;

可以在表名的后面加上\G参数,可以使结果显得美观.

2.2.2 使用DESCRIBE 语句查看数据表

在MySQL中,使用DESCRIBE 语句可以查看表的字段信息,其中包括字段名、字段类型等信息.

DESCRIBE 表名;

2.3 修改数据表

2.3.1 修改表名

ALTER TABLE 旧表名 RENAME [TO] 新表名;

2.3.2 修改字段名

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

"新数据类型"指的是修改后的数据类型.不能为空,即使新字段与旧字段的数据类型相同,也必须将新数据类型

设置为与原来一样的数据类型.

2.3.3 修改字段的数据类型

ALTER TABLE 表名 MODIFY 字段名 数据类型;

"数据类型"指的是修改后的字段的数据类型.

2.3.4 添加字段

ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已经存在的字段名] 

"FIRST"为可选参数,用于将新添加的字段设置为表的第一个字段.

"AFTER"为可选参数,用于将新添加的字段添加到指定的"已存在字段名"的后面.

2.3.5 删除字段

ALTER TABLE 表名 DROP 字段名;

2.3.6 修改字段的排列位置

ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名 2

"FIRST"为可选参数,用于将字段1修改为表的第一个字段.

"AFTER 字段名2"为可选参数,用于将字段1插入到字段2的后面.

2.4 删除数据表

删除数据表指的是删除数据库中已经存在的表.在删除数据表的同时,数据表中存储的数据都将被删除.

DROP TABLE 表名; // 删除没有关联关系的数据表

三、表的约束

为了防止数据表中插入错误的数据,在MySQL中,定义了一些维护数据库完整性的规则,即表的约束.

表的常见约束如下:

PRIMARY KEY : 主键约束, 用于唯一标志对应的记录

FOREIGN KEY : 外键约束

NOT NULL : 非空约束

UNIQUE : 唯一性约束

DEFAULT : 默认值约束, 用于设置字段的默认值

3.1 主键约束

在MySQL中,主键约束分为两种.

1. 单字段主键

单字段主键指的是由一个字段构成的主键.

 字段名 数据类型 PRIMARY KEY

2. 多字段主键

多字段主键指的是多个字段组合而成的主键.

PRIMARY KEY (字段名1, 字段名2, ....字段名n)

3.2 非空约束

非空约束指的是字段的值不能为NULL.

字段名 数据类型 NOT NULL;

3.3 唯一约束

唯一约束用于保证数据表中字段的唯一性,即标准功能字段的值不能够重复出现.

字段名 数据类型 UNIQUE;

3.4 默认约束

默认约束用于给数据表中的字段指定默认值,即当在表中插入一条新记录时,如果没有给这个字段赋值,

那么数据库系统会自动为这个字段插入默认值.

字段名 数据类型 DEFAULT 默认值;

设置表的字段值默认增加

在数据表中,若想为表中插入的新纪录自动生成唯一的ID, 可以使用AUTO_INCREMENT约束来实现,

AUTO_INCREMENT约束的字段可以是任何整数类型.默认情况下,该字段的值是从1开始自增的.

字段名 数据类型 AUTO_INCREMENT;

四、索引

4.1 索引的分类

普通索引: 是由KEY 或 INDEX定义 的索引,它是MySQL中的基本索引类型,可以创建在任何数据类型中,

其值是否唯一和非空由字段本身的约束条件所决定.

唯一性索引: 是由UNIQUE定义的索引,该索引所在字段的值必须是唯一的.

全文索引: 是由FULLTEXT定义的索引,它只能创建在CHAR, VACHAR或TEXT类型的字段上, 而且,现在

只有MyISAM存储支持全文索引.

单列索引: 指的是在表中单个字段上创建索引,它可以是普通索引,唯一索引或者全文索引只要能保证该索引

只对应表中一个字段即可.

多列索引: 指的是在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引

才会被使用.

空间索引: 是由SPATIAL定义的索引,它只能创建在空间数据类型的字段上.MySQL中的空间数据类型有4中,

分别是GEOMETRY, POINT, LINESTRING, 和 POLYGON. 需要注意的是,创建空间索引的字段,必须将其声明为

NOT NULL, 并且空间索引只能在存储引擎为MyISAM的表中创建.

4.2 创建索引

创建索引的方式有三种.

1. 创建表的时候创建索引

CREATE TABLE 表名 (

字段名 数据类型 [完整性约束条件],

字段名 数据类型 [完整性约束条件],

....

[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY

[别名] (字段名1 [(长度)]) [ASC|DESC]

);

"别名": 可选参数,表示创建的索引的名称.

"字段名1": 指定索引对应字段的名称.

"长度": 可选参数, 用于表示索引的长度.

ASC和DESC: 可选参数, 其中, ASC表示升序排列,DESC表示降序排列.

2. 使用CREATE INDEX语句在已经存在的表上创建索引

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 

ON 表名 (字段名 [(长度)] [ASC|DESC]);

3.  使用ALTER TABLE 语句在已经存在的表上创建索引

在已经存在的表上创建索引,除了可以使用CREATE INDEX语句外,还可以使用ALTER TABLE语句.

ALTER TABEL 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 

索引名 (字段名 [(长度)] [ASC|DESC])

4.3 删除索引

1. 使用ALTER TABLE 删除索引

ALTER TABLE 表名 DROP INDEX 索引名

2. 使用DROP INDEX 删除索引

DROP INDEX 索引名  ON 表名;

猜你喜欢

转载自blog.csdn.net/tc_1337/article/details/80867910