標籤:esc 引擎 完整 分屏顯示 dba mysql ble not 系統
一、 DDL(data definition language)語句:資料定義語言 (Data Definition Language)。
這些語句定義了不同的資料區段、資料庫、表、列、索引等資料庫物件。常用語句關鍵字:create、drop、alter等。
- 建立資料庫:CREATE DATABASE dbname (eg: mysql>create database test1; 查看系統中所有的資料庫:mysql>show databases; )
- 選擇資料庫:USE dbname (eg: mysql>use test1; 查看test1裡所有的資料表:mysql>show tables; )
- 刪除資料庫:drop database dbname; (eg: mysql>drop database test1;
- 建立表:CREATE TABLE tablename(column_name_1 column_type_1 constraints,
column_name_1 column_type_1 constraints,
...); 查看錶的定義:desc tablename
5.有時需要查看建立表的SQL語句,
中除了可以看到staff表定義以外,還可以看到表的engine(儲存引擎)和charset(字元集)等資訊。“\G”選項含義是使記錄能夠按照欄位豎向排列,以便更好地顯示內容較長的記錄。
6.刪除表:DROP TABLE tablename (eg: mysql>drop test;)
7.修改表:
(1)修改表類型,ALTER TABLE tablename MODIFY[COLUMN] column_definition [FIRST|AFTER col_name]
eg:修改表emp的ename欄位定義,將varchar(10)改為varcahr(20)
(2)增加表欄位,ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST|AFTER col_name]
eg:在表emp中新增欄位age,類型為int(3)
(3)刪除表欄位,ALTER TABLE tablename DROP [COLUMN] col_name
eg:將欄位age刪除
(4)欄位改名,ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
eg:將age改名為age1,同時修改類型為int(4)
(5)修改欄位排列順序,欄位增加和修改(ADD|CHANGE|MODIFY)文法中,可選項first|after column_name,可以修改欄位在表中的位置。(ADD預設加在最後,CHANGE/MODIFY預設不改變位置)
eg:新增欄位birth date(birth的類型)加在ename之後
eg:修改欄位age,放在最前
8.更改表名:ALTER TABLE tablename RENAME [TO] new_tablename
eg:將表enp改名為emp1
二、DML(data manipulation language)語句:資料操縱語句。
用於添加、刪除、更新和查詢資料庫記錄,並檢查資料完整性。常用語句關鍵字:insert、delete、update和select等。
1.插入記錄:INSERT INTO tablename(filed1,filed2,...,filedn) VALUES(values1,values2,...,valuesn);
eg:
也可以不用指定欄位名稱,但是values後面的順序應該和欄位的排列順序一致
插入多條記錄:INSERT INTO tablename(filed1,filed2,...,filedn)
VALUES
(values1,values2,...,valuesn),
(values1,values2,...,valuesn),
(values1,values2,...,valuesn);
2.更新記錄:UPDATE tablename SET filed1=value1,filed2=value2,...,filedn=valuen [WHERE CONDITION]
eg:將表emp中ename為‘lisa‘的薪水(sal)更改為4000:
(多表更新一般用在根據一個表的欄位來動態地更新另一個表的欄位)
3.刪除記錄:DELETE FROM tablename [WHERE CONDITION]
eg:在emp中將ename為‘dony‘的記錄全部刪除
在mysql中可以一次刪除多個表的資料:DELETE t1,t2,...,tn FROM t1,t2,...,tn [WHERE CONDITION] (不管單表還是多表,不加where條件將會把表的所有記錄刪除)
4.查詢記錄:SELECT * FROM tablename [WHERE CONDITION]
查詢不重複記錄關鍵字distinct
排序和限制,關鍵字:ORDER BY 文法:SELECT * FROM tablename [WHERE CONDITION] [ORDER BY filed1 [DESC/ASC],filed2 [DESC/ASC],...,filedn [DESC/ASC]]
不寫排序次序關鍵字預設是 升序排列 ASC。
◆ 排序後的記錄,LIMIT限制顯示部分:SELECT ...[LIMIT offset_start,row_count] 其中,offset_start表示記錄的起始位移量,row_count表示顯示的行數(limit和order by配合使用做記錄的分屏顯示)
彙總
SELECT [filed1,filed2,...,filedn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY filed1,filed2,...,filedn [WITH ROLLUP]]
[HAVING where_contition]
參數說明:fun_name:表示要做的彙總操作(彙總函式),sum(求和)、count(*)(記錄數)、max、min.....
GROUP BY:表示要進行分類彙總的欄位,比如要按照部門分類統計員工數量,部門就應該寫在group by 後面。
WITH ROLLUP:可選語句,表示是否對分類彙總後的結果進行再匯總。
HAVING關鍵字表示對分類後的結果在進行條件的過虐。
表串連:左串連,右串連。(複雜,詳情後續)
子查詢:關鍵字 in、not in、=、!=、exists、not exists 等 (放後)
記錄聯合:將兩個表的資料按照一定的查詢條件查詢出來以後,將結果合并到一起顯示出來。關鍵字, union、union all
SELECT * FROM t1
UNION/UNION ALL
SELECT * FROM t2
...
UNION/UNION ALL
SELECT * FROM tn;
UNION ALL 是把結果集直接合并在一起,UNION 是將UNION ALL 後的結果進行一次DISTINCT,去除重複記錄後的結果。
三、DCL(data control language)語句:資料控制語句。
用於控制不同資料區段直接的許可和存取層級的語句,這些語句定義了資料庫、表、欄位、使用者的存取權限和安全層級。主要語句關鍵字:grant、revoke等。
主要是DBA用來管理系統中的對象許可權時使用,一般開發人員很少使用。
初識Mysql之基本簡單文法總結