1. 程式人生 > >基本sql語法

基本sql語法

value 檢查 其他 drop desc font 部分 tin bsp

SQL 語句主要可以劃分為以下 3 個類別。
? DDLData Definition Languages)語句:數據定義語言,這些語句定義了不同的數據段、
數據庫、表、列、索引等數據庫對象的定義。常用的語句關鍵字主要包括 createdropalter
等。
? DMLData Manipulation Language)語句數據操縱語句,用於添加、刪除、更新和查
詢數據庫記錄,並檢查數據完整性,常用的語句關鍵字主要包括 insertdeleteudpate
select 等。
? DCLData Control Language)語句:數據控制語句,用於控制不同數據段直接的許可和
訪問級別的語句。這些語句定義了數據庫、表、字段、用戶的訪問權限和安全級別。主要的
語句關鍵字包括 grantrevoke

DDL 語句
DDL 是數據定義語言的縮寫,簡單來說,就是對數據庫內部的對象進行創建、刪除、修改的
操作語言。它和 DML 語言的最大區別是 DML 只是對表內部數據的操作,而不涉及到表的定
義、結構的修改,更不會涉及到其他對象。DDL 語句更多的被數據庫管理員(DBA)所使用,
一般的開發人員很少使用。
下面通過一些例子來介紹 MySQL 中常用 DDL 語句的使用方法。

-- 創建表
-- create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
-- 查看表的定義
-- DESC tablename

DESC emp;
-- 查看創建表的 SQL 語句
show create table emp \G;
-- 刪除表
DROP TABLE tablename

-- 修改表 ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
alter table emp modify ename varchar(30);
-- 增加表字段 ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
alter table emp add column age int(3);

-- 刪除表字段,語法如下:
-- ALTER TABLE tablename DROP [COLUMN] col_name
alter table emp drop age;

-- 字段改名,語法如下:
-- ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition[FIRST|AFTER col_name]
alter table emp change sal salary decimal(10,2);
-- 註意:change 和 modify 都可以修改表的定義,不同的是 change 後面需要寫兩次列名,不方便。
-- 但是 change 的優點是可以修改列名稱,modify 則不能。


-- 表改名 ALTER TABLE tablename RENAME [TO] new_tablename
alter table emp RENAME employee;

-- 插入
INSERT INTO t_user (NAME,PASSWORD,cost) VALUES (‘dd‘,‘Zhang123‘,1200),(‘ahah‘,‘Lisi123‘,1200);

-- 更新記錄 UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION]
update t_user set name=‘Lisi‘,password=‘Lisi123‘,cost=1200.00 where id = 4;

-- 刪除記錄 DELETE FROM tablename [WHERE CONDITION]
DELETE from t_user WHERE id=1;

-- 註意:不管是單表還是多表,不加 where 條件將會把表的所有記錄刪除,所以操作時一定要小心。

SELECT * from t_user;

-- 去重distinct
-- 其中,DESC 和 ASC 是排序順序關鍵字,DESC 表示按照字段進行降序排列,ASC 則表示升序
-- 排列,如果不寫此關鍵字默認是升序排列。

-- 對於排序後的記錄,如果希望只顯示一部分,而不是全部,這時,就可以使用 LIMIT 關鍵字來實現,LIMIT 的語法如下:
SELECT ……[LIMIT offset_start起始偏移量,row_count顯示的行數]
在默認情況下,起始偏移量為 0,只需要寫記錄行數就可以,這時候,顯示的實際就是前 n條記錄,
select * from t_user order by id limit 6,2;

基本sql語法