目录
3、数据库存储引擎(存储引擎就是指表的类型,数据库的存储引擎决定表在计算机中的存储方式)
一、操作数据库
1、创建数据库
- 创建:CREATE DATABASE 数据库名;
- 显示已存在的数据库:SHOW DATABASES;
2、删除数据库
- 删除:DROP DATABASES 数据库名;
3、数据库存储引擎(存储引擎就是指表的类型,数据库的存储引擎决定表在计算机中的存储方式)
- 查看MySQL数据库支持的存储引擎类型:SHOW ENGINES;
二、创建、修改和删除表
1、创建表
/*
create table 表名(属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
.
.
.
属性名 数据类型);
*/
注:
- 在创建表之前,首先要使用use语句来选择数据库。
- 表名不能为SQL语言的关键字,比如create、updata和order都不能做表名。
约束条件 | 说 明 |
PRIMARY_KEY | 标识该属性为该表的主键,可以唯一的标识对应的元组 |
FOREIGN_KEY | 标识该属性为该表的外键,是与之联系的某表的主键 |
NOT NULL | 标识该属性不能为空 |
UNIQUE | 标识该属性的值是唯一的 |
AUTO_INCREMENT | 标识该属性的值自动增加,这是MySQL的SQL语句的特色 |
DEFAULT | 为该属性设置默认值 |
2、设置表的主键
主键是表的一个特殊字段,能唯一地标识该表中的每条信息。必须满足的条件:主键必须是唯一的,主键的值是非空值。
- 单字段主键:主键是由一个字段构成时,可以直接在该字段的后面加上PRIMARY KEY来设置主键
- 多字段主键:主键是由多个属性组合而成时,在属性定义完之后统一设置主键。
3、设置表的外键
原则:依赖数据库中已存在的父表的主键,外键可以为空值
作用:通过外键建立该表与其父表的关联关系
子表的外键关联的必须是父表的主键,数据类型必须一致。
4、设置表的非空约束
5、设置表的唯一约束
6、设置表的属性值自动增加
加上AUTO_INCREMENT约束条件之后,那么字段的每个值都是自动增加的,所以不可能出现重复的情况。通常情况下AUTO_INCREMENT作为ID字段的约束条件,而且ID为主键。
7、设置表的属性的默认值
8、查看表
- 查看表的基本定义:DESCRIBE 表名;(可简写为:DESC)
- 查看表的详细定义:SHOW CREATE TABLE 表名;
根据执行结果可以看出来,\g和;的作用是一样的,而\G与之的区别就是使得show出来的表直观感觉更好,更美观。
- 查看一个数据库中所有表
9、修改表
- 修改表名:ALTER TABLE 旧表名 RENAME ([TO]) 新表名;
- 修改字段的数据类型:ALTER TABLE 表名 MODIFY 属性名 数据类型;
- 修改字段名:ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型
①只修改字段名
②修改字段名和字段数据类型
- 增加字段:ALTER TABLE 表名 ADD 属性名1 数据类型[完整性约束条件] [FIRST | AFTER 属性名2];
①增加无完整性约束条件的字段
②增加有完整性约束的条件
根据添加结果可以看出,使用alter添加字段时,新增字段为表的最后一个字段。那么像把这个字段加在最开始怎么做?
③表的第一个位置增加字段
④表的指定位置之后增加字段
10、删除字段
- ALTER TABLE 表名 DROP 属性名;“属性名”指需要从表中删除的字段名称
11、修改字段的排列位置
ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
- 字段修改到第一个位置
- 字段修改到指定位置
12、更改表的存储引擎
MySQL存储引擎是指MySQL数据库中表的存储类型。MySQL存储引擎包括InnovationDB,MyISAM,MEMORY等。在创建一个表时,它的存储引擎就已经设定好了。如果要改变,可以通过重新创建一张表来实现。这样做是可以达到目的,但是会影响到表中的数据。而且操作比较麻烦。MySQL中,ALTER TABLE语句可以用来更改表的存储引擎的类型。其基本语法如下:
ALTER TABLE 表名 ENGINE=存储引擎名(新存储引擎名称);
更改之前先看一下它本身设定好的引擎:
更改之后:
根据更改结果可以看出user表的存储引擎更改为MyISAM,而且在语句中大小写无影响。
13、删除表的外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
根据查询结果可以看出example3中的外键依赖的是example2中的stu_id,course_id字段,外键别名是c_fk。
再次show的结果发现外键没有了。
14、删除表
- 删除没有被关联的普通表:DROP TABLE 表名;
- 删除被其它表关联的父表
可以看到删除失败了,因为example4有外键依赖于example1。如果要删除example4表,必须先去掉这种依赖关系。解决办法有两种:①先删除子表example4,然后删除example1,但这样可能会影响其它数据。②先删除子表的外键约束,然后再删除父表example1。这种办法不会影响子表的其它数据,可以保证数据库的安全。
删除成功!!!