数据库(DDL)

mysql数据库的常规操作分为DCL , DDL , DML , DQL

  今日就让我们探讨其中的DDL吧。

 

DDL(面向对象级别):
*必备知识:
1.数据类型:
java            javascript               mysql
char|String         string            char(整数N:固定长度的小文本)|varchar(整数N:可变长度的小文本)√|text(整数N:长文本)
byte|short|int|long      number              tinyint | smallint | int(N)/int√ | bigint
float|double        number              float | double | money | numeric | decimal(m,n)√【m:整数加小数的长度,即总长;n:精度】
boolean           boolean              bit【只有0(false)和1(true)】
Date                                       date                                              date【年月日】|time【时分秒】|datetime|timestamp【自带默认值】

2.约束:
目的:数据的完整性
    1.类型
    2.长度
    3.是否允许为空:可以为空:NULL / 不可为空:not NULL
    4.默认值:default 默认值[VALUE]
    5.唯一键:unique key
    6.主键(唯一且不能为空):primary key =>没有意义的字段做主键,以不变应万变
            单一主键
            组合主键
    7.外键(从表中的外键引用主表中的主键,主外键的数据类型与约束必须一致):foreign key
    8.零填充:zerofill => 高位自动补零【若为1号,则以00001形式】
    9.自增列(面向数值):auto_increment【组合使用:auto_increment primary key】
    10.无符号数值:unsigned【正数】
*解释:
  数据定义语言,用来定义数据库【对象】:库、表、列等。
*操作:
*库的操作:
【建】库:
  语法:create database if not exists DATABASE_NAME;
  案例:create database if not exists tang;
【查】看所有的库:
  show databases;
【删】库:
  语法:drop database if exists DATABASE_NAME;
【进入】库:
  语法:use DATABASE_NAME;
  案例:use tang;
  重点:完成这步之后才可在库里面进行建表等操作 
*表的操作:
【建】表:
  语法:create table TABLE_NAME(
      FIELD_NAME字段名 DATA_TYPE1数据类型 CONSTRAINT1约束 (comment '注释'),
      FIELD_NAME字段名 DATA_TYPE2数据类型 CONSTRAINT2约束 (comment '注释'),
      FIELD_NAME字段名 DATA_TYPE3数据类型 CONSTRAINT3约束 (comment '注释'),
      ...
     );
  案例:
    主:
    create table class(
      //关联:
      class_id int(6) auto_increment primary key,
      class_name varchar(7) not null unique key
    );


    从:
    create table student(
      stu_no int(6) zerofill auto_increment primary key,
      stu_name varchar(10) not null,
      stu_pid varchar(20) not null unique key,
      is_party_menber bit not null default 0
    );
【查】表:
  1.显示当前数据库中所有的表
    语法:show tables;

+----------------------+
| Tables_in_yb12211    |
+----------------------+
| class                |
| student              |
| yb_score             |
| yb_talents           |
+----------------------+

 

  2.展示表结构的结构定义:
    语法:desc 表名;
    案例:
      desc class;

+------------+------------+------+-----+---------+----------------+
| Field      | Type       | Null | Key | Default | Extra          |
+------------+------------+------+-----+---------+----------------+
| class_id   | int        | NO   | PRI | NULL    | auto_increment |
| class_name | varchar(7) | NO   | UNI | NULL    |                |
+------------+------------+------+-----+---------+----------------+

      desc student;

+-----------------+--------------------------+------+-----+---------+----------------+
| Field           | Type                     | Null | Key | Default | Extra          |
+-----------------+--------------------------+------+-----+---------+----------------+
| stu_no          | int(6) unsigned zerofill | NO   | PRI | NULL    |auto_increment  |
| stu_name        | varchar(10)              | NO   |     | NULL    |                |
| stu_pid         | varchar(20)              | NO   | UNI | NULL    |                |
| is_party_menber | bit(1)                   | NO   |     | b'0'    |                |
| fk_class_id     | int                      | NO   | MUL | NULL    |                |
+-----------------+--------------------------+------+-----+---------+----------------+

 

【改】表:
  语法:alter table 表名
    一般在【表外】添加一个外键的约束:
  案例:
    //关联上面的主从表
    alter table student
    add constraint
    foreign key(fk_class_id)
    references class(class_id);
【删】表:
    语法:drop table if exists 库名.表名
    案例:drop table if exists yb1121.student;

posted @ 2023-08-26 15:18  Nakano_Miku  阅读(18)  评论(0)    收藏  举报
返回顶端