MySQL学习笔记----创建修改删除表

原创 2015年11月21日 22:26:44

数据类型

mysql中什么数据类型可以存储路径?
char, varchar, text, 等数据类型都可以存储路径。但是如果路径中使用”\”符号就会被过滤,所以应该使用”/”或”\”替换”\”。
其中varchar类型的长度是在范围内可变的,因此占用的空间比char类型小。虽然如此char处理的速度比varchar快,对变化长度不大,而查询速度要求较高的字符串类型,最好选择char类型。

mysql如何使用布尔类型?
为了支持SQL标准,定义了bool和boolean类型,但是最后转换成tinyint(1)。在mysql中,布尔类型等同于tinyint(1)。如果在创建表时字段定义成”bool”或”boolean”,数据库的真实定义是”tinyint(1)”.

mysql中如何存储jpg图片和mp3音乐?
数据库不宜直接存储图片和音频文件,而是存储图片和音频文件的路径。实在需要的话,可以考虑用blob类型,因为blob类型可以用来存储二进制文件。

操作数据库

创建数据库
create database 数据库名;
显示已经存在的数据库
show databases;
删除数据库
drop database 数据库名;

存储引擎
存储引擎就是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式。
查询方法为:
show engines;
mysql 支持的存储引擎包括:MyISAM、 MEMORY、InnoDB、ARCHIVE、MRG_MYISAM
其中InnoDB是默认的存储引擎。

这里写图片描述

查询默认的存储引擎:
show variables like ‘storage_engine’;

InnoDB 存储引擎
提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全。支持自动增长序列AUTO_INCREMENT,自动增长列的值不能为空,且值必须唯一,自动增长的列必须为主键。
优点:提供了良好的事务管理、崩溃修复能力和并发控制
缺点:读写效率较差,占用的数据空间相对比较大。

MyISAM 存储引擎
曾经是MySQL默认的存储引擎,存储3个文件,文件名字和表名相同,frm(扩展名的文件存储表的结构)、MYD(MYData,扩展名的文件存储数据)、MYI(MYIndex的缩写,扩展名的文件存储索引)。
优点在于:占用空间小,处理速度快,缺点在于不支持事务的完整性和并发性。

MEMORY存储引擎
使用存储在内存中的内容来创建表,每个基于MEMORY存储引擎的表实际上对应一个磁盘文件,该文件的文件名和表名相同,类型为frm类型,该文件中只存储表的结构,而数据类型都存储在内存中。所以,服务器需要有足够的内存来维持MEMORY存储引擎表的表的使用。
优点:默认使用HASH索引,其速度比B型树索引快。这类表处理速度非常快。
缺点:数据易丢失,生命周期短。数据安全性不高,只使用相对较小的数据库表。

创建、修改和删除表

创建表:

create table 表名(属性名 数据类型 [完整性约束],
                            属性名 数据类型 [完整性约束],
                            ...
                            );

设置表的主键

单字段主键,主键是单字段时,直接在该字段后面加上PRIMARY KEY。

create table example(stuid INT PRIMARY_KEY,
                                    stu_name VARCHAR(20),
                                    stu_sex  BOOLEAN);

多字段主键,主键由多个属性组合而成,在属性定义完后统一设置主键

create table example2(stu_id INT,
                                    course_id INT,
                                    grade FLOAT,
                                    PRIMARY KEY(stu_id,course_id); 
                                );

设置表的外键

外键是表的一个特殊字段,如果字段sno是表A的属性,且依赖于表B的主键,那么表B为父表,表A为子表,sno为表A的外键。
外键的作用是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也需要相应改变。
比如stu_id是student表的主键,同时是grade表的外键。如果stu_id 为123的人退学,需要从student表中删除该学生的信息,grade表中stu_id为123的信息也需要相应删除。

constraint 外键别名 foreign key(属性1.1,属性1.2...,属性1.n)
                 references 表名(属性2.1,属性2.2...,属性2.n)

举个例子:

create table example3(id INT PRIMARY KEY,
stu_id INT,
course_id INT,
CONSTRAINT c_fk FOREIGN KEY(stu_id, course_id)
REFERENCES example2(stu_id,course_id)
);

stu_id和course_id字段为外键,c_fk为外键的别名,examples3依赖于父表的example3的主键 stu_id和course_id.
外键关联的必须是父表的主键,而且数据类型必须一致

设置表的非空约束

保证所有数据该字段为有值,否则数据库系统会报错。

 属性名 数据类型 NOT NULL

设置表的唯一约束

唯一性是指所有记录中该字段的值不能重复出现,比如在id字段加上唯一性约束,那么每条记录id的值都是唯一的,不能出现重复的情况。

