数据库(一) Data Definition Language

三大范式

第一范式(1NF):

要求:无重复的列

第二范式(2NF):

要求:数据库中的表里面的 每个实例 可以唯一被确定 (属性完全依赖于主键)
消除子函数依赖

第三范式(3NF):

要求:数据库表中不包含 已经在其他表中 包含的非主关键字 信息
这话比较绕 ,比如说有两张表,一个表A存储学生基本信息,一个表B存储学生的年级信息,如果表A中已经存储了学生的姓名(name)【非主键】,那么表B中就不应该再存储学生的姓名(name)

2NF vs 3NF:

2NF:非主键信息是否完全依赖于主键,还是说部分依赖于主键的一部分
3NF:非主键列是直接依赖于主键,还是依赖于其他非主键列

表结构

表其实是一个二维的表,每一行是一个tuple(元组),每一列是一个attribute(属性)

SQL (Structure Query Language)语言

  1. DDL(Data Definition Language): 定义数据库对象:库,表,列等等
  2. DML(Data Manipulation Language): 数据操作语言,用来定义数据库记录(数据)增/删/改
  3. DCL(Data Control Language): 数据控制语言,用于定义访问权限,安全级别
  4. DQL(Data Query Language): 数据查询语言,用来查询记录(数据)。

MySQL中的关键字不区分大小写
SQL语句 以 ;结尾

DDL 操作数据库

  1. 创建数据库
CREATE DATABASE mydb;
  1. 查看所有数据库,查看创建的数据库信息
SHOW DATABASES;
SHOW CREATE DATABASE mydb;
  1. 修改数据库(将字符集切换为utf8)
ALTER DATABASE mydb CHARACTER SET utf8;
  1. 删除数据库
DROP DATABASE mydb;
  1. 其他语句

查看当前使用的数据库

SELECT DATABASE();

切换数据库

USE mydb2;

DDL 操作数据库中的表

  1. 创建数据表
CREATE TABLE EMPLOYEE(
	ID CHAR(10) PRIMARY KEY;
	NAME VARCHAR(100);#最长是100字节,可变长度
	IMAGE BLOB;
	AGE INT;
	JOIN_DATE DATE;
	DESCRIPTION TEXT;
	SALARY DOUBLE;
);
  1. 查看当前数据库中的表名
SHOW TABLES;
  1. 查看表的所有属性
DESC EMPLOYEE;
  1. 修改表属性:
  • 4.1 新增一个属性
ALTER TABLE employee ADD image blob;
  • 4.2 修改属性的数据类型
ALTER TABLE employee MODIFY job_description VARCHAR(40);

修改表名称:

ALTER TABLE EMPLOYEE_INFO RENAME EMPLOYEE;

增加属性:

ALTER TABLE EMPLOYEE ADD SEX CHAR(1);

删除某一列属性:

ALTER TABLE EMPLOYEE DROP SEX;

修改属性的名称,数据类型:

ALTER TABLE EMPLOYEE MODIFY DESCRIPTION VARCHAR(500);
ALTER TABLE EMPLOYEE CHANGE NAME USERNAME VARCHAR(100);
  1. 删除数据库中的某个表
DROP TABLE EMPLOYEE_INFO;
  1. 其他语句

修改数据库中的表编码格式

ALTER TABLE EMPLOYEE CHARACTER SET utf8;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值