首页 > 数据库 >数据库基础知识

数据库基础知识

时间:2023-12-06 12:57:14浏览次数:38  
标签:-- 数据库 基础知识 表名 table 约束 class 列名

DDL语言

DDL(Data   Definition  Language),数据定义语言,用来定义数据库对象(数据库,表,字段)

关于数据库操作

1.创建数据库

语法:

create  database 数据库名;

注意:数据库名需要满足命名规则

2.删除数据库

语法:

drop database 数据库名;

3.查询所有库

语法:

show databases;

4.切换数据库

语法:

use 数据库名;

关于表操作

1.创建表

语法:

create table  表名(
       列名     数据类型,
       列名     数据类型,
      .................
       列名     数据类型      
); 

注意一点:最后一列不需要逗号

MySQL常见的数据类型有哪些?

①varcahr(长度):表示可变的字符串,长度表示最多可以输入的内容个数。长度为0~65535

②char(长度):表示把不可变的字符串,长度是固定的,适合于固定长度的内容。长度为0~255

③text():文本字符串

④int:表示整数

⑤double:表示小数

⑥decimal(a,b):表示小数,a表示总长度包括整数位和小数位,b表示小数位

⑦date:表示日期类型

⑧datetime:表示日期时间类型

2.查看当前数据库有哪些表

语法:

show  tables;

3.删除表

语法:

drop table  表名;

4.修改表结构

语法:

-- 删除表结构总指定的列
alter table 表名   drop column 列名;

-- 添加指定的列
alter table 表名   add  column  列名   数据类型;

-- 修改列名
alter  table 表名  change column 列名  新名  数据类型;

-- 修改列的数据类型
alter table 表名  modify  column  列名   新数据类型;

设计表的约束

约束代表列必须满足这个约束,才能添加数据

分类:

约束的添加有两种方式:

(1)在创建表时对列名添加对应的约束:

create  table  emp(
    id    int    primary key,  -- 主键约束(值不能为空且值唯一)
    name   varchar(4)  unique,  -- 唯一约束(值唯一不重复)
    birthday  date   not null , -- 非空约束(限制该字段的数据不能为null)
    age     int    check(age>0),  -- 检查约束(值必须满足条件)
    gender  char(2)  default '男'  -- 默认约束(未指定该字段的值,则采用默认值)
   
)

(2)表结构构建好后添加约束

--  添加唯一约束
alter table 表名  add constraint 约束名   unique(列名);

--  检查约束
alter table 表名  add constraint 约束名  check(列名);

-- 非空约束
alter  table 表名  modify  列名  数据类型  not  null;

-- 主键约束
alter  table 表名 add constraint 约束名  primary  key(列名); 

外键约束

外键约束是让两张表的数据之间建立连接,保证数据的完整性

建立外键约束前需要理解表与表之间的关系:

(1)一对一的关系:

表示一张表A的一条记录只能对应另一张表B中的一条记录,而另外一张表B的记录也只能对应着表A中的一条记录。

比如:学生表和身份证

人类表
id      name
1       张三
2       李四

身份证表
id     身份证号码
1     card1
2     card2

这里的一个人只能有一张身份证卡,而一张身份证卡只能对应一个人。

(2)一对多的关系:

表示一张表A的一条记录可以对应着另一张表B的多条数据,而另一张表B的记录只能对应表A中的一条记录。

比如:班级表和学生表

班级表
id     class
1      一班
2      二班

学生表
id     classno
1      一班
2      一班
3      二班
4      一班

这里的一个学生只能有一个班级,但是一个班级可以包含多个学生。

(3)多对多的关系

表示一张表A中的记录对应着另一张表B的多条记录,另一张表B中的记录也可以对应表A中的多条记录。

比如:学生表与老师表

学生表
id     name   teacherName
1      张三     李老师
2      李四     王老师
3      张三     崔老师  
4      王五     王老师

班主任表
id    name    studentName
1    李老师    张三
2    王老师    王五
3    王老师    李四
4    崔老师    张三

这里一个学生表中的可以存在一个学生有多个老师记录,而老师表中一个老师可以有多个学生记录。

而多对多关系需要转成1对多的关系,只需要一张中间表来存放学生表里面的主键和老师表的主键,此时学生表与中间表之间形成一对多的关系,而老师表与中间表也形成一对多的关系。

外键的设置一般用于一对多的场景,多的一方增加一个外键列。

创建外键的语法:

alter table 表名 add contraint 约束名 foreign key (列名) references 参考的表名(列)

举个例子:

-- 老师表
create table if not exists class_teacher(
     class_teacher_id   int primary key comment '老师号',
      teacher_name       varchar(20)  not null   comment '姓名'
)comment '班主任';

