mysql ddl dml 導出_MySQL:DDL和DML語句,弄明白了嗎?

9fdacffccbba093891c9d3016afd6fec.png

語句分類

DDL(Data Definition Languages)語句:即數據庫定義語句,用來創建數據庫中的表、索引、視圖、存儲過程、觸發器等,常用的語句關鍵字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。增刪改表的結構

DML(Data Manipulation Language)語句:即數據操縱語句,用來查詢、添加、更新、刪除等,常用的語句關鍵字有:SELECT,INSERT,UPDATE,DELETE,MERGE,CALL,EXPLAIN PLAN,LOCK TABLE,包括通用性的增刪改查。增刪改表的數據

DCL(Data Control Language)語句:即數據控制語句,用于授權/撤銷數據庫及其字段的權限(DCL is short name of Data Control Language which includes commands such as GRANT and mostly concerned with rights, permissions and other controls of the database system.)。常用的語句關鍵字有:GRANT,REVOKE。

TCL(Transaction Control Language)語句:事務控制語句,用于控制事務,常用的語句關鍵字有:COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION。

DDL語句

增刪改表的結構,代表字段:create,alter,drop

1.創建表

創建表CREATE

演示:創建員工表

CREATE TABLE employee(

id int(4),

name VARCHAR(20),

gender CHAR(1),

birth DATE,

salary float(2),

job VARCHAR(30),

deptno int(2)

);

設置默認值 DEFAULT

可以通過DEFAULT子句給列指定默認值

CREATE TABLE emptest(

id int(4),

name VARCHAR(20),

gender CHAR(1) DEFAULT 'M',

birth DATE

);

設置列值非空NOT NULL

默認情況下,任何列都允許有空值。非空(NOT NULL)是一種條件約束,用于確保字段值不為空,當某個字段被設置了非空約束條件,這個字段中必須存在有效值,即:當執行插入數據操作時,必須提供這個列的數據;當執行更新操作時,不能給這個列的值設置為NULL。? NOT NULL:非空

CREATE TABLE emptest(

id int(4) ,

name VARCHAR20) NOT NULL,

gender CHAR(1) DEFAULT 'M',

birth DATE

);

2.復制表

復制表中所有數據

CREATE TABLE emptest1 as select * from emptest;

復制表中部分數據

CREATE TABLE emptest2 as select id,name from emptest;

3.修改表

修改表名RENAME

演示:修改表名

alter table emptest rename to/as testemp; #修改表名

create table testemp1 like emptest; #創建表結構.這樣的建表方式,不僅僅是表的結構,連帶著索引也會同時創建.

增加列ALTER ADD

演示:在testemp表下面增加hiredate列,并將默認值設置為當前時間增加列,列只能增加在最后,不能插入現有的列中。

ALTER TABLE testemp ADD(hiredate DATE DEFAULT sysdate);

刪除列 ALTER DROP

刪除列,刪除字段需要從每行中刪掉該字段占據的長度和數據,并釋放在數據塊中占據的空間,如果表記錄比較大,刪除字段可能需要比較長的時間。

演示:刪除testemp表下的hiredate

ALTER TABLE testemp DROP (hiredate);

修改列 ALTER MODIFY

修改列,使用MODIFY可以改變表中列的數據類型、長度和默認值,注意這種修改僅對以后插入的數據有效。另外如果表中已經有數據的情況下,把長度由大改小,有可能不成功,比如原來類型是VARCHAR2(100),其中已經存放了100字節長度的數據,如果改為80字節,則不會修改成功。

演示:修改testemp表中name的長度為30

ALTER TABLE testemp MODIFY(name VARCHAR(30));

4.查看表的數據結構DESC

DESC employee;

5 刪除表DROP

DROP TABLE emptest;

DROP TABLE if exist emptest;

DML語句

用于增刪改表中數據,DML是伴隨TCL事務控制的。代表字段:insert,delete, update

增加記錄INSERT

INSERT語句用來給數據表增加記錄,每次增加一條記錄。所有的DML操作,需要再執行事務提交語句COMMIT才算真正確認了此操作。

語法: insert into tablename(columnname1,columnname2,columnname3,c...) values(value1,value2,value3,....);

字段和值必須一一對應,個數必須相同,數據類型必須一致

演示:想testemp中插入一條記錄

