標籤:
SQL語句:
DDL(Data Definition Languages)語句:資料定義語言 (Data Definition Language);操作對象:資料區段、資料庫、表、列、索引等。
資料庫:
建立:CREATE DATABASE dbname;
刪除:DROP DATABASE dbname;
表:
建立:CREATE TABLE tablename(
id INT(5) auto_increment(自增關鍵詞) PRIMARY KEY,
name VARCHAR(20) NOT NULL);
刪除:DROP TABLE tablename;
修改:ALTER TABLE tablename RENAME new_tablename;(修改表名)
ALTER TABLE tablename MODIFY name VARCHAR(10);(修改某列的屬性)
ALTER TABLE tablename ADD column_name VARCHAR(20) [FIRST/(AFTER col_name)](作為插入的位置);(添加一列)
ALTER TABLE tablename DROP col_name;(刪除一列)
ALTER TABLE tablename CHANGE old_col_name new_col_name VARCHAR(20) [FIRST/(AFTER col_name)];(修改列名)
(!CHANGE和MODEFY區別:CHANGE可以修改列名,MODIFY不可以,但是CHANGE兩次列名都得寫。)
DML(Data Manipulation Languages)語句:資料操縱語句;操作對象:表的增刪查改
增:INSERT INTO tablename(col1_name,col2_name) values(value1,value2);
刪:DELETE FROM tablename [WHERE CONDITION];
查:SELECT * FROM tablename;
改:UPDATE tablename set col_name = ‘value‘ where id = 1;
查詢升級版(還會更新):
ONE:
SELECT dep,COUNT(*)
FROM tablename
GROUP BY dep
HAVING COUNT(*) >= 2;
TWO:
SELECT *
FROM tablename
WHERE col_name=‘abc‘
LIMIT 0,2(0,2意為:從序號0開始後面的兩條資料,eg:2,2意為,從序號1開始後面的兩條)
ORDER BY col_name DESC;
THREE:
SELECT *
FROM tablename
WHERE dep IN(
SELECT dep
FROM tablename_1);(!如果子查詢記錄數唯一,IN可以用“=”代替。)
FOUR:
SELECT dep FROM tablename
UNION / (UNION ALL)
SELECT dep FROM tablename_2
知識點:表的串連查詢。
WITH ROLLUP:對分類彙總的結果再匯總。
HAVING和WHERE的區別:WHERE是彙總前進行條件式篩選,HAVING是彙總後進行條件式篩選,能用WHERE時優先使用WHERE這樣對查詢可以
做到一定的最佳化。
UNION和UNION ALL的區別:UNION是將UNION ALL後的結果進行一次DISTINCT,去除重複記錄後的結果。
DCL(Data Control Languages)語句:資料控制語言(開發人員很少使用);操作對象:資料許可、存取層級
授權:GRANT SELECT,INSERT ON tablename.* TO ‘Z1‘@‘localhost‘ IDENTIFY BY ‘123‘;
收回:REVOKE INSERT ON tablename.* FROM ‘Z1‘@‘localhost‘;
知識點:中繼資料,為資料的資料,如表名列名等表的各種屬性名稱。
information_schema資料庫就是用來記錄MySQL中的中繼資料資訊,此資料庫是一個虛擬資料庫,物理上並不存在相關的目錄和檔案,全部為視圖。
視圖:
SCHEMATA:所有資料庫資訊。
TABLES:資料庫中的表資訊
COLUMNS:表中的列資訊
STATISTICS:表索引的資訊
MySQL—基礎(SQL語句)