資料庫高階 DDL語言

2021-09-26 21:17:15 字數 4080 閱讀 8529

create database pai08408 charset=utf8;
drop database if exists pai08408;
修改資料庫的名字

rename database pai08408 to pai0408; (適用版本)
create table 表名(

欄位名 欄位的型別 欄位的約束條件,

欄位名 欄位的型別 欄位的約束條件,

欄位名 欄位的型別 欄位的約束條件

)

案例:

create table students(

id int unsigned auto_increment primary key not null,

stuname varchar(20),

age smallint unsigned default 0,

gender enum('女','男','**大佬','人妖','其他'),

height decimal(3,2),

weight decimal(5,2),

cls_id int unsigned default 0

)

not null  非空約束,保證當前的字段不能為空

default 預設,如果當前的字段沒有輸入資料,使用預設值填充,保證該欄位存在預設值

primary key 主鍵,物理上的儲存順序,保證該欄位不能為空,保證資料的唯一性

foreign key 外來鍵,限制兩張表之間的關係,用來約束當前表與另外一張表之間的關係

unique 唯一值,表示該字段在當前的資料表中不允許出現重複值

外來鍵建立的案例

create table newstudent(

id int unsigned auto_increment primary key not null,

stuname varchar(20),

age smallint unsigned default 0,

gender enum('女','男','**大佬','人妖','其他'),

height decimal(3,2),

weight decimal(5,2),

cls_id int unsigned,

foreign key(cls_id) references newclass(id)

);desc newstudent;

注意點:

建立外來鍵的步驟

(1) 定義外來鍵的欄位名以及欄位的型別,注意和關聯表的字段型別要求一致

(2)建立外來鍵之間的連線foreign key(當前表的外來鍵字段) references 產生外來鍵關聯那張表的表名(外來鍵連線字段)

(3) 班級------學生表 班級(主表) 學生表是從表 外來鍵寫從表身上

刪除性別這個字段

alter table users drop gender;

3.2.1 刪除在建立表的時候,已經設定約束名的字段

1、先展示一下建立表的語句,查詢到建立表的外來鍵的時候起的約束名

[外鏈轉存失敗(img-jejhwaph-1567654607157)(1566550913405.png)]

2、刪除

alter table users drop foreign key pk;

alter table users drop cls_id;

desc users;

3.2.2 刪除在建立表的時候,沒有設定約束名的字段

1、先展示一下建立表的語句,查詢到建立表的外來鍵的時候起的約束名

show create table 表名
[外鏈轉存失敗(img-nmjl9od3-1567654607160)(1566551162107.png)]

2、刪除

alter table newstudent drop foreign key newstudent_ibfk_1;

alter table newstudent drop cls_id;

desc newstudent;

3.2.3 總結
1、檢視外來鍵約束的約束名

show create table 表名;

2、解除外來鍵字段的外來鍵約束

alter table 表名 drop foreign key 外來鍵約束名;

alter table 表名 drop 外來鍵字段的欄位名

刪除唯一值索引,

alter table users drop index uname;

# 刪除主鍵

alter table users drop primary key;

1、使用change方法

alter table 表名 change column 原來的欄位名 新的欄位名 欄位的型別 欄位的約束;

2、modify

alter table 表名 modify column 欄位名 字段型別 欄位的約束;

注意點:

change需要修改的是字段的名稱、欄位的型別、欄位的約束

modify需要修改的是字段的型別、欄位的約束

/*

修改資料表的字段

alter table 表名 add|drop|change|modify 欄位名 [型別和約束]

*/

/*

複製表結構,僅僅是結構(字段),資料是不複製的

create table 複製表的表名 like 被複製的表的表名;

*/create table aaa like users;

desc aaa;

desc users;

/*複製表的結構以及資料

create table 複製表名 select * from 被複製的表 where 引導條件;

*/create table bbb select * from users;

create table ccc select uage,phone from users;

create table ddd select uage,phone from users where id=1;

create table eee select uage,phone from users where 2=3;

不需要手動增加值,讓指定的列可以自動增長,系統提供的

檢視相關的屬性

show variables like 『%auto_increment%』;

檢視全域性系統變數

show global variables;

設定自增長欄位的步長

set auto_increment_increment=3;

create table test_colum(

id int unsigned primary key auto_increment,

uname varchar(20)

);set auto_increment_increment=10;

set auto_increment_offset=2;

create table test_colum(

id int unsigned primary key auto_increment,

uname varchar(20)

);注意點:

1、設定初始值:set auto_increment_offset=2;

2、設定步長:set auto_increment_increment=10;

3、步長與初始值是系統的全域性變數,所以一但修改之後,全域性都生效,全域性受影響

4、一張表有乙個自增長字段

5、auto_increment不一定要和主鍵搭配,但是它一定要和約束搭配

6、auto_increment的資料型別是數值型別的

DDL 資料庫定義語言

建表 id name age drop talbe if esists student create table student id int primary keyauto increment,name varchar 20 not null,age int not null default 18...

資料庫定義語言DDL

sql是結構化查詢語句,sql是專門為資料庫而建立的操作命令集。是一種功能齊全的資料庫語言。在使用它時,只需要發出 做什麼 的命令,怎麼做 是不用使用者考慮的。ddl 資料定義語言 用來定義資料庫物件,建立庫 表 列等。dml 資料操作語言 用來運算元據庫表中的記錄 dql 資料查詢語言 用來查詢資...

DDL(資料庫定義語言)

ddl 資料庫定義語言 1.基本操作 檢視所有資料庫名稱 語法 show databases 切換資料庫 語法 use test 切換到test資料庫 顯示表 語法 show tables 查詢表 語法 select form goods 2.運算元據庫 2.1建立資料庫 create databs...