1連接數(shù)據(jù)庫:
進(jìn)入mysql的安裝路徑bin如:C:>cd C:Program FilesMySQLMySQL Server 5.0bin
輸入用戶名密碼: C:Program FilesMySQLMySQL Server 5.0bin>mysql -uroot -p123456
2退出mysql
mysql>exit
3. 修改密碼:
C:Program FilesMySQLMySQL Server 5.0bin>mysqladmin -uroot -p123456 password 456123
4.增加用戶:
添加一個用戶test1 密碼為ABC;讓他可以在任何主機(jī)上登錄,并對所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。首先用以root用戶連入mysql,
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
增加一個用戶test2密碼為abc,讓其只可以在localhost上登錄,并可以對數(shù)據(jù)庫mydb進(jìn)行查詢、插入、修改、刪除的操作(localhost指本地主機(jī),即mysql數(shù)據(jù)庫所在的那臺主機(jī)),這樣用戶即使用知道test2的密碼,也無法從internet上直接訪問數(shù)據(jù)庫,只能通過mysql主機(jī)上的web頁來訪問了。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
增加一個可以從任何地方連接服務(wù)器的一個完全的超級用戶
mysql>grant all privileges on *.* to test3@"%" identified by 'abc' with grant option;
5.刪除授權(quán)(與上面授權(quán)相對應(yīng))
mysql>revoke select,insert,update,delete on *.* from test1@"%" ;
mysql>revoke select,insert,update,delete on mydb.* from test2@localhost;
mysql>revoke all privileges on *.* from test3@"%";
6.顯示數(shù)據(jù)庫
mysql>show databases;
7.顯示數(shù)據(jù)庫中的表(exam數(shù)據(jù)庫名)
mysql>use exam;
mysql>show tables;
8.顯示表的結(jié)構(gòu)(db_testtemp表名)
mysql>describe db_testtemp;
9.建庫
mysql>create database 庫名;
10.建表
mysql>use test;
mysql>create table teacher(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default 'beijing',
year date
);
或者
school.sql的內(nèi)容
use exam;
create table teacher(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default 'beijing',
year date
);
把文件school.sql放到c:下,并在DOS狀態(tài)進(jìn)入目錄C:>cd C:Program FilesMySQLMySQL Server 5.0bin
然后C:Program FilesMySQLMySQL Server 5.0bin>mysql -uroot -p456123 < c:school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。
11.刪除庫
mysql>drop database test;
和刪除表
mysql>use exam;
mysql>drop table teacher;
14.表重命名
mysql>alter table teacher rename student;
15. 備份數(shù)據(jù)庫(生成的exam.sql放在目錄C:Program FilesMySQLMySQL Server 5.0bin下)
C:Program FilesMySQLMySQL Server 5.0bin>mysqldump -hlocalhost -uroot -pncae2010 exam > exam.sql
16. 恢復(fù)數(shù)據(jù)庫(localhost不能用本機(jī)IP代替)
C:Program FilesMySQLMySQL Server 5.0bin>mysql -hlocalhost -uroot -pncae2010 exam < exam.sql
17.復(fù)制數(shù)據(jù)庫(把所有的數(shù)據(jù)庫備份到目錄C:Program FilesMySQLMySQL Server 5.0bin下的all-databases.sql文件中)
C:Program FilesMySQLMySQL Server 5.0bin>mysqldump -hlocalhost -uroot -pncae2010 --all-databases > all-databases.sql
18.備份表(生成的student.sql放在目錄C:Program FilesMySQLMySQL Server 5.0bin下)
C:Program FilesMySQLMySQL Server 5.0bin>mysqldump -hlocalhost -uroot -pncae2010 exam student > student.sql
19.恢復(fù)表(操作前先把原來的表刪除)
C:Program FilesMySQLMySQL Server 5.0bin>mysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql
還有一些未實(shí)踐
20.為了改變列a,從INTEGER改為TINYINT NOT NULL(名字一樣),
并且改變列b,從CHAR(10)改為CHAR(20),同時重命名它,從b改為c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一個新TIMESTAMP列,名為d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一個索引,并且使列a為主鍵:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
刪除列c:
ALTER TABLE t2 DROP COLUMN c;
增加一個新的AUTO_INCREMENT整數(shù)列,命名為c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我們索引了c,因為AUTO_INCREMENT柱必須被索引,并且另外我們聲明c為NOT NULL,
因為索引了的列不能是NULL
---------------------------------------------------------------
21.數(shù)據(jù)的導(dǎo)入導(dǎo)出
A。mysqlimport
語法:mysqlbinmysqlimport database tables.txt( 文件名需要與表名相同)
參數(shù):-d or --delete 新數(shù)據(jù)導(dǎo)入數(shù)據(jù)表中之前刪除數(shù)據(jù)數(shù)據(jù)表中的所有信息;
-f or --force 不管是否遇到錯誤
-i or --ignore mysqlimport跳過或者忽略那些有相同唯一關(guān)鍵字的行, 導(dǎo)入文件中的數(shù)據(jù)將被忽略;
-l or -lock-tables 數(shù)據(jù)被插入之前鎖住表,這樣就防止了, 你在更新數(shù)據(jù)庫時,用戶的查詢和更新受到影響;
--fields-enclosed- by= char
指定文本文件中數(shù)據(jù)的記錄時以什么括起的, 很多情況下數(shù)據(jù)以雙引號括起。 默認(rèn)的情況下數(shù)據(jù)是沒有被字符括起的。
--fields-terminated- by=char
指定各個數(shù)據(jù)的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數(shù)據(jù)之間的分隔符。默認(rèn)的分隔符是跳格符
(Tab)
--lines-terminated- by=str
此選項指定文本文件中行與行之間數(shù)據(jù)的分隔字符串 或者字符。 默認(rèn)的情況下mysqlimport以newline為行分隔符。 您可以選擇用一個字
符串來替代一個單個的字符: 一個新行或者一個回車。
mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。
--------------------------------------------------------------
22.常用插入、修改、刪除語句
插入記錄:insert into teacher s('','glchengang','深圳一中','1976-10-10');
修改記錄:update mytable set single=′y′ where name=′abccs′;
刪除記錄:delete from mytable where name=′abc′;
出現(xiàn): mysql 的提示符,此時已進(jìn)入mysql的交互操作方式。
3、退出MySQL操作界面
在mysql>提示符下輸入quit可以隨時退出交互操作界面:
mysql> quit
Bye
你也可以用control-D退出。
4、第一條命令
mysql> select version(),current_date();
+----------------+-----------------+
| version() | current_date() |
+----------------+-----------------+
| 3.23.25a-debug | 2001-05-17 |
+----------------+-----------------+
1 row in set (0.01 sec)
mysql>
此命令要求mysql服務(wù)器告訴你它的版本號和當(dāng)前日期。嘗試用不同大小寫操作上述命令,看結(jié)果如何。結(jié)果說明mysql命令的大小寫結(jié)果是一致的。
練習(xí)如下操作:
mysql>Select (20+5)*4;
mysql>Select (20+5)*4,sin(pi()/3);
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名為Result)
<B>5、多行語句</B>
一條命令可以分成多行輸入,直到出現(xiàn)分號“;”為止:
<ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2"
bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
<td bgcolor="e6e6e6" class="code" style="font-size:9pt">
<pre><ccid_code> mysql> select
-> USER()
-> ,
-> now()
->;
+--------------------+---------------------+
| USER() | now() |
+--------------------+---------------------+
| ODBC@localhost | 2001-05-1:59:15 |
+--------------------+---------------------+
1 row in set (0.06 sec)
mysql>
注意中間的逗號和最后的分號的使用方法。
6、一行多命令
輸入如下命令:
mysql> SELECT USER(); SELECT NOW();
+------------------+
| USER() |
+------------------+
| ODBC@localhost |
+------------------+
1 row in set (0.00 sec)
+---------------------+
| NOW() |
+---------------------+
| 2001-05-17 23:06:15 |
+---------------------+
1 row in set (0.00 sec)
mysql>
注意中間的分號,命令之間用分號隔開。
7、顯示當(dāng)前存在的數(shù)據(jù)庫
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 row in set (0.06 sec)
mysql>
8、選擇數(shù)據(jù)庫并顯示當(dāng)前選擇的數(shù)據(jù)庫
mysql> USE mysql
Database changed
mysql>
(USE 和 QUIT 命令不需要分號結(jié)束。)
mysql> select database();
+---------------+
| database() |
+---------------+
| mysql |
+---------------+
1 row in set (0.00 sec)
9、顯示當(dāng)前數(shù)據(jù)庫中存在的表
mysql> SHOW TABLES;
10、顯示表(db)的內(nèi)容
mysql>select * from db;
11、命令的取消
當(dāng)命令輸入錯誤而又無法改變(多行語句情形)時,只要在分號出現(xiàn)前就可以用 c來取消該條命令
mysql> select
-> user()
-> c
mysql>