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

2)修改表
① 修改表名
-- 將表名student改為stu。 rename table student to stu; -- 修改數(shù)據(jù)庫名。 rename database 舊名 to 新名;
② 修改表結(jié)構(gòu) 修改表結(jié)構(gòu)中包含給表添加某個新字段,修改表中某個字段,刪除表中某個字段;
Ⅰ 給表添加某個新字段
"添加字段:給student表,添加一個新的字段。" 1)默認是追加,即在最后一列添加新的字段。 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;
Ⅱ 修改表中某個字段
1)"修改字段名稱":change -- 修改字段age的名稱,為sage。 -- modify不能直接修改字段名稱,其余能用change的地方,就可以用modify。 alter table student change age sage int; 2)"修改字段類型":既可以使用change,還可以使用modify。 "還可以修改varchar(m)中這個m的長度"。 -- 修改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;
Ⅲ 刪除表中某個字段
-- 刪除classid這個字段 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ù)定義語言DDL示例詳解的詳細內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)定義語言DDL的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql Non-Transactional Database Only(只支持MyISAM)
按照discuz官方的建議,選的都是Non-Transactional Database Only 只支持MyISAM,其實默認都安裝也挺好2016-04-04
數(shù)據(jù)庫Sql實現(xiàn)截取時間段和日期實例(SQL時間截取)
在許多情況下你也許只想得到日期和時間的一部分,而不是完整的日期和時間,下面這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫Sql實現(xiàn)截取時間段和日期(SQL時間截取)的相關(guān)資料,需要的朋友可以參考下2023-05-05
Mysql主從同步Last_IO_Errno:1236錯誤解決方法
最近遇到Mysql主從同步的Last_IO_Errno:1236錯誤問題,然后在網(wǎng)上查找相關(guān)解決方案,這里分享給大家,供參考。2017-10-10
MySQL更新存放JSON的字段、\“ 轉(zhuǎn)義成 “的問題描述
本篇介紹在執(zhí)行MySQL線上變更時遇到的問題,表現(xiàn)為"更新JSON字段時,實際更新的值與SQL語句中的值不一致,JSON格式錯誤",本文給大家分享問題描述及解決方案,感興趣的朋友一起看看吧2022-12-12
將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫具體步驟
MySQL有多種方法導(dǎo)入多個.sql文件,下面這篇文章主要介紹了將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫的具體步驟,文中將實現(xiàn)步驟介紹的非常詳細,需要的朋友可以參考下2023-10-10