-- 班级表
create table if not exists class(
     class_no  int primary key comment '班级号',
         type      varchar(20) not null unique comment '类型',
     class_teacher_no int  not null comment '班主任号'
)comment '班级表';

老师与班级表是一对多的关系,所以在班级表中设立外键列(class_teacher_no)
代码:
alter table class add constraint  fk_class_class_Teacher foreign key(class_teacher_no) references class_teacher(class_teacher_id);

 

标签:--,数据库,基础知识,表名,table,约束,class,列名
From: https://www.cnblogs.com/gzyhrc/p/17861579.html

相关文章

  • 【技术分享】ORACLE数据库相关操作
    原创:厦门微思网络 --截断表TRUNCATETABLETABLE_NAME;--删除表DROPTABLETABLE_NAME;--查询表SELECT*FROMTABLE_NAME;--添加一条记录INSERTINTOTABLE_NAME(COLUMN)VALUES(VALUE);--删除记录DELETEFROMTABLE_NAMEWHERECOLUMN=VALUE;--修改记录UPDATETABLE_NAME......
  • pgsql数据库安装和初始化
    !/bin/bash获取当前目录的绝对路径current_directory=$(readlink-f"$PWD")echo'-------------------------pgsql安装开始-----------------------'创建文件仓库配置sudosh-c'echo"debhttp://apt.postgresql.org/pub/repos/apt$(lsb_release-cs)-pgdgma......
  • 【数据库概论】第三章 数据库完整性
    数据库的完整性指的是数据的正确性和相融性。数据的正确性是指符合现实世界语意、反映当前实际情况;数据的相容性指的是数据库对同一对象在不同关系表中的数据是符合逻辑的,比如学生的学号一定是唯一的,学生所属的专业一定是专业表中有的专业等,数据的完整性主要是防止数据库中出现不......
  • 数据库的锁和MVCC机制
    数据库的锁机制,是数据库为了保证数据的一致性和完整性,使各种共享资源在被并发访问时变得有序所设计的一种规则。之前讲到过事务,提到事务的ACID原则和隔离的级别一条SQL的背后故事(三)目前较为常见的三种并发控制机制:分别是悲观并发控制(锁)、乐观并发控制(乐观锁)和多版本并发......
  • 【数据库概论】第二章 关系型数据库
    2.1关系数据库2.1.1关系关系模型的数据结构十分简单,只包含单一的数据结构——关系。在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。关系模型的数据结构虽然简单却能表达丰富的语义。在关系模型中,现实世界的实体以及实体之间的联机都是用单一的关系结构类型来表示。......
  • 性能测试必备基础知识(二)
    1.CPU使用率除了空闲时间外的其他时间占总CPU时间的百分比,就是CPU使用率,即1-空闲时间/CPU总时间。当计算CPU使用率时,我们通常使用/proc/stat文件中的数据。该文件提供了有关CPU的计数器信息,包括各种状态下的节拍数。通过cat  /proc/stat命令就可详细查看其信......
  • SQL 数据库语句- 创建和管理数据库
    SQLCREATEDATABASE语句SQLCREATEDATABASE语句用于创建一个新的SQL数据库。语法CREATEDATABASE数据库名称;示例以下SQL语句创建了一个名为"testDB"的数据库:CREATEDATABASEtestDB;通过这个简单的语句,你可以成功地创建一个名为"testDB"的数据库。记得在实......
  • 数据库安全性
    数据库的不安全因素:非授权用户对数据库的恶意存取和破坏数据库中重要或敏感的数据被泄露安全环境的脆弱性安全性描述TCSEC/TDI内容:定义了数据库管理系统的设计与实现中需要满足和用以进行安全性级别评估的标准,从4个方面描述安全性级别划分的指标,即安全策略、责任、保证和......
  • 数据库总结复习(sql应用题 二)
    目录前言关系代数关系间运算条件表达式使用案例语法树例子前言本文针对考纲上的30分sql应用题所涉及到的知识进行归纳总结。分为两篇文章,本篇为关系代数相关知识点。关系代数关系间运算关系和关系之间需要用到以下关系运算符:其中,连接从连接条件上分,等值连接,非等值连......
  • 【数据库概论】第一章 数据库概论
    1.1数据库系统概述1.1.1数据库的四个基本概念数据数据库数据库管理系统DBMS数据库系统DBS1.1.2数据库的特点数据结构化数据的共享性高、冗余度低并且易扩充数据独立性高数据由数据库管理系统统一管理和控制1.2数据模型1.1.1数据模型数据模型也是一种模型,他......