首页 > 数据库 >数据库

数据库

时间:2023-11-02 23:45:08浏览次数:41  
标签:varchar 数据库 数据表 book isbn table 主键

主键约束
主键--就是数据表中记录的唯一标识,在一张表中只能有一个主键(主键可以是一个列,也可以是多个列的组合)
当一个字段声明为主键之后,添加数据时:
。此字段数据不能为null
。此字段数据不能重复
创建表时添加主键约束
create table books(
book_isbn char(4) primary key,
book_name varchar(10) not null
book_author varchar(6)

);

或者
create table books(
book_isbn char(4),
book_name varchar(10) not null
book_author varchar(6),primary key(book_isbn)

);

删除数据表主键约束
Alter table <数据表> drop primary key
创建表之后添加主键约束
## 创建表时没有添加主键约束create table booksbook_isbn char(4)book_name varchar(10) not null,book_author varchar(6)
## 创建表之后添加主键约束alter table books modify book_isbn char(4) primary key ;
主键自动增长
在我们创建一张数据表时,如果数据表中有列可以作为主键(例如: 学生表的学号、图书表的isbn)我们可以直接这是这个列为主键;
当有些数据表中没有合适的列作为主键时,我们可以额外定义一个与记录本身无关的列(ID)作为主键,列数据无具体的含义主要用于标识一条记录,在mysal中我们可以将此列定义为int,同时设置为 自动增长当我们向数据表中新增一条记录时,无需提供ID列的值,它会自动生成。
定义主键自动增长
auto increment*定义int类型字段自动增长:
create table types(
type_id int primary key auto_incretype_name varchar(20) not null,type_remark varchar(10)
注意:自动增长从1开始,每添加一条记录,自动的增长的列会自定+1,当我们把某条记录删除之后再深加数据,自动增长的数据也不会重复生成 (自动增长只保证唯一性、不保证连续性)
联合主键(将数据表中的多列组合在一起设置为表的主键)
定义联合主键
create table grades(

stu_num char(8),
course_id int,
score int,
primary key(stu_num, course_id)

):
注意:在实际企业项目的数据库设计中,联合主键使用频率并不高;当一个数据表中没有明确的字段可以作为主键时,我们可以额外添加一个ID字段作为主键。

标签:varchar,数据库,数据表,book,isbn,table,主键
From: https://www.cnblogs.com/jimeirj/p/17806690.html

相关文章

  • Zabbix6.0监控MySQL数据库
    官方文档:https://www.zabbix.com/cn/integrations/mysql部署过程:1.在MySQL数据库中创建监控账号并授权CREATEUSER'zabbix'@'%'IDENTIFIEDBY'Likun@123';GRANTUSAGE,REPLICATIONCLIENT,PROCESS,SHOWDATABASES,SHOWVIEWON*.*TO'zabbix'@�......
  • 无涯教程-H2数据库 - Drop语句
    DROP命令用于从内存中删除数据库组件及其结构,无涯教程将在本章中讨论Drop命令的不同情况。DropTable删除表是删除相应表及其结构的命令。DROPTABLE[IFEXISTS]tableName[,...][RESTRICT|CASCADE]如果无涯教程使用的是RESTRICT并且存在具有依赖视图的表,则该命令将......
  • 无涯教程-H2数据库 - 合并数据(Merge)
    MERGE命令用于更新现有行并将新行插入表中,使用此命令时,主键列起着重要的作用,它用于查找行。Merge-语法以下是MERGE命令的通用语法。MERGEINTOtableName[(columnName[,...])][KEY(columnName[,...])]{VALUES{({DEFAULT|expression}[,...])}[,.......
  • powerdesigner 数据库建模
    作用,用于数据库建模,形成pdm图,生成数据表或者逆向工程到设计图上1、cdm数据库建模文件表格代表实体,线条代表关系,建模不是建数据库,数据库的一种抽象当前只是建模阶段,不清楚具有以后要向哪种数据库中去生成表,所以这里的数据类型都是一种具体数据库类型的代替名称。name属性的中文名c......
  • openGauss学习笔记-112 openGauss 数据库管理-管理用户及权限-行级访问控制
    openGauss学习笔记-112openGauss数据库管理-管理用户及权限-行级访问控制行级访问控制特性将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。用户可以在数据表创建行访问控制(RowLevelSecurity)策略,该......
  • 无涯教程-H2数据库 - Call语句
    CALL是属于H2数据库服务器的SQL命令,此命令用于计算简单表达式,它在单个列字段中返回给定表达式的输出。Call-语法以下是CALL命令的通用语法。CALLexpression;无涯教程可以在这种语法中使用算术表达式。Call-示例让无涯教程举个例子,并使用call命令执行算术表达式(15*25......
  • 无涯教程-H2数据库 - Explain语句
    EXPLAIN命令显示一条语句的执行计划,当无涯教程使用EXPLAINANALYZE命令执行语句时,查询计划将包括每个表的实际行扫描计数。Explain-语法以下是EXPLAIN命令的通用语法。EXPLAIN{[PLANFOR]|ANALYZE}{select|insert|update|delete|merge}连同此语法,无涯教......
  • sql server 截断和收缩所有用户数据库日志--用游标循环所有正常状态的用户数据库
    在服务器运维活动中,我们经常需要做一项工具就是将好多年的用户数据库日志文件截断并收缩为最小,以节省大量的磁盘空间。当数据库只有一两个时可以手动操作,但数据库数量众多时,就需要采用sql脚本,批量化执行这个过程。本人写了一段这样的脚本。并且经过验证执行无误。现在分享出来,您......
  • 智安网络|数据库设计与规范:构建高效可靠的数据存储系统
    在信息化时代,数据库设计与规范是构建高效可靠的数据存储系统的关键。一个合理的数据库设计可以提高数据的存储效率、保证数据的一致性和完整性,提供高效的数据查询和处理能力。一、数据库设计的基本原则数据库范式:数据库设计应符合范式的要求,避免数据冗余和更新异常。常见的范式有第......
  • HHDBCS扩展数据库类型
    为应对市面上的数据库种类繁多的问题,HHDBCS设置了扩展数据库功能。在登陆界面点击“工具”,选择“扩展数据库类型”;注:HHDBCS支持已kingbase,本文仅用来举例。填入名称、所需数据库的信息,上传驱动;然后点击保存。即可在登陆界面的数据库类型中,找到该数据库。点击登陆可使用基......