格式: mysql -h主機地址 -u用戶名 -p用戶密碼 mysql
一、例1:鏈接到本機上的MYSQL。(mysql-uroot-p12344)linux
首先在打開DOS窗口,而後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,若是剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車便可進入到MYSQL中了,MYSQL的提示符是: mysql<。sql
二、例2:鏈接到遠程主機上的MYSQL。( mysql -h10.20.0.88-uroot-p12344 )數據庫
假設遠程主機的IP爲:110.110.110.110,用戶名爲root,密碼爲abcd123。則鍵入如下命令:服務器
mysql -h110.110.110.110 -uroot -pabcd123ide
(注:u與root能夠不用加空格,其它也同樣)函數
三、退出MYSQL命令: exit (回車)。ui
1.linux下啓動mysql的命令:編碼
mysqladmin startspa
/ect/init.d/mysql start (前面爲mysql的安裝路徑)
2.linux下重啓mysql的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面爲mysql的安裝路徑)
3.linux下關閉mysql的命令:
mysqladmin -u root -p密碼 shutdown
/ect/init.d/mysql shutdown (前面爲mysql的安裝路徑)
4.鏈接本機上的mysql:
進入目錄mysql\bin,再鍵入命令mysql -uroot -p, 回車後提示輸入密碼。
退出mysql命令:exit(回車)
5.修改mysql密碼:
mysqladmin -u用戶名 -p舊密碼 password 新密碼
或進入mysql命令行SET PASSWORD FOR '用戶名'@'主機' = PASSWORD(‘密碼');
GRANT USAGE ON *.* TO '用戶名'@'主機' IDENTIFIED BY 'biscuit';
修改本身的密碼SET PASSWORD = PASSWORD('biscuit');
6.增長新用戶。(注意:mysql環境中的命令後面都帶一個分號做爲命令結束符)
grant all privileges on *.* to 用戶名@'%' identified by '密碼' with grant option;
flush privileges;(刷新權限設置)
grant select on 數據庫.* to 用戶名@登陸主機 identified by "密碼"
如增長一個用戶test密碼爲123,讓他能夠在任何主機上登陸, 並對全部數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,而後鍵入如下命令:
grant select,insert,update,delete on *.* to " Identified by "123";
7.跳過受權訪問mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
必須首先登陸到mysql中,有關操做都是在mysql的提示符下進行,並且每一個命令以分號結束
一、顯示數據庫列表。
show databases;
二、建數據庫:
create database 庫名;
三、建表:
use mysql; //打開庫
create table 表名(字段設定列表);
4,增刪表列
(1)添加單列
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
例如:ALTER TABLE users1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;
在 id 後面添加 username屬性:ALTER TABLE users1 ADD password VARCHAR(32) NOT NULL AFTER username;
(2)添加多列
ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)
(3)刪除列
ALTER TABLE tbl_name DROP [COLUMN] col_name
例如:ALTER TABLE users1 DROP truename;
(4)一次刪除多列:
ALTER TABLE uses1 DROP password,DROP age;
也能刪除一列的同時,新增一列。其間用逗號隔開。
5,修改列約束
(5)添加主鍵約束:
ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] PRIMARY KEY[index_type] (col_name);
(6)添加惟一約束
ALTER TABLE tbl_name ADD UNIQUE(col_name);
(7)添加外鍵約束
ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_type](外鍵列) REFERENCES 父類(參考列);
(8)刪除主鍵約束
ALTER TABLE table_name DROP PRIMARY KEY;
(9)刪除惟一約束
ALTER TABLE table_name DROP {INDEX|KEY} index_name;
(10)刪除外鍵約束
ALTER TABLE table_name DROP FOREIGN KEY fk_symbol;
(11)添加/刪除默認約束:
ALTER TABLE table_name ALTER [COLUMN] column_name SET DEFAULT literal
ALTER TABLE table_name ALTER [COLUMN] column_name DROP DEFAULT
6,修改列定義
(1)修改列定義
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST |AFTER col_name];
(2)修改列名稱
ALTER TABLE tbl_name CHANGE [COLUMN] col_name new_col_name column_definition [FIRST|AFTER col_name];
(3)數據表改名
7,修改數據表名
ALTER TABLE tbl_name RENAME [TO/AS] new_tbl_name
9,顯示建立表和索引
顯示建立表的語句:SHOW CREATE TABLE table_name;
查看錶是否有索引:SHOW INDEXS FROM table_name;
十、顯示庫中的數據表
show tables;
十一、顯示數據表的結構
describe 表名;(desc)
SHOW COLUMNS FROM 表名;
十二、刪庫和刪表
drop database 庫名;
drop table 表名;
13,顯示所屬的數據庫
SELECT DATABASE();
1四、編碼的修改
若是要改變整個mysql的編碼格式:
啓動mysql的時候,mysqld_safe命令行加入
--default-character-set=gbk
若是要改變某個庫的編碼格式:在mysql提示符後輸入命令
alter database db_name default character set gbk;
四種基本操做:
操做 |
說明 |
INSERT | 第一種: INSERT [INTO] tb1_name [(col_name,...)] VALUES(val,...),(val1,...); //INSERT 關鍵字,INTO 可省略,tb1_name 數據表的名稱 當字段有自動增長的屬性後,在插入表的全部字段的數據時,能夠填寫 NULL 或 DEFAULT 這兩個關鍵字,表示按照原先默認自動增加的屬性 第二種: INSERT [INTO] tb1_name SET col_name={expr|DEFAULT},…… 只能一次性插入一條記錄 第三種: insert table_name [(colname...)] select..... 把查詢到的結果插入到指定數據表中 |
UPDATE | update <表名> |
DELETE |
一、刪除記錄DELETE:分爲單表刪除和多表刪除 |
SELECT | SELECT select_expr [,select expr2...] 只查找某一個函數或表達式 使用[AS] alias_name爲其賦予別名 []均可以省略,如select version(); SELECT * FROM tdb_goods\G; // 網格形式輸出查詢結果 |
條件:
條件 |
說明 |
WHERE |
在WHERE表達式中,可使用MySQL支持的函數或運算符 |
GROUP BY |
查詢結果分組: |
HAVING |
利用GROUP BY 分組 添加分組條件 [HAVING where_condition],HAVING的字段要麼在select中出現,要麼是聚合函數(只有一個結果),如count(id) > 1; SELECT sex FROM users GROUP BY 1 HAVING age > 35; //有錯 SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 2;
|
ORDER BY |
對查詢結果進行排序,默認是升序 |
LIMIT |
一、限制查詢結果返回的數量:[LIMIT {[offset,] row_count|row_count OFFSET offset}] |
約束名 |
說明 |
UNSIGNED |
無符號 |
空值與非空 |
NULL,字段值能夠爲空 NOT NULL,字段值禁止爲空,不賦值會報錯 |
AUTO_INCREMENT |
自動編號,且必須與主鍵配合使用,保證記錄的惟一性,類型必須爲整型(能夠是FLOAT(5,0)等,小數點後必須爲0),默認狀況下。起始值爲1,每次的增量爲1 |
PRIMARY KEY(KEY) |
主鍵約束 主鍵保證記錄的惟一性 |
UNIQUE KEY |
惟一約束 惟一約束能夠保證記錄的惟一性 |
DEFAULT |
默認約束 默認值 |
FOREIGN KEY |
外鍵約束 保持數據一致性,完整性;實現一對一或一對多關係。 要求: 父表和子表必須使用相同的存儲引擎,並且禁止使用臨時表; 數據表的存儲引擎只能爲InnoDB; 外鍵列和參照列必須具備相似的數據類型。其中數字的長度或是否有符號位必須相同;而字符的長度則能夠不一樣; 外鍵列和參照列必須建立索引。若是外鍵列不存在索引的話,MySQL將自動建立索引。 在 MY.ini 文件中編輯默認的存儲引擎:default-storage-engine=INNODB; 外鍵約束的參照操做: 1. CASCADE: 從父表刪除或更新且自動刪除或更新子表中匹配的行。 如:FOREIGN KEY (key_name) REFERENCEES table_name (key_name) ON DELETE CASCADE; ON DELETE \ ON UPDATE 2. SET NULL: 從父表刪除或更新行,並設置子表中的外鍵列爲NULL。若是使用該選項,必須保證子表列沒有指定NOT NULL。 3. RESTRICT: 拒絕對父表的刪除或者更新操做。 4. NO ACTION: 標準SQL的關鍵字,在MySQL中與RESTRICT相同。 |
1.表級約束與列級約束
(1)對一個數據列創建的約束,稱爲列級約束
(2)對多個數據列創建的約束,稱爲表級約束
(3)列級約束既能夠在列定義時聲明,也能夠在列定之後聲明
(4)表級約束只能在列定義後聲明
2.主鍵、外鍵、非空、惟1、check,default都是約束條件。主鍵、外鍵、既能夠做爲表級約束,也可做爲列級約束
而像非空、惟一等( not null, default )只有列級約束
從本地文件load數據到表(LOAD DATA語句中指出列值的分隔符和行尾標記,可是默認標記是定位符和換行符)
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
LINES TERMINATED BY '\r\n';
1,mysqldump的幾種經常使用方法
(1)導出整個數據庫(包括數據庫中的數據)
mysqldump -u username -p dbname > dbname.sql
(2)導出數據庫結構(不含數據)
mysqldump -u username -p -d dbname > dbname.sql
(3)導出數據庫中的某張數據表(包含數據)
mysqldump -u username -p dbname tablename > tablename.sql
(4)導出數據庫中的某張數據表的表結構(不含數據)
mysqldump -u username -p -d dbname tablename > tablename.sql
2,導入數據庫
一、首先建空數據庫
mysql>create database abc;
二、導入數據庫
方法一:
(1)選擇數據庫
mysql>use abc;
(2)設置數據庫編碼
mysql>set names utf8;
(3)導入數據(注意sql文件的路徑)
mysql>source /home/abc/abc.sql;
方法二:
mysqldump -u username -p -d dbname tablename > tablename.sql
#mysql -uroot -p123456 ps_se_sample_platform < experiment.sql
設置用戶獨有的使用權限,your_mysql_name用戶名,your_client_host主機名
GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
一、show global status;列出MySQL服務器運行各類狀態值
二、show variables;查詢MySQL服務器配置信息語句
三、查看慢查詢
show variables like '%slow%';
show global status like '%slow%';
四、最大鏈接數
show variables like 'max_connections';MySQL服務器最大鏈接數
show global status like 'Max_used_connections'; 服務器響應的最大鏈接數
五、查看錶結構
desc Tablename;
describe Tablename;
show columns from Tablename;
show create table Tablename;