MySQL语言解析----1
SQL:Structure Query Language 結(jié)構(gòu)查詢語言,是所有數(shù)據(jù)庫操作的基礎(chǔ)語言,是和數(shù)據(jù)庫軟件交互的基礎(chǔ)接口。
?
一、SQL語言分類
DDL語言:Data Definition Language 數(shù)據(jù)定義語言,實(shí)現(xiàn)數(shù)據(jù)庫對(duì)象的定義,例如創(chuàng)建,刪除,修改等動(dòng)作。
DML語言:Data Manipulation Language 數(shù)據(jù)操作語言,實(shí)現(xiàn)對(duì)象內(nèi)容的變更,是操作最頻繁的動(dòng)作,例如insert,update,delete
DCL語言:Data Control Language 數(shù)據(jù)控制語言,實(shí)現(xiàn)權(quán)限控制,例如grant,revoke等
DQL語言:Data Query Language 數(shù)據(jù)查詢語言,實(shí)現(xiàn)數(shù)據(jù)查詢,selec動(dòng)作,是最簡(jiǎn)單同時(shí)也是最復(fù)雜的語句
?
二、SQL基本操作
表(table):數(shù)據(jù)存放的基本對(duì)象,由很多行(row)數(shù)據(jù)組成的數(shù)據(jù)集合,每行擁有多個(gè)屬性(列) ,excel表格與類似。
表的本質(zhì)就是關(guān)系,將各個(gè)數(shù)據(jù)元素串聯(lián)起來。
?
1.數(shù)據(jù)庫級(jí)別操作
(1)查看當(dāng)前數(shù)據(jù)庫:
show databases; #不要對(duì)系統(tǒng)數(shù)據(jù)庫做修改刪除動(dòng)作
(2)創(chuàng)建數(shù)據(jù)庫
create database ykyk;
(3)選擇操作數(shù)據(jù)庫
use ykyk;
(4)刪除數(shù)據(jù)庫
drop? database ykyk;
?
2.數(shù)據(jù)庫表級(jí)別操作
(1)查看當(dāng)前數(shù)據(jù)庫中的表
mysql> use ykyk;
mysql> show tables;
(2)創(chuàng)建表的基本語法
CREATE TABLE t_name ( field_name1 datatype1 CONSTRAINT1,....);
create table test(id int,name varchar(20));
(3)查看表結(jié)構(gòu)
desc? test;
(4)查看表的構(gòu)建語句
show? create table test \G;
(5) 修改表結(jié)構(gòu)
alter table ….
alter table test add gender char(1);
(6)刪除表
drop table test;
(7)查看表的狀態(tài)(包括視圖);
show table status from employees \G;
3.特殊類型表? -- 臨時(shí)表
數(shù)據(jù)和表結(jié)構(gòu)僅存在一個(gè)會(huì)話中
在各個(gè)會(huì)話中屬于私有狀態(tài)
create temporary table temp(id int);
二、DML語言
1.insert插入
語法:
INSERT INTO t_name [(field1, field2,...] values(value1,value2..);
INSERT INTO t_name [(field1, field2,...] SELECT ...;
特點(diǎn):
1)可以每次插入一條數(shù)據(jù);
2)可以每次插入多條數(shù)據(jù);
3)可以使用子查詢插入結(jié)果集,但是要注意列的列表要和對(duì)應(yīng)的數(shù)值嚴(yán)格匹配。
2.update更新
語法:
UPDATE t_name SET field1=value1,field2=value2,... WHERE condition;
注意:更新數(shù)據(jù)要特別注意條件,防止更新范圍過大
3.delete刪除
語法:
DELETE FROM t_name WHERE condition;
刪除數(shù)據(jù)也要注意刪除條件,防止刪除范圍擴(kuò)大
4.truncate數(shù)據(jù)
truncate t_name;
?
?
truncate和delete的區(qū)別
1)delete是DML語言,可以回滾,truncate是DDL語言,刪除不可回滾;
2)delete可以刪除部分?jǐn)?shù)據(jù),truncate刪除整個(gè)表的數(shù)據(jù);
3)delete需要的代價(jià)太大,需要記錄更多的undo信息和redo日志,truncate需要的代價(jià)很小。
轉(zhuǎn)載于:https://www.cnblogs.com/ykyk1229/p/8516290.html
總結(jié)
以上是生活随笔為你收集整理的MySQL语言解析----1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [译]git revert
- 下一篇: 151031