数据库(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;

浙公网安备 33010602011771号