asp.net 做网站实例/免费职业技能培训网

asp.net 做网站实例,免费职业技能培训网,java最新版本官网网址,工程网站开发数据定义 1. 数据库模式(Schema)的定义与删除定义模式删除模式 2. 基本表的定义、修改与删除定义表约束1. NOT NULL 约束2. DEFAULT 约束3. UNIQUE 约束4. PRIMARY KEY 约束多列主键示例: 5. FOREIGN KEY 约束6. CHECK 约束7. AUTO_INCREMENT…

数据定义

  • 1. 数据库模式(Schema)的定义与删除
    • 定义模式
    • 删除模式
  • 2. 基本表的定义、修改与删除
    • 定义表
      • 约束
        • 1. `NOT NULL` 约束
        • 2. `DEFAULT` 约束
        • 3. `UNIQUE` 约束
        • 4. `PRIMARY KEY` 约束
          • 多列主键示例:
        • 5. `FOREIGN KEY` 约束
        • 6. `CHECK` 约束
        • 7. `AUTO_INCREMENT` (MySQL 特有)
        • 综合示例:定义一张复杂表
    • 修改表结构
    • 删除表
  • 3. 视图(View)的定义与删除
    • 创建视图
    • 删除视图
  • 4. 索引的建立、修改与删除
    • 创建索引
    • 修改索引
    • 删除索引
  • 总结

1. 数据库模式(Schema)的定义与删除

定义模式

CREATE SCHEMA schema_name;
  • 示例
    CREATE SCHEMA my_schema;
    
    • 说明:创建名为 my_schema 的模式。

删除模式

DROP SCHEMA schema_name [CASCADE | RESTRICT];
  • 示例
    DROP SCHEMA my_schema CASCADE;
    
    • 说明
      • CASCADE:删除模式时,同时删除模式中的所有对象。
      • RESTRICT:如果模式中存在对象,则无法删除。

2. 基本表的定义、修改与删除

定义表

CREATE TABLE table_name (column1 datatype [constraints],column2 datatype [constraints],...columnN datatype [constraints]
);
  • 示例
    CREATE TABLE employees (employee_id INT PRIMARY KEY,name VARCHAR(100) NOT NULL,department_id INT,hire_date DATE,salary DECIMAL(10, 2)
    );
    
    • 说明:创建名为 employees 的表,包含以下字段:
      • employee_id:主键,不允许为空。
      • name:员工姓名,不允许为空。
      • department_id:部门编号,允许为空。
      • hire_date:雇佣日期。
      • salary:薪资,精确到小数点后两位。

约束

1. NOT NULL 约束
  • 作用:保证列的值不能为 NULL,即必须提供一个值。
  • 语法
    column_name data_type NOT NULL
    
  • 示例
    CREATE TABLE employees (employee_id INT NOT NULL,name VARCHAR(100) NOT NULL,hire_date DATE NOT NULL
    );
    
    • 说明
      • employee_idnamehire_date 列都必须有值,不能为 NULL
2. DEFAULT 约束
  • 作用:为列设置一个默认值,当插入数据时未提供值时使用默认值。
  • 语法
    column_name data_type DEFAULT default_value
    
  • 示例
    CREATE TABLE employees (employee_id INT NOT NULL,name VARCHAR(100) NOT NULL,hire_date DATE DEFAULT CURRENT_DATE,salary DECIMAL(10, 2) DEFAULT 3000.00
    );
    
    • 说明
      • hire_date 默认值是当前日期。
      • salary 默认值是 3000.00,如果插入数据时未提供 salary 值,将使用默认值。
3. UNIQUE 约束
  • 作用:保证列中的值唯一,不能重复。
  • 语法
    column_name data_type UNIQUE
    
  • 示例
    CREATE TABLE employees (employee_id INT NOT NULL UNIQUE,email VARCHAR(255) UNIQUE
    );
    
    • 说明
      • employee_idemail 列中的值不能重复。
      • UNIQUE 可以保证唯一性,但不同于主键,它允许列中存在 NULL 值。