INSERT INTO testemp (id,name,gender) VALUES (1,'張三','M');

COMMIT;

插入數據時忽略字段則是全列插入,順序不能錯誤,如下:

INSERT INTO testemp VALUES (10,'李四','F',sysdate);

COMMIT;

注意:如何插入中文數據
使用DOS命令窗口不能直接插入中文,因為DOS窗口是GBK的編碼方式,但是數據庫表只接受UTF-8
因此可以使用圖形化界面工具插入數據,在DOS窗口中查詢的時候出現亂碼,
可以修改查詢結果集的顯示編碼方式。
mysql> set character_set_results ='GBK';

更新表記錄UPDATE

更新表中的記錄,需要配合WHERE子句使用,否則全表的數據都會被更新。

語法: update tablename set 字段名=字段值,字段名=字段值,字段名=字段值 where 條件

演示:更新testemp表中張三的ID為2

UPDATE testemp SET id=2 WHERE name='張三';

COMMIT;

同時修改兩個類型:

UPDATE testemp SET id=5,name='王五' WHERE name='李四';

COMMIT;

刪除表記錄DELETE

刪除表中的記錄,和UPDATE一樣,需要配合WHERE子句使用,不然會將全表數據刪除。

語法: delete from tableame where 條件

演示:將testemp表中id為2的記錄刪除

DELETE FROM testemp WHERE id=2;

清空表:

DELETE FROM testemp;

67062f113eed8bde8b55dca0627f59a7.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259705.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259705.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

敏捷水手——單體法到微服務之旅

\本文要點\\探究持續四年多的漸進式改革是什么樣子;\\t探索為什么在變革軟件和組織設計時要遵循康威定律;\\t看看如何將領導力應用到不同的團隊、領域和層級;\\t舉例說明變革管理如何依賴于理念和一貫的長遠目標;\\t了解從職能型團…

SQLCMD的介紹

SQLCMD的介紹 原文:SQLCMD的介紹文章轉載自:http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html最近經常用到超過80M *.sql文件的導入問題。上網找了一下,發現超過80M的文件是不能在查詢分析器中執行的。找了些解決方案,個人感覺最簡單的…

Windows下用命令行導出導入MySQL數據庫

