資料庫的定義,選擇和洗掉:
create database 資料庫名;
use 資料庫名;
drop database 資料庫名;
資料表的定義和洗掉
create table表名;
drop table 表名;
//創建一個名字為 s 的資料表
create table s
-> (sno char(6) not null unique,
-> sname char(20) unique,
-> sex char(1),
-> age int);
該資料表由學號sno,學生姓名sname,性別sex,年齡age四個屬性組成,因為學號是唯一的所以不能為空,并且值唯一,在名字不會重復的情況下,名字的取值為唯一,
資料型別(常用):
- 整形 int
- 浮點型 float double
- 定長字串 char(n)
- 變長字串 varchar(n)
- 日期型 date
完整性約束(常用)
- 主碼約束 primary key
- 參照完整性約束 foreign key (<屬性>) references <表名>(<屬性名>)
- 唯一性約束 unquie
- 非空值約束 not null
//查看資料表的資料結構
describe tables 資料表名;
//查看該資料庫中的資料表
show tables;
//中止命令
ctrl+c
//為 s 表增加主鍵約束
alter table s add constraint primary key(sno);
//創建一個學生選課資訊sc表
create table sc
-> (sno char(6),
-> cno char(6),
-> grade int);
//添加主鍵約束(在sc表中學號和課程號一起才能唯一表示一個學生所選課程的資訊)
alter table sc add constraint primary key(sno,cno);
//給sc表添加外鍵約束(fk是給外鍵起的名字),references參照了某個表的某些屬性(參照了s表中的sno這一屬性)
alter table sc add constraint fk foreign key(sno) references s(sno);
添加主碼的方式
- 創建資料表的時候添加,在列出關系模式的屬性時,在屬性及其型別后加上保留字primary key
- 創建表的時候,在列出關系模式的所有屬性后,再附加一個宣告:primary key(<屬性>,…)
- alter table 表明 add constraint primary key(<屬性>,…)
//在創建s表的時候添加主鍵約束,在列出關系模式的屬性時,在屬性及其型別后加上保留字primary key
-> (sno char(6) not null unique primary key,
-> sname char(20) unique,
-> sex char(1),
-> age int);
//或者是在列出關系模式的所有屬性后,再附加一個宣告
-> (sno char(6) not null unique,
-> sname char(20) unique,
-> sex char(1),
-> age int,
->primary key(sno));
//第三種:上面的alter方法
alter table s add constraint primary key(sno);
添加外鍵約束的方法
- 創建資料表的時候添加,在列出關系模式的屬性時,在屬性及其型別后加上保留字foreign key
- 創建表的時候,在列出關系模式的所有屬性后,再附加一個宣告:primary key(<屬性>,…)
- alter table 表明 add constraint primary key(<屬性>,…)
//創建表的時候,在屬性及其型別后添加
create table sc
-> (sno char(6) references s(sno),
-> cno char(6),
-> grade int);
//創建表的時候,在列出關系模式的所有屬性后,再附加一個宣告
create table sc
-> (sno char(6),
-> cno char(6),
-> grade int,
-> foreign key(sno) references s(sno));
//以及上面用alter方法添加
洗掉主鍵和外鍵約束
alter table sc drop primary key;
alter table sc drop foreign key fk;
修改基本表
alter table <表名 > [add(增加新列和新的完整性約束條件),drop(洗掉指定的列或完整性約束條件),alter(用于修改列名和資料型別)];
alter table 表名 add <列名(屬性)> <資料型別>[完整性約束] ;
【注】:若一個屬性是非空值約束,則該屬性不允許洗掉和修改
修改表中的資料型別
alter table 表名 modify <屬性> <要修改成的資料型別>;
【注】:修改原有的列定義有可能會破壞已有資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/235559.html
標籤:其他
