mysql-----sql語句(二)
阿新 • • 發佈:2018-10-11
desc sql 查詢 sum 我們 date 交叉 insert col 刪除
ORDER BY 根據字段排序 SELECT * FROM TABLE ORDER BY COLUME1 ASC|DESC GROUP BY 語句根據一個或多個列結果集進行 分組 在分組的列上我們可以使用count sum avg等函數 -- WITH ROLLUP 可以實現在分組統計數據基礎上再進行相同的統計 SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP; -- 我們將以上的數據表按名字進行分組,再統計每個人登錄的次數: -- mysql null 值的處理-- is null 當列的值為null 此運算符返回true -- is not null 當列的值不為null 運算符返回true 查找數據表中 runoob_test_tbl 列是否為 NULL SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | 菜鳥教程 | NULL | | Google |NULL | +---------------+--------------+ SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | RUNOOB | 20 | | FK | 20 | +---------------+--------------+-------------------------------------------------------------------------- mysql 事務 在mysql中只有使用了 Innodb 數據庫引擎的數據庫才支持事務 事務處理可用來維護數據庫的完整性,保證成批的SQL語句要麽全部執行,要麽全部不執行 事務用來管理insert update delete語句 事務必須滿足4個條件(ACID): 原子性(Atomicity) 一致性(Consistency) 隔離性(Isolation) 持久性(Durability) 原子性: 一個事務中的所有操作, 那麽全部完成, 那麽全部不完成, 不會結束在中間某個環節。 事務在執行過程中發生錯誤, 會被回滾到事務開始 前的狀態,就像這個事務重來沒有執行過一樣 一致性:在事務開始之前和事務結束以後,數據庫的完整性沒有被破壞,這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度 串聯性以及後續數據庫可以自發性完成預定的工作 隔離性:數據庫允許多個事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務並發執行時 由於交叉執行而導致數據的不一致。 事務隔離分為不同級別 包括讀未提交 讀提交 可重復讀 和串行化 持久性:事務處理結束後, 對數據的修改就是永久的, 即便系統故障也不會丟失 mysql 事務處理主要有兩種方法 用 begin rollback commit begin 開始一個事務 rollback 事務回滾 commit 事務確認 mysql> begin; # 開始事務 Query OK, 0 rows affected (0.00 sec) mysql> insert into runoob_transaction_test value(5); Query OK, 1 rows affected (0.01 sec) mysql> commit; # 提交事務 Query OK, 0 rows affected (0.01 sec) mysql> begin; # 開始事務 Query OK, 0 rows affected (0.00 sec) mysql> insert into runoob_transaction_test values(7); Query OK, 1 rows affected (0.00 sec) mysql> rollback; # 回滾 Query OK, 0 rows affected (0.00 sec) --------------------------------------------------------------------------------------------- ALTER TABLE table_1 DROP i; -- 刪除字段i ALTER TABLE table_1 ADD i INT; -- 添加字段 i ALTER TABLE table_1 ADD i INT FIRST; -- 添加字段 i 設定位第一列 ALTER TABLE table_1 ADD i INT after c; -- 添加字段 設定位於c個字段之後 ALTER TABLE table_1 MODIFY c CHAR(10); -- 修改字段類型 ALTER TABLE table_1 CHANGE c c CHAR(10); -- 修改字段類型 change 可以修改字段名 ALTER TABLE table_1 CHANGE c b CHAR(10); -- 修改字段類型 ALTER TABLE table_1 ALTER i SET DEFAULT 1000; -- 修改默認值為100 ALTER TABLE table_1 ALTER i DROP DEFAULT; -- 刪除默認值 ALTER TABLE table_1 RENAME TO table_12; -- 修改表名 --------------------------------------------------------------------------------------------------- 索引 索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。組合索引,即一個索引包含多個列。 創建索引時,你需要確保該索引是應用在 SQL 查詢語句的條件(一般作為 WHERE 子句的條件)。 實際上,索引也是一張表,該表保存了主鍵與索引字段,並指向實體表的記錄。
mysql-----sql語句(二)