MySQL >> 学习笔记-1 : 数据库操作[ 1 ]

本篇记录,数据库\表操作的增加、删除、修改。查询操作单独作为一篇来写。

操作数据库

显示|创建|删除 数据库

显示数据库

SHOW DATABASES;

创建数据库

CREATE DATABASE db_name;

删除数据库

DROP DATABASE db_name;

数据库存储引擎

显示MySQL支持的存储引擎

SHOW ENGINES \G

查看当前库的存储引擎

SHOW VARIABLES LIKE '%engine%';
Innodb与MyISAM对比
  • Innodb
    • 默认数据库存储引擎
    • 支持事务、回滚、自增序列、外键
    • 表结果存放在.frm文件中
    • 数据和索引存放在表空间中
    • 读写效率稍差,占用空间大
  • MyISAM
    • 表结构存在.frm文件中
    • 数据存储在.MYD文件中
    • 索引存储在.MYI文件中
    • 数据操作速度快,占用空间小,不支持事务和并发
    • MySQL系统库使用该引擎

操作数据表

创建表

创建表的语法形式

CREATE TABLE 表名(
属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
......
);
完整性约束条件
名称语法解释
主键PRIMARY KEY标识该属性是本表的主键,可以唯一的标识对应的元组
外键FOREIGN KEY标识该属性为本表的外键,是与之联系的某表的主键
不为空NOT NULL标识该属性不能为空
唯一值UNIQUE标识该属性的值是唯一的
自增加AUTO_INCREMENT标识该属性的值是自动增加的
默认值DEFAULT为该属性设置默认值

示例

CREATE TABLE example(
id INT PRIMARY KEY AUTO_INCREMENT,
course_id INT UNIQUE,
name VARCHAR(20) NOT NULL,
sex BOOLEAN NOT NULL,
addr VARCHAR(50) DEFAULT 'BEIJING',
CONSTRAINT example_fk FOREIGN KEY(course_id)
REFERENCES example2(course_id)
);
主键

作用
帮助MySQL以最快的速度找到表中的某一条信息

语法

属性名 数据类型 PRIMARY KEY

满足条件

  • 主键必须是唯一的
  • 表中任意两条记录的主键字段的值不能相同
  • 主键的值是非空值

字段
单字段

CREATE TABLE example(id INT PRIMARY KEY);

多字段

CREATE TABLE example(
id INT,
course_id INT,
name VARCHAR(20) NOT NULL,
PRIMARY KEY(id, course_id)
);
外键

作用
建立该表与其父表的关联关系,父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变

语法

CONSTRAINT 外键别名 FOREIGN KEY(属性名1,属性名2...) 
REFERENCES 父表名(父表主键1, 父表主键2...) 

满足条件

  • 必须依赖于数据库中已存在的父表的主键
  • 本表的外键必须与父表的主键数据类型一致(数据宽度,是否正数,是否设置unsigned)
  • 本表的外键必须与父表的主键存储引擎一致

示例

CREATE TABLE example(
id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT,
crouse_id INT,
CONSTRAINT c_fk FOREIGN KEY(stu_id,crouse_id)
REFERENCES example2(stu_id,crouse_id)
);
非空约束

语法

属性名 数据类型 NOT NULL

作用

  • 指定字段的值不能为空值(NULL)
  • 如果新插入的记录该值为空,则数据库系统报错
唯一约束

语法

属性名 数据类型 UNIQUE

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

自动增加

语法

属性名 数据类型 AUTO_INCREMENT

作用
用于为表中插入的新记录自动生成唯一的ID

注意

  • 一个表中只能有一个AUTO_INCREMENT约束,且该字段必须是主键的一部分
  • AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLINT、INT、BIGINT等)
  • 默认情况下,该字段时从1开始自增的

示例

CREATE TABLE example(
id INT PRIMARY KEY AUTO_INCREMENT
);
默认值

语法

属性名 数据类型 DEFAULT 默认值

作用
在创建表时可以指定表中字段的默认值,当插入的新记录没有为该字段赋值时,数据库系统会自动为该字段插入默认值。

查看表结构
describe语句

语法

DESCRIBE 表名  	等价于	DESC 表名

作用
查看表的基本定义:字段名、字段数据类型、是否为主键或默认值等。

show语句

语法

SHOW CREATE TABLE 表名

作用
查看表的详细定义:字段名、完整性约束条件、默认引擎、字符编码等

修改表
修改表名

语法

ALTER TABLE 旧表名 RENAME 新表名;

示例

ALTER TABLE example RENAME user;
修改字段名

语法

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型(不修改数据类型时,保持原样);

示例

ALTER TABLE user CHANGE name stu_name varchar(20);
修改字段数据类型

语法

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

示例

ALTER TABLE user MODIFY name VARCHAR(30);
修改字段的排列位置

语法

ALTER TABLE 表名 MODIFY 属性名 数据类型 [FIRST|AFTER 属性名2];

示例

1) 字段修改到第一个位置
ALTER TABLE user MODIFY name VARCHAR(20) FIRST;

2) 字段修改到指定位置
ALTER TABLE user MODIFY sex BOOLEAN AFTER age;
增加字段

语法

ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束] [FIRST|AFTER 属性名2];

示例

1) 增加无完整性约束的字段
ALTER TABLE user ADD phone VARCHAR(20);

2) 增加有完整性约束的字段
ALTER TABLE user ADD age INT(4) NOT NULL;

3) 表的第一位置增加字段
ALTER TABLE user ADD num INT(8) PRIMARY KEY FIRST;

4)表的指定位置之后增加字段
ALTER TABLE user ADD address VARCHAR(50) NOT NULL AFTER age;

删除表
删除字段

语法

ALTER TABLE 表名 DROP 字段;

示例

ALTER TABLE user DROP id;
删除外键约束

语法

ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;

示例

ALTER TABLE example DROP FOREIGN KEY c_fk;
修改默认存储引擎

语法

ALTER TABLE 表名 ENGINE=新存储引擎名称;

示例

ALTER TABLE user ENGINE=MyISAM;
删除无其他表关联的表

语法

DROP TABLE 表名;

示例

DROP TABLE example;
删除有关联的表

语法

1) 删除关联表外键
ALTER TABLE 子表名 DROP FOREIGN KEY 外键别名;

2) 删除父表
DROP TABLE 父表名;

示例

1) ALTER TABLE example2 DROP FOREIGN KEY ex_fk;

2) DROP TABLE example;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值