一、運行數據庫
1、啓動服務:net start mysql
2、連接數據庫:
mysql -h[IP地址] -u [數據庫] -p;
mysql -u [數據庫] -p;
--如:mysql -u root -p;
-- mysql -h127.0.0.1 -u root -p;
二、查看
1、查看數據庫:show databases;
2、查看錶:
--先選擇數據庫
USE [數據庫]
USE root
--查看錶
SHOW TABLES;
3、查看錶中的列:
SHOW columns from [表名];
SHOW columns from db;
describe [表名];
describe db;
--我感覺兩種方式是一樣的
4、查看數據庫狀態:
SELECT host,user FROM MYSQL.USER
5、查看用戶:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
三、新建
1、創建數據庫:
--創建數據庫
CREATE DATABASE [數據庫名];
CREATE SCHEMA [數據庫名] default character set utf8 collate utf8_general_ci;
--採用create schema和create database創建數據庫的效果一樣,具體區別還沒研究。
2、創建用戶:
CREATE USER 'userName'@'%' IDENTIFIED BY 'password';
CREATE USER 'userName'@'localhost' IDENTIFIED BY 'password'; --本地連接
CREATE USER 'userName'@'host' IDENTIFIED BY 'password';
/*host - 指定該用戶在哪個主機上可以登陸,此處的"localhost",是指該用戶只能在本地登錄,
不能在另外一臺機器上遠程登錄,如果想遠程登錄的話,將"localhost"改爲"%",
表示在任何一臺電腦上都可以登錄;也可以指定某臺機器可以遠程登錄;*/
3、創建表:
DROP TABLE IF EXISTS `表名`;//有則刪表
CREATE TABLE `表名` (
`字段1` varchar(10) PRIMARY KEY NOT NULL COMMENT '字段描述',
`字段2` varchar(10) DEFAULT NULL COMMENT '字段描述',
`字段3` varchar(10) DEFAULT NULL COMMENT '字段描述'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表描述';
三、添加
1、導入.sql文件
--導入SQL文件
SOURCE d:/mysql.sql;
--應該也可以
mysql -uroot -p密碼 < c:\sudu.sql
2、插入數據
--插入數據
INSERT INTO [表名] VALUES("字段1","字段2"······);
--以文本方式將數據插入表
LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;
3、導入.txt文件
1、文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用\n來代替.例:
3 rose 飛數科技1 1976-10-10
4 mike 飛數科技2 1975-12-23
假設你把這兩組數據存爲速度sudu.txt文件,放在c盤根目錄下。
2、數據傳入命令 load data local infile "c:\sudu.txt" into table 表名;
注意:你最好將文件複製到\mysql\bin目錄下,並且要先用use命令打表所在的庫。
四、刪除
--刪除用戶
DELETE FROM mysql.user WHERE user='tester';
DROP USER 'userName'@'host';
--刪除數據庫
DROP DATABASE db;
--刪除表
DROP TABLE [表名];
--清空表數據
DELECT FROM [表名];
五、修改
1、修改密碼:
--格式;
MYSQLADMIN -u [用戶名] -p [舊密碼] password [新密碼];
UPDATE mysql.user SET password=PASSWORD('新密碼') WHERE User='root';--記得刷新
--例如:
MYSQLADMIN -u root -password 1234; --給root加個密碼
MYSQLADMIN -u root -p 1234 password abcd;
2、修改表:
--增加列
alter table [表名] add [列名] char(100) null;
--刪除列
alter table [表名] drop column [列明];
--修改列數據類型
ALTER TABLE [表名] ALTER COLUMN [列名] [類型];
--改表名
rename table [舊錶名] to [新表名];
ALTER TABLE table_name ADD column_name datatype 增加表中的列
ALTER TABLE table_name DROP COLUMN column_name 刪除表中的列
ALTER TABLE table_name ALTER COLUMN column_name datatype 改變表中的列的數據類型
3、修改表中數據
UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
六、授權
--授權test用戶有testDB數據庫的某一部分權限:
GRANT select,update ON testDB.* TO test@'%' IDENTIFIED BY 'password';
--授權test用戶有testDB數據庫的所有操作權限:
GRANT all PRIVILEGES ON testDB.* TO 'test'@'%' IDENTIFIED BY 'password';
--授權test用戶擁有所有數據庫的某些權限:
GRANT select,delete,update,create,drop ON *.* TO 'test'@'%' IDENTIFIED BY 'password'
七、備份數據
--備份數據庫
MYSQLDUMP -u [用戶名] -p [密碼] [數據庫] > [路徑/文件名.sql];
MYSQLDUMP -u [用戶名] -p -d --add-drop-table [數據庫] > [路徑/文件名.sql];--/ -d 沒有數據 --add-drop-table 在每個語句前加上drop table **
mysqldump -up[用戶名] -p --default-character-set=latin1 --set-charset=gbk --skip-opt [數據庫]> [路徑/文件名.sql];
--備份表
MYSQLDUMP -u [用戶名] -p [密碼] [數據庫] > [路徑/文件名.sql];
八、附加
flush privileges;--立即啓用修改,刷新
revoke all on *.* from tester;--取消用戶所有數據庫(表)的所有權限
MySQL的註釋方式
mysql 服務器支持如下幾種註釋方式:
(1) # 到該行結束 # 這個註釋直到該行結束 mysql> SELECT 1+1;
(2)-- 到該行結束 -- 這個註釋直到該行結束
注意: -- (雙長劃) 註釋風格要求在兩個長劃後至少有一個空格!
附加:
自MySQL3.23.3 以來,除了剛纔介紹的註釋風格外,還可以用兩個短劃線和一個空格(“-- ”)來開始註釋;從這兩個短劃線到行的結束的所有內容都作爲註釋處理。有的數據庫以雙短劃線作爲註釋的起始。MySQL也允許這樣,但需要加一個空格以免產生混淆。例如,帶有如像5--7 這樣的表達式的語句有可能被認爲包含一個註釋,但不可能寫5-- 7這樣的表達式,因此,這是一個很有用的探索。然而,這僅僅是一個探索,最好不用這種風格的註釋。
(3)/* 行中間或多個行 */
mysql> SELECT 1+1; mysql> SELECT 1/* 這是一個在行中間的註釋 */ + 1;
mysql> SELECT 1+
/* 這是一個
多行註釋
的形式
*/
1;
單引號和雙引號:被用來標誌一個被引用字符串的開始,即使是在一個註釋中。如果註釋中的引號沒有另一個引號與之配對,那和語法分析程序就不會認爲註釋結束。如果你以交互式運行 mysql,你會產生困惑,因爲提示符從 mysql> 變爲 '> 或 ">。
分號:被用於指出當前 SQL 語句的結束並且跟隨它的任何東西表示下一行的開始。
自MySQL3.23 版以來,可在C 風格的註釋中“隱藏” MySQL特有的關鍵字,註釋以“/ * !”而不是以“ / *”起頭。MySQL查看這種特殊類型註釋的內部並使用這些關鍵字,但其他數據庫服務器將這些關鍵字作爲註釋的一部分忽略。這樣有助於編寫由MySQL執行時利用MySQL特有功能的代碼,而且該代碼也可以不用修改就用於其他數據庫服務器。下面的兩條語句對於非MySQL的數據庫服務器是等價的,但如果是MySQL服務器,將在第二條語句中執行一個INSERT DELAYED 操作