4. PRIMARY KEY 约束
  • 作用:用于标识表中的唯一记录,必须唯一且不能为 NULL
  • 语法
    column_name data_type PRIMARY KEY
    
  • 或者在多列上定义主键:
    PRIMARY KEY (column1, column2, ...)
    
  • 示例
    CREATE TABLE employees (employee_id INT PRIMARY KEY,name VARCHAR(100),department_id INT,hire_date DATE
    );
    
    • 说明
      • employee_id 是表的主键,值必须唯一且不能为 NULL
多列主键示例:
CREATE TABLE order_items (order_id INT,item_id INT,quantity INT,PRIMARY KEY (order_id, item_id)
);
  • 说明order_iditem_id 组合在一起作为主键,确保每个订单中每个商品的记录唯一。
5. FOREIGN KEY 约束
  • 作用:用于建立两张表之间的关系,确保外键列的值必须在另一张表中存在。
  • 语法
    column_name data_type REFERENCES parent_table (parent_column)
    
  • 或者:
    FOREIGN KEY (column_name) REFERENCES parent_table (parent_column)
    
  • 示例
    CREATE TABLE departments (department_id INT PRIMARY KEY,department_name VARCHAR(100)
    );CREATE TABLE employees (employee_id INT PRIMARY KEY,name VARCHAR(100),department_id INT,FOREIGN KEY (department_id) REFERENCES departments(department_id)
    );
    
    • 说明
      • department_idemployees 表中的外键,引用 departments 表中的 department_id
6. CHECK 约束
  • 作用:限制列的值必须满足某个条件。
  • 语法
    column_name data_type CHECK (condition)
    
  • 或者:
    CHECK (condition)
    
  • 示例
    CREATE TABLE employees (employee_id INT PRIMARY KEY,name VARCHAR(100) NOT NULL,salary DECIMAL(10, 2) CHECK (salary >= 0),age INT CHECK (age BETWEEN 18 AND 65)
    );
    
    • 说明
      • salary 列的值必须大于或等于 0。
      • age 列的值必须在 18 和 65 之间。
7. AUTO_INCREMENT (MySQL 特有)
  • 作用:为列自动生成唯一的递增值,通常用于主键。
  • 语法
    column_name data_type AUTO_INCREMENT
    
  • 示例
    CREATE TABLE employees (employee_id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL
    );
    
    • 说明
      • employee_id 列的值将自动生成,初始值为 1,每次插入新行时递增。
综合示例:定义一张复杂表
CREATE TABLE employees (employee_id INT AUTO_INCREMENT PRIMARY KEY, -- 主键,自动递增name VARCHAR(100) NOT NULL,                -- 员工姓名,不能为空email VARCHAR(255) UNIQUE,                 -- 邮箱必须唯一department_id INT,                         -- 部门编号hire_date DATE DEFAULT CURRENT_DATE,       -- 默认值为当前日期salary DECIMAL(10, 2) CHECK (salary >= 0), -- 薪资必须大于或等于 0FOREIGN KEY (department_id) REFERENCES departments(department_id) -- 外键约束
);
  • 详细解读
    • employee_id 是主键,自动递增,唯一且不能为空。
    • name 是员工姓名,不能为空。
    • email 必须唯一,避免重复。
    • department_id 是外键,必须引用 departments 表中的 department_id
    • hire_date 默认值是当前日期。
    • salary 的值必须大于或等于 0。

修改表结构

  1. 添加列

    ALTER TABLE table_name ADD column_name datatype [constraints];
    
    • 示例
      ALTER TABLE employees ADD email VARCHAR(255);
      
      • 说明:为 employees 表添加 email 列。
  2. 修改列类型

    ALTER TABLE table_name ALTER COLUMN column_name TYPE new_datatype;
    
    • 示例
      ALTER TABLE employees ALTER COLUMN salary TYPE DECIMAL(12, 2);
      
      • 说明:将 employees 表中的 salary 列的精度修改为 12 位(小数点后两位)。
  3. 删除列

    ALTER TABLE table_name DROP COLUMN column_name [CASCADE | RESTRICT];
    
    • 示例
      ALTER TABLE employees DROP COLUMN email;
      
      • 说明:删除 employees 表中的 email 列。

