Go...

当前位置: 首页>>世界杯冠军魔咒

数据库设计

黑马程序员JavaWeb开发教程

文章目录

一、MySQL概述1、概述2、数据模型(1)MySQL数据模型(2)特点

3、SQL简介

二、数据库设计-DDL1、数据库(1)DDL数据库操作(2)注意事项(3)MySQL客户端工具-图形化工具

2、表(创建、查询、修改、删除)(1)创建(2)设计表结构的基本流程(3)查询(4)修改(5)删除

一、MySQL概述

1、概述

数据库:DataBase(DB),是存储和管理数据的仓库数据库管理系统:DataBase Management System(DBMS)操纵和管理数据库的软件SQL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准

2、数据模型

(1)MySQL数据模型

关系型数据库:建立在关系模型基础上,有多张相互连接的二维表组成的数据库

(2)特点

使用表存储数据,格式统一,便于维护使用SQL语言操作,标准统一,使用方便,可用于复杂查询

3、SQL简介

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准通用语法

SQL语句可以单行或者多行书写,一分号结尾SQL语句可以使用空格/缩进来增强语句的可读性MySQL数据库的SQL语句不区分大小写注释

单行注释:-- 注释内容,或者 # 注释内容多行注释:/*注释内容*/ SQL语句通常被分为四大类

DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)DML:数据操作语言,用来对数据库表中的数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数据控制语言,用来创建数据库用户、控制数据库的访问权限

二、数据库设计-DDL

1、数据库

(1)DDL数据库操作

查询

查询所有数据库:show databases;查询当前数据库:select databases(); 使用

使用数据库:use 数据库名; 创建

创建数据库:create database [if not exists] 数据库名; 删除

删除户数据库:drop database [if exists] 数据库名;

(2)注意事项

上述语法中的database,也可以替换为schema,如create schema db01;但我们经常使用的还是database

(3)MySQL客户端工具-图形化工具

DataGrip

介绍:DataGrip是JetBrains其下的一款数据库管理工具,是管理和开发MySQL、Oracle、PostgreSQL的理想解决方案官网:https://www.jetbrains.com/zh-cn/datagrip/ IDEA也可以用来作为MySQL的图形化工具

之后可以在console窗口对数据库进行操作了

2、表(创建、查询、修改、删除)

(1)创建

语法

create table 表名(

字段1 类型 [约束][comment 字段1注释],

字段2 类型 [约束][comment 字段2注释],

字段3 类型 [约束][comment 字段3注释]

)[comment 表注释];

约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据目的:保证数据库中数据的正确性、有效性和完整性常见的约束

非空约束,限制该字段值不能为空,not null为以约束,保证字段的所有数据都是唯一、不重复的,unique主键约束,主键是一行数据的唯一标识,要求非空并且唯一,primary key默认约束,保存数据的时候,如果未指定该字段的值,则采用默认值,default外键约束,让两张表的数据检录连接,保证数据的一致性和完整性,foreign key

实例,建立下面这张表,不用填入数据

create table user(

id int primary key auto_increment comment 'ID,主键,自增长',

username varchar(32) not null unique comment '用户名,非空,唯一',

name varchar(32) not null comment '姓名,非空',

age int comment '年龄',

gender char(1) default'男' comment'性别,默认男'

)comment '用户表';

(2)设计表结构的基本流程

根据页面原型和需求,分析出 原型字段(类型+约束)添加一些基础字段(id + create_time + update_time)

create_time:当前这条数据的插入时间update_time:记录当前这条数据最后更新时间 创建出完整的表

(3)查询

查询当前数据库所有表:show tables;查询表结构:desc 表名;查询建表语句:show create table 表名;

# DDL表结构-查询

-- 查询当前数据库所有表

show tables;

-- 查询表结构

desc user;

-- 查询建表语句

show create table user;

(4)修改

添加字段:alter table 表名 add 字段名 类型(长度) [comment 注释][约束];修改字段类型:alter table 表名 modify 字段名 新数据类型(长度) ;修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束] ;删除字段:alter table 表名 drop column 字段名 ;修改表名:rename table 表名 to 新表名;

# DDL表操作-修改

# 1. 添加字段:alter table 表名 add 字段名 类型(长度) [comment 注释][约束];

alter table user add phone varchar(32) not null comment'电话号码,非空';

# 2. 修改字段类型:alter table 表名 modify 字段名 新数据类型(长度) ;

alter table user modify phone varchar(13);

# 3. 修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束] ;

alter table user change phone newphone varchar(32);

# 4. 删除字段:alter table 表名 drop column 字段名 ;

alter table user drop column newphone;

# 5. 修改表名:rename table 表名 to 新表名;

rename table user to tb_user;

(5)删除

删除表:drop table [if exists] 表名;注意在删除表的时候,表中的数据也会被删除

drop table emp;