zoukankan      html  css  js  c++  java
  • 数据库概述和DDL(数据库定义)

    1 数据库相关概念

    1.1数据库概述

      数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及其查询操作。

    1.2数据库管理系统(DataBase Management System,DBMS)

      一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

    1.3常见的数据库管理系统

      Mysql 免费的,跨平台的:开源免费的数据库,小型的数据库,已经被Oracle收购了。

      Oracle 甲骨文,java写的:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购Mysql。

      DB2 IBM的,java写的:IBM公司的数据库产品,收费的。常应用在银行系统中。

      SQL Server 微软的:MicroSoft 公司收费的中型数据库。C#、.net等语言常用

      Access office 里面自带的:

      SQLite android 里面的数据库:嵌入式的小型数据库,应用在手机端。

    1.4基本概念

      DDL(data definition language)数据库定义语言:主要是用在定义或改变表得结构,数据类型,表之间的链接和约束等初始化工作上,如create、alter、drop等。

      DML(data manipulation language)数据操纵语言:主要用来对数据库的数据进行增删改查操作,如select、update、insert、delect等。

      DCL(data control language)数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,如grant、deny、revoke等。

    2 基本使用

    2.1DDL

    创建数据库:

    create database <数据库名>;

    删除数据库:

    drop database <数据库名>;

    定义模式:

    create schema<模式名>authorization<用户名>;

    删除模式:

    drop schema<模式名><cascade|restrict>;

    定义基本表:

    1、创建学生表“student"

    create table student(
    sno char(9) PRIMARY KEY,   /*列级完整性约束条件,sno是主码*/
    sname CHAR(20) UNIQUE,     /*sname取唯一值*/
    ssex CHAR(2),
    sage SMALLINT,
    sdept CHAR(20)
    );

     创建完成之后可以使用desc <表名>查看表整体架构

     2、建立课程表”course"

    create table course(
    cno CHAR(4) PRIMARY KEY,                  /*列级完整性约束条件,cno是主码*/
    cname CHAR(40) NOT NULL,                  /*列级完整性约束条件,cname不能取空值*/
    cpno CHAR(4),                             /*cpno的含义是先修课*/
    credit SMALLINT,
    FOREIGN KEY(cpno)REFERENCES course(cno)   /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/
    );

     3、建立学生选课表“sc"

    create table sc(
    sno CHAR(9),
    cno CHAR(4),
    grade SMALLINT,
    PRIMARY KEY (sno,cno),                     /*主码由两个属性构成,必须作为表级完整性进行定义*/
    FOREIGN KEY(sno) REFERENCES student(sno),  /*表级完整性约束条件,sno是外码,被参照表是student*/
    FOREIGN key(cno) REFERENCES course(cno)    /*表级完整性约束条件,cno是外码,被参照表是course*/
    );

     修改基本表:

    1、向"student"表增加”入学时间“l列,其数据类型为日期类型

    alter table student
    add s_entrance TIMESTAMP;

    2、删除1中新加的列”s_entrance"

    alter table student
    drop COLUMN s_entrance;

    3、修改"student"中的列名“s_entrance"为”s_time"

    alter table student
    change s_entrance s_time TIMESTAMP;

    4、修改“student"中列”sage"的属性改为int

    alter table student
    MODIFY sage INT;

     5、修改表“student"中字段”sage“为默认值26

    alter table student
    alter sage set DEFAULT 26;

    6、删除表”student"中字段“sage”的默认字段

    alter table student
    alter sage drop DEFAULT;

     7、删除表

    drop table <表名> [RESTRICT|CASCADE];

      restrict:该表的删除是有条件的。想要删除的基本表不能被其他表的约束所引用(如check,foreign key等约束),不能有视图,不能有触发器(trigger),不能有存储过程或函数等。

      cascade:该表的删除没有限制条件,在删除基本表的同时,相关的依赖对象,例如视图,都将被一起删除。

  • 相关阅读:
    5.5,5.6
    5.1,5.2
    第四章.编程练习
    多源最短路径--flody算法
    Java 面试题
    python 打包exe程序
    sql优化
    二叉树
    todo: 队列、栈、散列集
    java注解
  • 原文地址:https://www.cnblogs.com/hhjing/p/15080978.html
Copyright © 2011-2022 走看看