MySQL教程數(shù)據(jù)定義語(yǔ)言DDL示例詳解
如果你是剛剛學(xué)習(xí)MySQL的小白,在你看這篇文章之前,請(qǐng)先看看下面這些文章。有些知識(shí)你可能掌握起來(lái)有點(diǎn)困難,但請(qǐng)相信我,按照我提供的這個(gè)學(xué)習(xí)流程,反復(fù)去看,肯定可以看明白的,這樣就不至于到了最后某些知識(shí)不懂卻不知道從哪里下手去查。
《MySQL詳細(xì)安裝教程》
《MySQL完整卸載教程》
《這點(diǎn)基礎(chǔ)都不懂,怎么入門MySQL?》
《charset=utf8的原理,你真的弄明白了嗎?》
《MySQL數(shù)據(jù)類型詳解》
1.SQL語(yǔ)言的基本功能介紹
SQL是一種結(jié)構(gòu)化查詢語(yǔ)言,主要有如下幾個(gè)功能:
數(shù)據(jù)定義語(yǔ)言:全稱是Data Definition Language,簡(jiǎn)稱是DDL;數(shù)據(jù)操縱語(yǔ)言:全稱是Data Manipulation Language,建成時(shí)DML;數(shù)據(jù)控制語(yǔ)言:全稱是Data Control Language,建成時(shí)DCL;
其中最重要的是數(shù)據(jù)操縱語(yǔ)言(DML),里面包含了我們常用的功能(增、刪、改、查)。對(duì)于數(shù)據(jù)定義語(yǔ)言(DDL)和數(shù)據(jù)控制語(yǔ)言(DCL),作為一名數(shù)據(jù)分析師,我們只需要了解,知道怎么用就行了。今天就從DDL語(yǔ)言開始,帶著大家學(xué)習(xí)。
2.數(shù)據(jù)定義語(yǔ)言的用途
主要是對(duì)數(shù)據(jù)庫(kù)對(duì)象(數(shù)據(jù)庫(kù)、表、視圖、索引)的操作。
DDL常用命名如下:
| 創(chuàng)建 | 修改 | 銷毀 |
|---|---|---|
| create | alter | drop |
3.數(shù)據(jù)庫(kù)的創(chuàng)建和銷毀
-- 創(chuàng)建數(shù)據(jù)庫(kù):創(chuàng)建student數(shù)據(jù)庫(kù) create database if not exists student; -- 銷毀數(shù)據(jù)庫(kù)(少用) drop database if exists student; -- 創(chuàng)建數(shù)據(jù)庫(kù)后,當(dāng)進(jìn)行對(duì)表的操作之前,必須要先使用數(shù)據(jù)庫(kù)。 use student;
4.數(shù)據(jù)庫(kù)表的操作(所有演示都以student表為例)
1)創(chuàng)建表
1)創(chuàng)建表:創(chuàng)建student表
-- 創(chuàng)建表結(jié)構(gòu)時(shí)需要描述的字段信息
create table student(
sid int,
sname varchar(20),
age int
)charset=utf8;
2)"完整的建表語(yǔ)句"應(yīng)該這樣寫
create table student(
sid int,
sname varchar(20),
age int
)engine=InnoDB default charset=utf8;
注:由于默認(rèn)使用的engine就是InnoDB,這個(gè)見表時(shí)候可以不寫。因?yàn)閷?duì)于學(xué)習(xí)的你,使用這個(gè)
默認(rèn)引擎就夠了。但是charset=utf8這個(gè)最好是加上,尤其是在CMD黑窗口中輸入中文的時(shí)候,
不寫這一句,會(huì)出現(xiàn)類似如下錯(cuò)誤:
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5' for column 'sname' at row 1
查看完整建表的SQL語(yǔ)句如下:

2)修改表
① 修改表名
-- 將表名student改為stu。 rename table student to stu; -- 修改數(shù)據(jù)庫(kù)名。 rename database 舊名 to 新名;
② 修改表結(jié)構(gòu) 修改表結(jié)構(gòu)中包含給表添加某個(gè)新字段,修改表中某個(gè)字段,刪除表中某個(gè)字段;
Ⅰ 給表添加某個(gè)新字段
"添加字段:給student表,添加一個(gè)新的字段。" 1)默認(rèn)是追加,即在最后一列添加新的字段。 alter table student add sex varchar(20); 2)在首位添加新的字段,使用first關(guān)鍵字。 alter table student add classid int first; 3)在指定位置添加新的字段,使用after關(guān)鍵字(在指定字段后面添加新字段)。 alter table student add birthday date after age; "查看表結(jié)構(gòu):可以幫助我們了解表的結(jié)構(gòu)信息" desc student;
Ⅱ 修改表中某個(gè)字段
1)"修改字段名稱":change -- 修改字段age的名稱,為sage。 -- modify不能直接修改字段名稱,其余能用change的地方,就可以用modify。 alter table student change age sage int; 2)"修改字段類型":既可以使用change,還可以使用modify。 "還可以修改varchar(m)中這個(gè)m的長(zhǎng)度"。 -- 修改sname字段的數(shù)據(jù)類型由varchar(20)為varchar(50)。 -- 可以使用如下兩種方式: alter table student change sname sname varchar(50); alter table student modify sname varchar(50); 3)"修改字段位置":可以配合使用first、after關(guān)鍵字。 -- 將sname字段,放置到age后面??梢允褂萌缦聝煞N方式: alter table student change sname sname varchar(50) after age; alter table student modify sname varchar(50) after age;
Ⅲ 刪除表中某個(gè)字段
-- 刪除classid這個(gè)字段 alter table student drop classid;
③ 清空表:清空表中所有數(shù)據(jù)。
truncate只刪除數(shù)據(jù)但是不刪除表結(jié)構(gòu);
注意truncate與delete的區(qū)別,都用于刪除表中數(shù)據(jù),區(qū)別在哪里呢?可以自行查看。
truncate table stu;
3)銷毀表
drop table stu;
以上就是MySQL教程數(shù)據(jù)定義語(yǔ)言DDL示例詳解的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)定義語(yǔ)言DDL的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信