删除表

DROP TABLE table_name [CASCADE | RESTRICT];
  • 示例
    DROP TABLE employees CASCADE;
    
    • 说明:删除 employees 表及其依赖对象。

3. 视图(View)的定义与删除

创建视图

视图是基于一个或多个表的查询结果集,定义一个视图后可以像查询表一样查询视图。

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
  • 示例
    CREATE VIEW employee_salary AS
    SELECT employee_id, name, salary
    FROM employees
    WHERE salary > 50000;
    
    • 说明
      • 创建一个名为 employee_salary 的视图,该视图包含 employees 表中薪资大于 50000 的员工的 employee_idnamesalary

删除视图

DROP VIEW view_name;
  • 示例
    DROP VIEW employee_salary;
    
    • 说明:删除 employee_salary 视图。

4. 索引的建立、修改与删除

创建索引

  1. 普通索引

    CREATE INDEX index_name ON table_name (column1, column2, ...);
    
    • 示例
      CREATE INDEX idx_department_id ON employees(department_id);
      
      • 说明:为 employees 表的 department_id 列创建普通索引。
  2. 唯一索引

    CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
    
    • 示例
      CREATE UNIQUE INDEX idx_employee_email ON employees(email);
      
      • 说明:为 employees 表的 email 列创建唯一索引。

修改索引

索引本身无法直接修改,需要删除后重新创建。

删除索引

DROP INDEX index_name;
  • 示例
    DROP INDEX idx_department_id;
    
    • 说明:删除名为 idx_department_id 的索引。

总结

  • CREATE 用于创建模式、表和索引。
  • ALTER 用于修改表结构。
  • DROP 用于删除模式、表和索引。
  • 使用 CASCADE 会删除对象及其依赖关系,RESTRICT 则要求先删除所有依赖关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis超高并发分key实现

Redis扛并发的能力是非常强的,所以高并发场景下经常会使用Redis,但是Redis单分片的写入瓶颈在2w左右,读瓶颈在10w左右,如果在超高并发下即使是集群部署Redis,单分片的Redis也是有可能扛不住的,如下图所示&a…

Webpack 前端性能优化全攻略

文章目录 1. 性能优化全景图1.1 优化维度概览1.2 优化效果指标 2. 构建速度优化2.1 缓存策略2.2 并行处理2.3 减少构建范围 3. 输出质量优化3.1 代码分割3.2 Tree Shaking3.3 压缩优化 4. 运行时性能优化4.1 懒加载4.2 预加载4.3 资源优化 5. 高级优化策略5.1 持久化缓存5.2 模…

虚拟电商-数据库分库分表(二)

本文章介绍:使用Sharding-JDBC实现数据库分库分表,数据库分片策略,实现数据库按月分表 一、Sharding-JDBC使用 1.1.准备环境 步骤一:分库分表sql脚本导入 创建了两个数据库:chongba_schedule0 和chongba_schedule1…

向量数据库对比以及Chroma操作

一、向量数据库与传统类型数据库 向量数据库(Vector Storage Engine)与传统类型的数据库如关系型数据库(MySQL)、文档型数据库(MongoDB)、键值存储(Redis)、全文搜索引擎&#xff0…

美畅物联丨WebRTC 技术详解:构建实时通信的数字桥梁

在互联网技术飞速发展的今天,实时通信已成为数字生活的核心需求。WebRTC作为一个开源项目,凭借卓越的技术实力与创新理念,为网页和移动应用带来了颠覆性的实时通信能力。它突破了传统通信方式的限制,实现了音频、视频和数据在用户…

excel中两个表格的合并

使用函数: VLOOKUP函数 如果涉及在excel中两个工作表之间进行配对合并,则: VLOOKUP(C1,工作表名字!A:B,2,0) 参考: excel表格中vlookup函数的使用方法步骤https://haokan.baidu.com/v?pdwisenatural&vid132733503560775…

怎么鉴别金媒v10.51和v10.5的区别!单单从CRM上区分!