create table example5(id INT PRIMARY KEY,
                      stu_id INT UNIQUE,
                      name VARCHAR(20) NOT NULL);

设置表的属性值自动增加

为表中插入的新记录自动生成唯一的ID。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。

create table example6(id INT PRIMARY KEY AUTO_INCREMENT,
                                    stu_id INT UNIQUE,
                                    name VARCHAR(20) NOT NULL); 

id字段为主键,且插入一条新记录id的值会自动增加,stu_id字段为唯一值,该字段的值不能重复,name为非空字段。

设置表的属性的默认值

create table example6(id INT PRIMARY KEY AUTO_INCREMENT,
                      stu_id INT UNIQUE,
                      name VARCHAR(20) NOT NULL
                      English VARCHAR(20) DEFAULT  'zero'
                      Computer FLOAT DEFAULT 0);    

查看表基本结构
describe example1;
也可以用它的缩写形式:
desc example1;

查看表详细结构:
show create table 表名;

这里写图片描述

在后面加上”\G”,可以更加美观的显示内容。
这里写图片描述

修改表

修改表名

修改表名是通过SQL语句ALTER TABLE实现的。其语法形式如下:
alter table 旧表名 rename [to] 新表名;

修改字段的数据类型

alter table 表名 modify 属性名 数据类型;

ALTER TABLE user MODIFY name VARCHAR(30);

修改字段名

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

增加字段

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

默认情况下,新增字段为表的最后一个字段,如果加上FIRST参数,可以将新增字段设置为表的第一个字段.

ALTER TABLE user ADD num INT(8) PRIMARY KEY FIRST

同理,在user表的phone字段后增加address字段。

ALTER TABLE user ADD address VARCHAR(30) NOT NULL AFTER phone;

删除字段

ALTER TABLE 表名 DROP 属性名;

从user表中删除id字段:

 ALTER TABLE user DROP id;

修改字段的排列位置

指定属性名1插入在属性名2之后。
ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;

字段修改到指定位置。
ALTER TABLE user MODIFY sex TINYINT(1) AFTER age;

更改表的存储引擎

ALTER TABLE 表名 ENGINE=存储引擎名

删除表的外键约束

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

例如上式中:

alter table exmaple3 drop foreign key c_fk;

参考文献
mysql 入门很简单

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MySQL入门很简单-学习笔记 - 第6章 创建、修改和删除表

6.1、创建表 6.1.1、创建表的语法形式 CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], ...... 属性名 数据类型 ); ...
  • KimSoft
  • KimSoft
  • 2011年09月05日 00:27
  • 3545

MySQL学习笔记(五)删除约束、修改列及修改名称

1. 删除主键约束 ALTER TABLE
  • MENGERN
  • MENGERN
  • 2014年08月23日 22:41
  • 554

MySQL学习笔记-约束以及修改数据表

MySQL学习笔记-约束以及修改数据表 约束:按功能划为:NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY按数据列的数目...
  • hjxzt1
  • hjxzt1
  • 2017年05月21日 15:09
  • 212

MySQL学习笔记(三)修改数据表

约束 约束保证数据的完整性和一致性 根据字段的数目,约束分为表级约束(两个或两个以上)和列级约束(单个字段) 约束的类型包括:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、U...
  • MENGERN
  • MENGERN
  • 2014年08月12日 15:22
  • 235

MySQL学习笔记5:修改表

MySQL学习笔记5:修改表 我们在创建表的过程中难免会考虑不周,因此后期会修改表 修改表需要用到alter table语句   修改表名 mysql> alter tabl...

MySQL学习笔记创建表

创建示例表字段说明: - id 主键自增,无符号位,使用TINYINT(范围0-255) - cat_name varchar类型,不为空 - cat_num 小猫编号,唯一约束,例如:C...
  • zcjlq
  • zcjlq
  • 2017年05月04日 17:12
  • 64

《MySQL必知必会学习笔记》:创建和操作表

创建和操纵表在前面的学习中,虽然还没有系统的介绍如何创建表和操纵表,但还是用到了一点。例如:创建一个学生student表,其中包括学生ID、姓名name、成绩score,则可以用如下的命令来完成;cr...

mysql 学习笔记

  • 2015年08月08日 15:40
  • 360KB
  • 下载

MySql学习笔记

  • 2011年12月13日 16:29
  • 46KB
  • 下载

mysql 学习笔记-插入、更新、删除

依赖次序,安不安全,不能应付改变INSERT INTO table_name VALUES(val_1,val_2,......);安全,更繁琐的方法,这样即使表的结构改变这条语句任然可以继续工作,同...
  • stuShan
  • stuShan
  • 2016年01月25日 21:55
  • 150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL学习笔记----创建修改删除表
举报原因:
原因补充:

(最多只允许输入30个字)