SQL語句概念使用說明
時間:2018-03-08作者:華清遠見
1、SQL分類 SQL語句主要可以劃分以下3個類別。 1)DDL語句:數據定義語句,這些語句定義了不同的數據段、數據庫、表、列、索引等數據庫對象。常用的關鍵字主要包括creat、drop、alter等。 2)DML語句:數據操縱語句,用于添加、刪除、更新和查詢數據庫記錄,并檢查數據完整性。常用的語句關鍵字主要包括 inster、delete、update 和 select等。 3)DCL語句:數據控制語句,用于控制不同數據段直接的許可和訪問級別的語句。這些語句定義了數據庫、表、字段、用戶的訪問權限和安全級別。主要的語句關鍵字包括 grant、revoke等。 2、DDL語句 DDL是數據定義語句的縮寫。是對數據庫內部的對象進行創建、刪除、修改等操作的語言。它和DML語句的最大區別是DML只是對表內部數據操作,而不涉及表的定義、結構的修改,更不會涉及其他對象。DDL語句更多地由數據庫管理員(DBA)使用,開發人員一般很少使用。 1)創建數據庫 CREATE DATABASE dbname 例如,創建數據庫test1,命令執行如下: create database test1 ; 如果需要查詢系統中都存在哪些數據庫,可以使用以下命令查看: show databases ; 在系統中會存在4個由MySQL系統自動創建的數據庫,分別為: information_schema : 主要存儲系統中的一些數據庫對象信息,比如用戶表信息、列信息、權限信息、字符集信息、分區信息等。 cluster : 存儲系統的集群信息。 mysql : 存儲系統的用戶權限信息。 test : 系統自動創建的測試數據庫,任何用戶都可以使用。 選擇要操作的數據庫: USE dbname 例如,選擇數據庫test1 : use test1 ; 查看test1數據庫中創建的所有數據表 : show tables ; 2)刪除數據庫 刪除數據庫的語法,如下: drop database dbname ; 例如,要刪除test1數據庫: drop database test1 ; 3)創建表 在數據庫中創建一張表的基本語法如下: 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 是列的數據類型; constraints 是這個列的約束條件。 例如,創建一個名稱為emp的表。表中包括ename(姓名)、hiredate(雇傭日期)和sal(薪水)三個字段,字段類型分別為varchar(10)、date、int(2) create table emp ( ename varchar(10) , hiredate date , sal decimal (10, 2) , deptno int(2) ) ; 表創建完畢后,如果需要查看一下表的定義,可以使用如下命令: DESC tablename 例如,查看emp表: desc emp ; 如果需要查看創建表的SQL語句,可以使用如下命令: show create table emp \G ; 注:\G 選項的含義是使得記錄能夠按照字段豎向排列,以便更好地顯示內容較長的記錄。 4)刪除表 表的刪除命令如下: DROP TABLE tablename 例如,要刪除數據表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,同時修改字段類型為 int(4): alter table emp change age age1 int(4) ; 修改字段排列順序: 前面介紹的字段增加和修改語句(ADD/CHANG/MODIFY)中,都有一個可選項 first | after column_name ,這個選項可以用來修改字段在表中的位置,ADD增減的新字段默認是加載表的最后位置,而CHANGE/MODIFY默認都不會改變字段的位置。 例如, 將新增的字段 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在標準SQL上的擴展,在其他數據庫上不一定適用。 更改表名,語法如下: ALTER TABLE tablename RENAME [TO] new_tablename 例如,將表 emp 改名為 emp1: alter table emp rename emp1 ; 3、DML語句 DML操作是指對數據庫中表記錄的操作,主要包括表記錄的插入(insert)、更新(update)、刪除(delete)和查詢(select),是開發人員日常使用最多的操作。 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 后面的順序應該和字段的排列順序一致: insert into emp values('lisa', '2001-01-02', '3000', 2); 含可空字段、非空但是含有默認值的字段、自增字段,可以不用再insert后的字段列表中出現,values后面只寫對應字段名稱的 value 。這些沒寫的字段可以自動設置為NULL、默認值、自增的下一個數字。 例如:只對表中的ename和sal顯示插入值: insert into emp (ename, sal) values('dony', '1000') ; 在MySQL中,insert語句可以一次性插入多條記錄。 2)更新記錄 表里的記錄值可以通過update命令進行更改,語法如下: 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條件將會把表的所有記錄刪除,所以操作時一定小心。 4)查詢記錄 基本語法如下: SELECT * FROM tablename [WHERE CONDITION] 例如,將表emp中的記錄全部查詢出來: select * form emp ; 相關資訊
發表評論
|