=======================================================html
CREATE DATABASE 數據庫名;
mysql> create database learning;
CREATE TABLE table_name (column_name column_type);
mysql -u root -p
+回車+輸入密碼show databases;
use 數據庫名;
,例如use learning;
select database();
show tables;
desc 表名;
,例如desc houses;
=======================================================mysql
SELECT column_list/*要查詢的列名稱*/
sql
FROM table_list /*要查詢的表名稱*/
-- 可能從多張表查詢,而後合併輸出數據庫
WHERE condition /*行條件*/
函數
GROUP BY grouping_columns /*對結果分組*/
學習
HAVING condition /*分組後的行條件*/
3d
ORDER BY sorting_columns /*對結果排序*/
日誌
LIMIT offset_set, row_coun t /*結果限定顯示行數*/
-- 數據太多時,只顯示指定部分的數據code
;
htm
注意:註釋放置的位置任意。
concat(字段名1 "分隔符", 字段名2)
select concat(name, "|", house_location) from houses;
=======================================================
語法:INSERT INTO table_name (field1,field2,...,fieldN) VALUES (value1,value2,...,valueN);
示例:insert into houses (name,house_location,purchaseing_year) values ('甲','天河',1997);
注意:後面的數值要與前面的字段名一一對應好,不然就插入到錯誤的位置了。
語法:INSERT INTO table_name select column1,...columnN from table_name2 WHERE XXX;
示例:INSERT INTO houses2 select name,house_location,purchaseing_year from houses WHERE name = 'xx';
注意:後面的部分仍然是"select-from-where"組合
語法:DELETE FROM table_name WHERE xxx;
示例:delete from houses;
語法:UPDATE table_name SET field1=new-value1,field2=new-value2 WHERE xxx;
示例:update houses set name='甲1';
=======================================================
建庫:CREATE DATABASE 數據庫名;
建表:CREATE TABLE table_name (column_name column_type);
查詢庫下的表:show tables;
查看錶結構:desc table_name;
刪除某表的指定字段:ALTER TABLE table_name DROP field_i;
添加字段到某表-法1-添加到第一個:ALTER TABLE table_name ADD field_i field_type INT FIRST;
添加字段到某表-法2-添加到某字段後:ALTER TABLE table_name ADD field_i field_type INT AFTER field_j;
修改字段類型:ALTER TABLE table_name MODIFY field_name type;
修改字段名稱:ALTER TABLE table_name CHANGE old_field_name new_fiele_name;
同時修改字段名和字段類型:ALTER TABLE table_name CHANGE old_field_name new_fiele_name type;
ALTER TABLE table_name RENAME TO new_name;
TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同,均用來刪除表中的所有行,但 TURCATE TABLE 速度更快,且使用的系統和事務日誌資源少。
TRUNCATE TABLE 刪除表中的全部行,但表結構及其列、約束、索引等保持不變。
對於由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。
TRUNCATE TABLE 不能用於參與了索引視圖的表。
若是有 ROLLBACK 語句, DELETE 操做將被撤銷(autocommit-off時),但 TRUNCATE 不會撤銷。
TRUNCATE更快,不改變表結構,不會rollback,不能用於由 FOREIGN KEY 約束引用的表,不能用於不能用於參與了索引視圖的表。
delete更慢,不改變表結構,能夠回滾。
注意:delete刪除須要from -- delete from table_name;
, 而truncate直接加表名便可 -- truncate table_name;
刪除數據庫:drop database <數據庫名>;
刪除表:drop table <表名>;
=======================================================
grant權限on數據庫對象to用戶
示例1:grant select on learning.* to user@'%';
示例2:grant insert on learning.* to user@'%';
%
: 百分號表示全部的IP地址均可以使用這樣一種權限。
ALL:容許作任何事(和root同樣)
USAGE:只容許登陸,其餘什麼也不容許作(默認享有)
新建用戶並賦予權限和密碼:CREATE USER john1@'%'IDENTIFIED BY '123';
%
表示用戶能夠從任意IP地址登陸,'123'表示登陸密碼。首先,須要對用戶賦予權限
grand select,insert,update,delete on learning.* to john1@'%';
查詢用戶的權限
show grand for john1;
ROLLBACK;
顯式提交:用commit命令直接完成的提交。
COMMIT;
隱式提交:用SQL命令間接完成的提交。
自動提交:autocommit爲on時,插入、刪除、修改語句執行後,系統將自動提交
commit
以後,才能在其餘cmd窗口中同步修改。