MySQL学习记录 - 数据库表的相关操作
- 一、SQL语句注意事项
- 二、创建逻辑库
- 1. 使用 ```show databases```查询逻辑空间
- 2. 使用```create database```创建数据库
- 3. 使用```drop database student```删除数据库
- 4. 使用```create table 表名称(列名1 数据类型 [约束] [comment 注释])[comment = "注释"]```删除数据库
- 5. 使用```insert into 表名称 values("","","","")``在某一张表中插入一条数据
- 6. 使用```show tables```显示某个数据库中的表
- 7. 使用```desc student```显示student数据表中的表结构
- 8. 使用```show create table student```显示创建student表的SQL语句
- 9. 使用```drop table student```删除student表
- 三、数据类型
- 四、数据定义语言:修改表结构
- 五、数据定义语言:字段约束
- 六、数据定义语言:索引
- 七、总结:
一、SQL语句注意事项
1. SQL语句不区分大小写,但字符串区分大小写。
例如:SELECT "HelloWorld";
2. SQL语句的注释有两种,分别如下:
例如:#这是一段注释
/*这是另一段注释文字*/
二、创建逻辑库
1. 使用 show databases
查询逻辑空间
例如:SHOW DATABASES;
2. 使用create database
创建数据库
例如:CREATE DATABASE student;
3. 使用drop database student
删除数据库
例如:DROP DATABASE demo;
4. 使用create table 表名称(列名1 数据类型 [约束] [comment 注释])[comment = "注释"]
删除数据库
例如:CREATE TABLE student(
id INT UNSIGNED PRIMARY KEY,
name VARCHAR(20) NOT NULL,
sex CHAR(1) NOT NULL,
birthday DATE NOT NULL,
tel CHAR(11) NOT NULL,
remark VARCHAR(200)
);
5. 使用```insert into 表名称 values(“”,“”,“”,“”)``在某一张表中插入一条数据
例如:INSERT INTO student VALUES(1,"李强","男","1998-02-05","15244444444","李强是个好人!!!");
6. 使用show tables
显示某个数据库中的表
例如:SHOW TABLES;
7. 使用desc student
显示student数据表中的表结构
例如:DESC student;
8. 使用show create table student
显示创建student表的SQL语句
例如:SHOW CREATE TABLE student;
9. 使用drop table student
删除student表
例如:DROP TABLE student;
三、数据类型
1. 数据类型:数字
例如:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、FLOAT、DOUBLE、DECIMAL
注意:
十进制的浮点数无法在计算机中用二进制精确表达
2. 数据类型:字符串
例如:CHAR、VARCHAR、TEXT、MEDIUMTEXT、LONGTEXT
3. 数据类型:日期类型
例如:DATA TIME、YEAR、DATETIME、TIMESTAMP
四、数据定义语言:修改表结构
1. 给某一个表添加字段alter table 表名称 add 列1 数据类型 [约束] [comment = "注释"]
例如:ALTER TABLE student
ADD address VARCHAR(200) NOT NULL,
ADD home_tel CHAR(11) NOT NULL;
2. 给某一个表修改字段alter table 表名称 modify 列1 数据类型 [约束] [comment = "注释"]
例如:ALTER TABLE student
MODIFY home_tel VARCHAR(20) NOT NULL;
3. 给某一个表修改字段名称alter table 表名称 change 列1 新列名1 数据类型 [约束] [comment = "注释"]
例如:ALTER TABLE student
CHANGE address home_address VARCHAR(200) NOT NULL;
4. 给某一个表删除字段alter table 表名称 drop 列1
例如:ALTER TABLE student
DROP home_tel,
DROP home_address;
五、数据定义语言:字段约束
1.数据库的范式:
① 构造数据库必须遵循一定的规则,这种规则就是范式。
② 目前关系型数据库一共有6种范式,一般情况下,只满足第三范式即可。
1.1 第一范式:原子性
① 第一范式是数据库的基本要求,不满足这一点就不是关系型数据库。
② 数据表中的每一列都是不可分割的基本数据项,同一列中不可能有多个值,也不可能存在重复属性。
1.2 第二范式:唯一性
① 数据表中的每条记录必须是唯一的。为了区分,通常要为表加上一列用来存储唯一标识,这个唯一属性列被称为主键列。
1.3 第三范式:关联性
① 每列都与主键有直接关系,不存在传递依赖。
② 依照第三范式,数据可以拆分到不同的数据表中,彼此保持关联。
2. 字段的约束
MySql中字段约束一共分为四种:主键约束、非空约束、唯一约束、外键约束
2.1主键约束
① 主键约束要求字段的值在全表必须唯一,而且不能为NULL值。
② 建议主键一定要使用数字类型,因为数字的检索速度非常快。
③ 如果主键是数字类型,还可以设置自动增长。
2.2非空约束
① 非空约束要求数据的值不能为NULL值。
② NULL值为没有值,不是空字符串 "" .
2.3唯一约束
唯一约束要求字段值如果不为NULL值,那么在全表中必须唯一。
2.4 外键约束
① 外键约束是用来保证关联数据的逻辑关系。
② 外键约束的定义是写在子表上的。
六、数据定义语言:索引
1. 数据排序的好处:
① 一旦数据排序之后,查找的速度就会翻倍。
2. 如何创建索引:
2.1 通过INDEX
关键字创建索引
CREATE TABLE t_message(
id INT UNSIGNED PRIMARY KEY,
centent VARCHAR(200) NOT NULL,
type ENUM("公告","通报","个人通知") NOT NULL,
create_tiime TIMESTAMP NOT NULL,
INDEX idx_type (type)
);
2.2 对索引进行增删改查
2.2.1 添加索引一:create index 索引名称 on 表名称(字段)
例如:CREATE INDEX idx_type on t_message(type);
2.2.2 添加索引二:alter table 表名称 add index [索引名称] (字段)
例如:ALTER TABLE t_message ADD INDEX idx_type(type);
2.2.3 显示索引:show index from 表名称
例如:SHOW INDEX FROM t_message;
2.2.4 删除索引:drop index 索引名称 on 表名称
例如:DROP INDEX idx_type ON t_message;
3. 索引的使用原则
① 数据量很大,而且经常会被查询的数据表可以设置索引。
② 索引只添加在经常被用作检索条件的字段上。
③ 不要在大字段上创建索引。
七、总结:
① 掌握逻辑库和数据表的管理
② 了解MySQL常用数据类型
③ 掌握MySQL字段约束
④ 掌握索引机制