SQL語句概念使用說明
時(shí)間:2018-03-08作者:華清遠(yuǎn)見
1、SQL分類 SQL語句主要可以劃分以下3個(gè)類別。 1)DDL語句:數(shù)據(jù)定義語句,這些語句定義了不同的數(shù)據(jù)段、數(shù)據(jù)庫、表、列、索引等數(shù)據(jù)庫對(duì)象。常用的關(guān)鍵字主要包括creat、drop、alter等。 2)DML語句:數(shù)據(jù)操縱語句,用于添加、刪除、更新和查詢數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性。常用的語句關(guān)鍵字主要包括 inster、delete、update 和 select等。 3)DCL語句:數(shù)據(jù)控制語句,用于控制不同數(shù)據(jù)段直接的許可和訪問級(jí)別的語句。這些語句定義了數(shù)據(jù)庫、表、字段、用戶的訪問權(quán)限和安全級(jí)別。主要的語句關(guān)鍵字包括 grant、revoke等。 2、DDL語句 DDL是數(shù)據(jù)定義語句的縮寫。是對(duì)數(shù)據(jù)庫內(nèi)部的對(duì)象進(jìn)行創(chuàng)建、刪除、修改等操作的語言。它和DML語句的最大區(qū)別是DML只是對(duì)表內(nèi)部數(shù)據(jù)操作,而不涉及表的定義、結(jié)構(gòu)的修改,更不會(huì)涉及其他對(duì)象。DDL語句更多地由數(shù)據(jù)庫管理員(DBA)使用,開發(fā)人員一般很少使用。 1)創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE dbname 例如,創(chuàng)建數(shù)據(jù)庫test1,命令執(zhí)行如下: create database test1 ; 如果需要查詢系統(tǒng)中都存在哪些數(shù)據(jù)庫,可以使用以下命令查看: show databases ; 在系統(tǒng)中會(huì)存在4個(gè)由MySQL系統(tǒng)自動(dòng)創(chuàng)建的數(shù)據(jù)庫,分別為: information_schema : 主要存儲(chǔ)系統(tǒng)中的一些數(shù)據(jù)庫對(duì)象信息,比如用戶表信息、列信息、權(quán)限信息、字符集信息、分區(qū)信息等。 cluster : 存儲(chǔ)系統(tǒng)的集群信息。 mysql : 存儲(chǔ)系統(tǒng)的用戶權(quán)限信息。 test : 系統(tǒng)自動(dòng)創(chuàng)建的測試數(shù)據(jù)庫,任何用戶都可以使用。 選擇要操作的數(shù)據(jù)庫: USE dbname 例如,選擇數(shù)據(jù)庫test1 : use test1 ; 查看test1數(shù)據(jù)庫中創(chuàng)建的所有數(shù)據(jù)表 : show tables ; 2)刪除數(shù)據(jù)庫 刪除數(shù)據(jù)庫的語法,如下: drop database dbname ; 例如,要?jiǎng)h除test1數(shù)據(jù)庫: drop database test1 ; 3)創(chuàng)建表 在數(shù)據(jù)庫中創(chuàng)建一張表的基本語法如下: CREATE TABLE tablename ( column_name_1 column_type_1 constraints , column_name_2 column_type_2 constraints , . . . column_name_n column_type_n constraints ) 其中 , column_name 是列的名字;column_type 是列的數(shù)據(jù)類型; constraints 是這個(gè)列的約束條件。 例如,創(chuàng)建一個(gè)名稱為emp的表。表中包括ename(姓名)、hiredate(雇傭日期)和sal(薪水)三個(gè)字段,字段類型分別為varchar(10)、date、int(2) create table emp ( ename varchar(10) , hiredate date , sal decimal (10, 2) , deptno int(2) ) ; 表創(chuàng)建完畢后,如果需要查看一下表的定義,可以使用如下命令: DESC tablename 例如,查看emp表: desc emp ; 如果需要查看創(chuàng)建表的SQL語句,可以使用如下命令: show create table emp \G ; 注:\G 選項(xiàng)的含義是使得記錄能夠按照字段豎向排列,以便更好地顯示內(nèi)容較長的記錄。 4)刪除表 表的刪除命令如下: DROP TABLE tablename 例如,要?jiǎng)h除數(shù)據(jù)表emp: drop table emp ; 5)修改表 修改表類型 ,語法如下: ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST|AFTER col_name] 例如,修改表emp的ename字段定義,將 varchar(10)改為varchar(20): alter tabke emp modify ename varchar(20); 增加表字段,語法如下: ALTER TABLE tablename ADD[COLUMN] column_definition [FIRST|AFTER col_name] 例如,在表emp中新增加字段 age ,類型為 int(3): alter table emp add column age int(3); 刪除表字段,語法如下: ALTER TABLE tablename DROP [COLUMN] col_name 例如,將字段age刪除: alter table emp drop column age ; 字段改名,語法如下: ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] 例如,將age改名為age1,同時(shí)修改字段類型為 int(4): alter table emp change age age1 int(4) ; 修改字段排列順序: 前面介紹的字段增加和修改語句(ADD/CHANG/MODIFY)中,都有一個(gè)可選項(xiàng) first | after column_name ,這個(gè)選項(xiàng)可以用來修改字段在表中的位置,ADD增減的新字段默認(rèn)是加載表的最后位置,而CHANGE/MODIFY默認(rèn)都不會(huì)改變字段的位置。 例如, 將新增的字段 birth date 加在 ename之后: alter table emp add birth date after ename ; 修改 age 字段,將它放在最前面: alter table emp modify age int(3) first ; 注意:CHANGE/FIRST|AFTER COLUMN 都屬于MySQL在標(biāo)準(zhǔn)SQL上的擴(kuò)展,在其他數(shù)據(jù)庫上不一定適用。 更改表名,語法如下: ALTER TABLE tablename RENAME [TO] new_tablename 例如,將表 emp 改名為 emp1: alter table emp rename emp1 ; 3、DML語句 DML操作是指對(duì)數(shù)據(jù)庫中表記錄的操作,主要包括表記錄的插入(insert)、更新(update)、刪除(delete)和查詢(select),是開發(fā)人員日常使用最多的操作。 1)插入記錄 向表中插入記錄的基本語法如下: INSERT INTO tablename (field1 , field2 ,. . . ,fieldn) VALUES(value1 , value2 , . . . ,valuen); 例如,向表 emp 中插入記錄: insert into emp (ename, hiredate, sal, deptno) values ('zzx1', '2000-01-01', '2000', 1); 也可以不指定字段名稱,但是 values 后面的順序應(yīng)該和字段的排列順序一致: insert into emp values('lisa', '2001-01-02', '3000', 2); 含可空字段、非空但是含有默認(rèn)值的字段、自增字段,可以不用再insert后的字段列表中出現(xiàn),values后面只寫對(duì)應(yīng)字段名稱的 value 。這些沒寫的字段可以自動(dòng)設(shè)置為NULL、默認(rèn)值、自增的下一個(gè)數(shù)字。 例如:只對(duì)表中的ename和sal顯示插入值: insert into emp (ename, sal) values('dony', '1000') ; 在MySQL中,insert語句可以一次性插入多條記錄。 2)更新記錄 表里的記錄值可以通過update命令進(jìn)行更改,語法如下: UPDATE tablename SET field1 = value1,field2 = value2,. . .,fieldn = valuen [WHERE CONDITION] 例如,將表emp中ename為 "lisa"的sal從3000更改為4000: update emp set sal=4000 whereename='lisa' ; 3) 刪除記錄 使用delete刪除記錄,語法如下: DELETE FROM tablename [WHERE CONDITION] 例如,在emp中將ename為dony的記錄全部刪除: delete from emp where ename='dony' ; 注意:不加where條件將會(huì)把表的所有記錄刪除,所以操作時(shí)一定小心。 4)查詢記錄 基本語法如下: SELECT * FROM tablename [WHERE CONDITION] 例如,將表emp中的記錄全部查詢出來: select * form emp ; 相關(guān)資訊
發(fā)表評(píng)論
|
全國咨詢電話:400-611-6270,雙休日及節(jié)假日請(qǐng)致電值班手機(jī):15010390966
在線咨詢: 曹老師QQ(3337544669), 徐老師QQ(1462495461), 劉老師 QQ(3108687497)
企業(yè)培訓(xùn)洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)
Copyright 2004-2018 華清遠(yuǎn)見教育科技集團(tuán) 版權(quán)所有 ,京ICP備16055225號(hào),京公海網(wǎng)安備11010802025203號(hào)