2.怎么鉴别程序是10.5还是10.51 ?* 作为商业用户,升级完全没有这个担心,但是这次升级从全局来看清晰度不是很高,不像10.5的升级后台UI都变化了!你说有漏洞但是我没遇到过 所以我也不知道升级了啥只能看版本数字是无法区…

【Oracle】19c数据库控制文件多路径配置

一、关闭数据库(2个节点实例都要关闭) srvctl stop database -d ora19c 二、多路径控制文件 打开其中一个节点到nomount状态 sqlplus / as sysdba startup nomount; [oracleora19c1:/home/oracle]$ rman target / RMAN> restore controlfile to…

大模型训练全流程深度解析

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 1. 大模型训练概览1.1 训练流程总览1.2 关键技术指标 2. 数据准备2.1 数据收集与清洗2.2 数据…

【Linux】进程(1)进程概念和进程状态

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、什么是进程 二、task_struct的内容 三、Linux下进程基本操作 四、父进程和子进程 1. 用fork函数创建子进程 五、进程状态 1. 三种重…

odbus TCP转Modbus RTU网关快速配置案例

Modbus TCP 转Modbus RTU网关快速配置案例 在工业自动化领域,Modbus 协议以其简洁和高效而著称,成为众多设备通信的首选。 随着技术的发展和应用场景的变化,Modbus 协议也发展出了不同的版本,其中 Modbus TCP 和 Modbus RTU 是两种…

《高效迁移学习:Keras与EfficientNet花卉分类项目全解析》

从零到精通的迁移学习实战指南:以Keras和EfficientNet为例 一、为什么我们需要迁移学习? 1.1 人类的学习智慧 想象一下:如果一个已经会弹钢琴的人学习吉他,会比完全不懂音乐的人快得多。因为TA已经掌握了乐理知识、节奏感和手指…

Android 手机启动过程

梳理 为了梳理思路,笔者画了一幅关于 Android 手机启动的过程图片内容纯属个人见解,如有错误,欢迎各位指正

【Linux】:封装线程

朋友们、伙计们,我们又见面了,本期来给大家带来封装线程相关的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结…

星越L_三角指示牌及危险警示灯使用

目录 1.打开危险警告灯 2.取出反光背心穿上 3.取出指示牌 4.放置三角指示牌。 1.打开危险警示灯 2.取出反光背心穿上 3.取出指示牌

AI与人的智能,改变一生的思维模型【7】易得性偏差

目录 **易得性偏差思维模型:大脑的「热搜算法」与反操纵指南****病毒式定义:你的大脑正在被「热搜」劫持****四大核心攻击路径与史诗级案例****1. 信息过载时代的「认知短路」****2. 媒体放大器的「恐怖滤镜」****3. 个人经验的「数据暴政」****4. 社交茧…

Jmeter的简单使用

前置工作 确保java8 版本以上jmeter下载路径(选择Binaries):https://jmeter.apache.org/download_jmeter.cgi直接解压,找到bin下面的文件:jmeter.bat(可选)汉化,修改 jmeter.proper…

MyBatis源码分析の配置文件解析

文章目录 前言一、SqlSessionFactoryBuilder1.1、XMLConfigBuilder1.2、parse 二、mappers标签的解析2.1、cacheElement2.1.1、缓存策略 2.2、buildStatementFromContext2.2.1、sql的解析 前言 本篇主要介绍MyBatis源码中的配置文件解析部分。MyBatis是对于传统JDBC的封装&…

golang快速上手基础语法

变量 第一种,指定变量类型,声明后若不赋值,使用默认值0 package mainimport "fmt"func main() {var a int //第一种,指定变量类型,声明后若不赋值,使用默认值0。fmt.Printf(" a %d\n"…

工程实践:如何使用SU17无人机来实现室内巡检任务

阿木实验室最近发布了科研开发者版本的无人机SU17,该无人机上集成了四目视觉,三维激光雷达,云台吊舱,高算力的机载计算机,是一个非常合适的平台用于室内外巡检场景。同时阿木实验室维护了多个和无人机相关的开源项目。…