方法1:添加“系統環境變量”。我的電腦>屬性>高級>環境變量,在“系統變量”欄目下找到 path 雙擊編輯。先添加;(分號),再添加MySQL安裝目錄下bin文件夾(包含m…

python模擬鼠標拖動滑塊_如何通過拖動滑塊來控制Kivy滾動視圖?

是的,你可以這樣做:在ScrollView中有一個scroll_類型屬性,因此通過設置它,您可以實現您想要的功能。在如果設置scroll_type[bars],則可能需要更改bar_width屬性,因為它的默認值為2,而且它太小&a…

怎樣下載C/C++的免費、開源且跨平臺IDE——Code::Blocks

進入Code::Blocks的官網,官網地址為:http://www.codeblocks.org/home。進入后如下圖所示: 點擊“Home”菜單,跳轉到IDE的下載界面: 有幾種模式可供選擇,我選擇的第一種,Download the binary rel…

網站吞吐量

http://www.blogjava.net/neverend/archive/2011/01/25/343514.html轉載于:https://www.cnblogs.com/sevensole7/archive/2013/06/05/3118966.html

外鏈引入css有哪些方式_HTML+CSS基礎(三) CSS的引入方式和CSS選擇器

一、CSS概念:什么是CSS,CSS說白了就是給頁面添加樣式,讓整個頁面變的好看起來的一種東西,用來定義網頁外觀,如字體、背景、顏色等二、在頁面中使用css的3種常用方式1.行內樣式就是在一個標簽內使用 style 屬性,僅為某一個標簽添加樣式例如文字2.內嵌式就…

混合部署

http://horse87.blog.51cto.com/2633686/1628179轉載于:https://blog.51cto.com/12341672/1893792

Logistic回歸 python實現

Logistic回歸 算法優缺點: 1.計算代價不高,易于理解和實現2.容易欠擬合,分類精度可能不高3.適用數據類型:數值型和標稱型 算法思想: 其實就我的理解來說,logistic回歸實際上就是加了個sigmoid函數的線性回歸…

dataset轉換json格式

轉換json方法 public static string DataToJson(DataSet dt){StringBuilder jsonBuilder new StringBuilder();jsonBuilder.Append("{\"");jsonBuilder.Append("points");jsonBuilder.Append("\":[");for (int i 0; i < dt.Table…

《自控力》總結_完結

《自控力》總結_完結 《自控力》總結_完結 Saturday, December 15, 2012 9:35 PM 《自控力》總結 第一章 1 前額皮質的3個功能區域&#xff1a;“我要”“我不要”“我想要” 2 人的兩個自我&#xff1a;沖動的自己&#xff0c;控制自己。給兩個自己分別起名字&#xff0c;當某…

python 定時自動爬取_python實現scrapy爬蟲每天定時抓取數據的示例代碼

1. 前言。1.1. 需求背景。每天抓取的是同一份商品的數據&#xff0c;用來做趨勢分析。要求每天都需要抓一份&#xff0c;也僅限抓取一份數據。但是整個爬取數據的過程在時間上并不確定&#xff0c;受本地網絡&#xff0c;代理速度&#xff0c;抓取數據量有關&#xff0c;一般情…

博客園win8客戶端開發記錄5-app設置 登錄 回復評論

這段時間完成了博客園cnblogs登錄&#xff0c;注銷和設置的相關功能 &#xff0c;進入軟件&#xff0c; 打開win8的charm setting 選擇設置就是當前軟件的設置選項了&#xff0c; 感覺這有點山寨mac os x系統&#xff08;所有軟件包括當前系統使用統一的設置&#xff09;。 扯遠…

Oracle?修改SYS、system用戶密碼

Oracle 修改SYS、system用戶密碼 by:授客 QQ&#xff1a;1033553122 概念 SYS用戶是Oracle中權限最高的用戶&#xff0c;而SYSTEM是一個用于數據庫管理的用戶。在數據庫安裝完之后&#xff0c;應立即修改SYS,SYSTEM這兩個用戶的密碼&#xff0c;以保證數據庫的安全。 安裝完之…

春節小作業總結1

1、x Double.parseDouble(X);字符串轉Double類型&#xff1b; 2、使用正則表達式判斷輸入的是字母還是數字 要import java.util.regex.Pattern 和 java.util.regex.Matcher public boolean isNumeric(String str){ Pattern pattern Pattern.compile("[0-9]*&q…

簡單工廠模式,工廠方法模式,抽象工廠模式,spring的狂想

菜鳥D在項目中遇見一個比較糾結的高耦合&#xff0c;所以就想辦法來解耦。情況是這樣的&#xff1a;系統通過用戶選擇treeview控件的節點判斷調用不同的處理&#xff0c;這些處理中某些東西又是類似的。同事的建議是采用簡單工廠&#xff0c;耦合就耦合吧&#xff0c;反正treev…

堆、棧及靜態數據區詳解 轉

內存分為代碼區、全局數據區、堆區和棧區。堆一般存放動態數據&#xff0c;棧里一般存放局部成員。 關于堆棧和堆的概念[問題] C中創建本地&#xff08;或者說局域&#xff09;變量是在堆棧&#xff08;stack&#xff09;中分配內存地址&#xff0c;而創建全局變量則是在堆&…

如何使用CSS實現居中

前言&#xff1a; 這一篇主要是翻譯 《how-to-center-anything-with-css》這一篇文章的主要內容&#xff0c;再加上自己的一些概括理解&#xff1b;主要問題是解決垂直居中的問題。我們知道實現水平居中的方式很多種&#xff0c;比如&#xff1a; text-align:center; margin:0 …

java布局_運用 BoxLayout 進行 Swing 控件布局

引言在用戶使用 Java Swing 進行用戶界面開發過程中&#xff0c;會碰到如何對 Java Swing 的控件進行布局的問題。Swing 的控件放置在容器 (Container) 中&#xff0c;容器就是能夠容納控件或者其它容器的類&#xff0c;容器的具體例子有 Frame、Panel 等等。容器需要定義一個布…

js變量類型

js中有null和undefined&#xff0c;null是指對象不存在&#xff0c;undefined是指原生數據不存在 var h {name:lisi,age:28};console.log(h.name)//對象用的是點語法&#xff0c;php中是name->lisi 下面是數組&#xff0c;數組用的是【】語法 1 var arr [a,3,hello,true];…