数据库及数据表的相关操作(一)

目录

    • 一、管理逻辑库与数据表
    • 二、常用数据类型和约束
      • 2.1 数字数据类型
      • 2.2 字符串数据类型
      • 2.3 日期数据类型
      • 2.4 字段约束
    • 三、索引运行机制和使用原则
      • 3.1 创建索引
      • 3.2 添加与删除索引
      • 3.3 索引的使用原则

一、管理逻辑库与数据表

sql语言的分类:

​ DML数据操作语言:对数据的增删改查

​ DCL数据控制语言 :创建用户、分配权限、事务管理

​ DDL数据定义语言:逻辑库、数据表、视图、索引


逻辑空间的操作:

# 查寻逻辑空间
SHOW DATABASES;
# 创建逻辑空间
CREATE DATABASE demo;
# 删除逻辑空间
DROP DATABASE demo;

数据库表结构的修改:

CREATE DATABASE my;

# 切换my数据库
use my;

# 显示数据库表
SHOW TABLES;

# 创建数据库表
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)
);

# 向数据库表中插入一行数据
INSERT INTO student VALUES(1, "李强", "男", "2002-02-12", "12765489865", NULL);
# 删除数据库表
DROP TABLE student;

# 展示字段类型及约束
DESC student;

# 向表中增加字段
ALTER TABLE student 
ADD address VARCHAR(200) NOT NULL,
ADD home_tel VARCHAR(11) NOT NULL;

# 删除表中的字段
ALTER TABLE student
DROP address,
DROP home_tel;

# 修改字段类型和约束
ALTER TABLE student
MODIFY home_tel CHAR(11) NOT NULL;

# 修改字段名称及类型、约束
ALTER TABLE student 
CHANGE home_tel home_telp Char(11) NOT NULL;

# 修改表名
ALTER TABLE student RENAME tb_student;
# 删除数据表
DROP TABLE t_student;

二、常用数据类型和约束

2.1 数字数据类型

数据库及数据表的相关操作(一)_第1张图片

2.2 字符串数据类型

数据库及数据表的相关操作(一)_第2张图片

2.3 日期数据类型

数据库及数据表的相关操作(一)_第3张图片

2.4 字段约束

数据库的范式: 构造数据库遵循的规则

  1. 原子性:要求每一列都是不可分割的基本数据项
  2. 唯一性:主键列标识
  3. 关联性:每列都与主键有直接关系,不存在传递依赖
约束名称 关键字 描述
主键约束 PRIMARY KEY 字段值唯一,且不能为NULL
非空约束 NOT NULL 字段值不能为NULL
唯一约束 NUIQUE 字段值唯一,且可以为NULL
外键约束 FOREIGN KEY 保持关联数据的逻辑性

外键约束是定义在子表上的

三、索引运行机制和使用原则

索引建立的好处:MySQL利用二叉树结构,对数据表的记录排序,加快检索速度

3.1 创建索引

CREATE TABLE 表名称(
	...,
    # []内的内容可写可不写
    INDEX [索引名称](字段)
    ...
);

3.2 添加与删除索引

添加索引

CREATE INDEX 索引名称 ON 表名(字段);
ALTER TABLE 表名称 ADD INDEX [索引名](字段);

显示表中的所有索引

SHOW INDEX FROM 表名;

删除索引

DROP INDEX 索引名称 ON 表名;

3.3 索引的使用原则

  1. 数据量很大,经常被查询的数据表可以设置索引
  2. 索引只添加在经常被用做检索条件的字段上面
  3. 不要在大字段上创建索引
# 创建一个部门表
CREATE TABLE tb_dept(
	deptno INT UNSIGNED PRIMARY KEY,
	dename VARCHAR(20) NOT NULL UNIQUE,
	tel CHAR(4) UNIQUE,
	# 创建索引
	INDEX idx_tel(tel)
);

# 删除索引
DROP INDEX idx_tel ON tb_dept;

# 添加索引,两种方式
CREATE INDEX idx_tel ON tb_dept(tel);
ALTER TABLE tb_dept ADD INDEX idx_tel(tel);

# 显示表中所有的索引	
SHOW INDEX FROM tb_dept;

# 创建一个员工表
CREATE TABLE tb_emp(
	empno INT UNSIGNED PRIMARY KEY,
	ename VARCHAR(20) NOT NULL,
	sex ENUM("男", "女") NOT NULL,
	deptno INT UNSIGNED NOT NULL,
	hiredate DATE NOT NULL,
	FOREIGN KEY (deptno) REFERENCES tb_dept(deptno)		# 当前的deptno关联到tb_dept表的deptno字段
);

你可能感兴趣的:(MySQL,数据库,mysql)