程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫上:DDL語句的基礎鞏固

MySQL數據庫上:DDL語句的基礎鞏固

編輯:MySQL綜合教程

MySQL數據庫上:DDL語句的基礎鞏固


SQL語言包括四種主要程序設計語言類別的語句:數據定義語言(DDL),數據操作語言(DML),數據控制語言(DCL)和事務控制語言。

數據庫模式定義語言DDL(Data Definition Language),是用於描述數據庫中要存儲的現實世界實體的語言。一個數據庫模式包含該數據庫中所有實體的描述定義。數據庫模式定義語言並非程序設計語言,DDL數據庫模式定義語言是SQL語言(結構化程序設計語言)的組成部分。

下面給出一個完整的DDL語句練習過程,在MySQL6測試通過:

//創建數據庫
create database if not exists mydb;
//刪除數據庫
 drop database mydb;
//使用數據庫
use mydb;
//建表
 create table tb1
 (
 id int,
 name varchar(255) default 'anonymity',
 info text
 );

//查看該數據庫的表
 show tables;
 //查看表結構
 desc tb1;
 //截斷表:刪除表內所有數據但是保留表結構。(DDL)相對於delete(DML)執行效率更高
 truncate tb1;
 //添加主鍵約束
 alter table tb1 modify id int primary key;
 //添加唯一約束,即不允許出現重復值,但是可以出現多個null,因為null不等於null
 alter table tb1 modify name varchar(255) unique;
 
 //建表並添加主鍵、外鍵約束
 create table tb2
 (
 id int primary key auto_increment,
 fid int,
 name varchar(255) default 'anonymity' not null,
 info text,
 #建立外鍵約束,約束名為tb2_fk,
 constraint tb2_fk foreign key(fid) references tb1(id)
 );
 //刪除外鍵約束
 alter table tb2 drop foreign key tb2_fk;
 //添加外鍵約束
 alter table tb2 add foreign key(fid) references tb1(id);

MySQL對check約束的支持並不太好,雖然可以定義此約束,單沒有任何作用

 //添加check約束,會添加成功,但不會生效
 alter table tb1 add check(id>5);
 //下面可以正常執行
 insert into tb1 values(1,'a','one');

而Oracle數據庫可以正常使用check約束,下面是Oracle 10g 的運行效果:

 //oracle數據庫支持check約束
 create table tb3
(
id number(8),
name varchar(255),
check(id>100)
);
//不滿足check約束將會出錯
insert into tb3 values(600,'six');
insert into tb3 values(6,'six');

下面是控制台的輸出:

-------------------------------------------------------------------------------------
SQL> create table tb3
  2  (
  3  id number(8),
  4  name varchar(255),
  5  check(id>100)
  6  );
Table created

SQL> insert into tb3 values(6,'six');
insert into tb3 values(6,'six')
ORA-02290: check constraint (SCOTT.SYS_C005457) violated

SQL> insert into tb3 values(600,'six');
1 row inserted
-------------------------------------------------------------------------------------


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved