数据库学习---4

来源:互联网 发布:数据库图片存储类型 编辑:程序博客网 时间:2024/05/29 19:54

选择数据库
USE 数据库名
选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

SHOW TABLES:
显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

SHOW COLUMNS FROM 数据表:
显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

SHOW INDEX FROM 数据表:
显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G
该命令将输出Mysql数据库管理系统的性能及统计信息。

使用 mysqladmin 创建数据库
mysqladmin -u root -p create 数据库名

使用 mysqladmin 删除数据库
mysqladmin -u root -p drop 数据库名

所有的数据库名,表名,表字段都是区分大小写的。

表是数据库存储数据的基本单位。一个表包含若干个字段或记录。

创建表的语法形式

CREATE TABLE <表名>
(<列名> <数据类型><列级完整性约束条件>
<列名> <数据类型><列级完整性约束条件>…
[<表级完整性约束条件> ] );
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
完整性约束条件是对字段进行限制。要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不执行用户的操作。其目的是为了保证数据库中数据的完整性。
常用完整性约束
主码约束: PRIMARY KEY

主键是表的一个特殊字符。该字段能唯一地标识该表中的每条信息。
主键用来标识每个记录,每个记录的主键值都不同。
设置表的主键指在创建表时设置表的某个字段为该表的主键
主键必须满足的条件就是主键必须时唯一的,表中任意两条记录的主键字段的值不能相同;主键的值时非空值。主键可以是单一的字段,也可以是多个字段的组合。

单字段主键、多字段主键

单字段主键语法规则如下
属性名 数据类型 PRIMARY KEY

多字段主键
主键是由多个属性组合而成时,在属性定义完之后统一设置主键。
语法规则如下:
PRIMARY KEY(属性名1,属性名2,….,属性名n)
多字段的组合可以确定唯一的一条记录

外键: FOREIGN KEY

设置表的外键指在创建表设置某个字段为外键。
设置外键的原则就是必须依赖于数据库中已存在的父表的主键;外键可以为空值。
外键的作用是建立该表与其父亲表的关联关系。父亲表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。

设置外键的基本语法规则如下:
CONSTRAINT 外键别名 FOREIGN KEY(属性1.1,属性1.2,….属性1.n)—-子表
REFERENCES 表名(属性2.1,属性2.2,…,属性2.n)—-父表

子表的外键关联的必须是父表的主键。而且,数据类型必须是一致。

唯一性约束:UNIQUE

唯一性约束将保证所有记录中该字段的值不能重复出现。

设置唯一性约束的基本语法规则如下:
属性名 数据类型 UNIQUE

非空值约束:NOT NULL

非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。
设置非空约束的基本语法规则如下:
属性名 数据类型 NOT NULL

自动增加: AUTO_INCREMENT

其主要用于为表中插入的新纪录自动生成唯一的ID。一个表只能有一个字段使用AUYO_INCREMENT约束,且该字段必须为主键的一部分。
AUTO_INCREMENT约束的字段可以是任何整数类型。默认情况下,该字段的值是从1开始自增。

设置属性值字段增加的基本语法规则如下:
属性名 数据类型 AUTO_INCREMENT

默认值:DEFAULT

如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值。
设置默认值的基本语法规则如下:
属性名 数据类型 DEFAULT 默认值

查看表基本结构
DESCRIBE 表名
可以缩写成DESC

查看表详细结构语句
SHOW CREATE TABLE 表名
\G 参数 可以更加美观的显示内容

修改表
修改表名

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

修改字段的数据类型

ALTER TABLE 表名 MODIFY 属性名 数据类型

修改字段名

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型

MODIFY和CHANGE都可以改变字段的数据类型。不同的是,CHANGE可以在改变字段类型的同时,改变字段名。如果使用CHANGE修改字段数据类型,那么CHANGE后面必需跟两个同样的字段名。

增加字段

ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST] AFTER 属性名2
其中,FIRST参数是可选参数,其作用是将新增字段设置为表的第一个字段;AFTER 属性名2 参数也是可选参数,其作用是将新字段添加到属性名2所指的字段后。如果没有上述参数,新增的字段默认为表的最后一个字段。

删除字段

ALTER TABLE 表名 DROP 属性名

修改字段的排列位置

ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2

更改表的存储引擎

ALTER TABLE 表名 ENGINE=存储引擎名

删除表的外键约束

ALTER TABLE 子表名 DROP FORRIGN KEY 外键别名

删除基本表
删除表时,会删除表中的所有数据。

DROP TABLE <表名>;

删除被其他表关联的父表
a 先删除子表的外键约束
b 再删除父表

建立索引是加快查询速度的有效手段
索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录。
索引由数据库表中一列或多列组合而成,其作用是提高对表中数据的查询速度。
索引是创建在表上的,是对数据库表中一列或多列的值进行排序的一种结构。索引可以提高查询的速度。
通过索引,查询数据时可以不必读完记录的所有信息,而只是查询索引列。
索引有两种存储类型,包括B型树索引和哈希索引。

索引可以提高查询的速度,但是会影响插入记录的速度。因为,向有索引的表中插入记录时,数据库系统会按照索引进行排序。

索引的分类
a 普通索引
b 唯一性索引
使用 UNIQUE参数
c 全文索引
使用FULLTEXT参数
d 单列索引
e 多列索引
使用多列索引时一定要特别注意,只有使用了索引中的第一个字段时才会触发索引。

f 空间索引
使用 SPATIAL参数

创建索引

a 创建表的时候直接创建索引
CREATE TABLE 表名(属性名 数据类型[完整性约束条件[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名](属性名[(长度)][ASC|DESC]));

b 在已经存在的表上创建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

c 已经存在的表,用ALTER TABLE语句来创建索引
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名(属性名[(长度)][ASC|DESC])

删除索引
DROP INDEX <索引名> ON 表名;

原创粉丝点击