• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 131, comments - 12, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            MYSQL命令大全

            Posted on 2012-10-29 14:55 盛勝 閱讀(358) 評論(0)  編輯 收藏 引用

            1、連接Mysql



            2、修改密碼

            9

            3、增加新用戶



            4.1 創(chuàng)建數(shù)據(jù)庫



            4.2 顯示數(shù)據(jù)庫



            4.3 刪除數(shù)據(jù)庫



            4.4 連接數(shù)據(jù)庫



            4.5 當前選擇的數(shù)據(jù)庫



            5.1 創(chuàng)建數(shù)據(jù)表



            5.2 獲取表結(jié)構(gòu)



            5.3 刪除數(shù)據(jù)表



            5.4 表插入數(shù)據(jù)



            5.5 查詢表中的數(shù)據(jù)



            5.6 刪除表中數(shù)據(jù)



            5.7 修改表中數(shù)據(jù)



            5.8 增加字段



            5.9 修改表名



            6、備份數(shù)據(jù)庫



            7.2 一個建庫和建表的實例2



            7.1 一個建庫和建表的實例1


            1、連接Mysql
            1、連接到本機上的MYSQL。
            首先打開DOS窗口,然后進入目錄mysql\bin,再鍵入命令mysql -u root -p,回車后提示你輸密碼.注意用戶名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼。

            如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是: mysql>

            2、連接到遠程主機上的MYSQL。假設(shè)遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
                mysql -h110.110.110.110 -u root -p 123;(注:u與root之間可以不用加空格,其它也一樣)

            3、退出MYSQL命令: exit (回車)


            2、修改密碼
            1、給root加個密碼ab12。
            首先在DOS下進入目錄mysql\bin,然后鍵入以下命令
                mysqladmin -u root -password ab12
            注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。

            2、再將root的密碼改為djg345。
                mysqladmin -u root -p ab12 password djg345

            3、增加新用戶
            格式:grant select on 數(shù)據(jù)庫.* to 用戶名@登錄主機 identified by “密碼”

            1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,并對所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。首先用root用戶連入MYSQL,然后鍵入以下命令:
                grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;

            但增加的用戶是十分危險的,你想如某個人知道test1的密碼,那么他就可以在internet上的任何一臺電腦上登錄你的mysql數(shù)據(jù)庫并對你的數(shù)據(jù)可以為所欲為了,解決辦法見2。

            2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,并可以對數(shù)據(jù)庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數(shù)據(jù)庫所在的那臺主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數(shù)據(jù)庫,只能通過MYSQL主機上的web頁來訪問了。
                grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;

            如果你不想test2有密碼,可以再打一個命令將密碼消掉。
                grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
            4.1 創(chuàng)建數(shù)據(jù)庫
            注意:創(chuàng)建數(shù)據(jù)庫之前要先連接Mysql服務(wù)器
            命令:create database <數(shù)據(jù)庫名>
            例1:建立一個名為xhkdb的數(shù)據(jù)庫
              mysql> create database xhkdb;


            例2:創(chuàng)建數(shù)據(jù)庫并分配用戶

            ①CREATE DATABASE 數(shù)據(jù)庫名;

            ②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 數(shù)據(jù)庫名.* TO 數(shù)據(jù)庫名@localhost IDENTIFIED BY '密碼';

            ③SET PASSWORD FOR '數(shù)據(jù)庫名'@'localhost' = OLD_PASSWORD('密碼');

            依次執(zhí)行3個命令完成數(shù)據(jù)庫創(chuàng)建。注意:中文 “密碼”和“數(shù)據(jù)庫”是戶自己需要設(shè)置的。

            4.2 顯示數(shù)據(jù)庫
            命令:show databases (注意:最后有個s)
            mysql> show databases;

            注意:為了不再顯示的時候亂碼,要修改數(shù)據(jù)庫默認編碼。以下以GBK編碼頁面為例進行說明:

            1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk
            2、代碼運行時修改:
               ①Java代碼:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
               ②PHP代碼:header("Content-Type:text/html;charset=gb2312");
               ③C語言代碼:int mysql_set_character_set( MYSQL * mysql, char * csname);
            該函數(shù)用于為當前連接設(shè)置默認的字符集。字符串csname指定了1個有效的字符集名稱。連接校對成為字符集的默認校對。該函數(shù)的工作方式與SET NAMES語句類似,但它還能設(shè)置mysql- > charset的值,從而影響了由mysql_real_escape_string() 設(shè)置的字符集。

            4.3 刪除數(shù)據(jù)庫

            命令:drop database <數(shù)據(jù)庫名>
            例如:刪除名為 xhkdb的數(shù)據(jù)庫
            mysql> drop database xhkdb;

            例子1:刪除一個已經(jīng)確定存在的數(shù)據(jù)庫
               mysql> drop database drop_database;
               Query OK, 0 rows affected (0.00 sec)

            例子2:刪除一個不確定存在的數(shù)據(jù)庫
               mysql> drop database drop_database;
               ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist
                  //發(fā)生錯誤,不能刪除'drop_database'數(shù)據(jù)庫,該數(shù)據(jù)庫不存在。
               mysql> drop database if exists drop_database;
               Query OK, 0 rows affected, 1 warning (0.00 sec)//產(chǎn)生一個警告說明此數(shù)據(jù)庫不存在
               mysql> create database drop_database;
               Query OK, 1 row affected (0.00 sec)
               mysql> drop database if exists drop_database;//if exists 判斷數(shù)據(jù)庫是否存在,不存在也不產(chǎn)生錯誤
               Query OK, 0 rows affected (0.00 sec)

            4.4 連接數(shù)據(jù)庫
            命令: use <數(shù)據(jù)庫名>

            例如:如果xhkdb數(shù)據(jù)庫存在,嘗試存取它:
               mysql> use xhkdb;
            屏幕提示:Database changed

            use 語句可以通告MySQL把db_name數(shù)據(jù)庫作為默認(當前)數(shù)據(jù)庫使用,用于后續(xù)語句。該數(shù)據(jù)庫保持為默認數(shù)據(jù)庫,直到語段的結(jié)尾,或者直到發(fā)布一個不同的USE語句:
               mysql> USE db1;
               mysql> SELECT COUNT(*) FROM mytable;   # selects from db1.mytable
               mysql> USE db2;
               mysql> SELECT COUNT(*) FROM mytable;   # selects from db2.mytable

            使用USE語句為一個特定的當前的數(shù)據(jù)庫做標記,不會阻礙您訪問其它數(shù)據(jù)庫中的表。下面的例子可以從db1數(shù)據(jù)庫訪問作者表,并從db2數(shù)據(jù)庫訪問編輯表:
               mysql> USE db1;
               mysql> SELECT author_name,editor_name FROM author,db2.editor
                   ->        WHERE author.editor_id = db2.editor.editor_id;

            USE語句被設(shè)立出來,用于與Sybase相兼容。

            有些網(wǎng)友問到,連接以后怎么退出。其實,不用退出來,use 數(shù)據(jù)庫后,使用show databases就能查詢所有數(shù)據(jù)庫,如果想跳到其他數(shù)據(jù)庫,用
               use 其他數(shù)據(jù)庫名字
            就可以了。

            4.5 當前選擇的數(shù)據(jù)庫
            命令:mysql> select database();

            MySQL中SELECT命令類似于其他編程語言里的print或者write,你可以用它來顯示一個字符串、數(shù)字、數(shù)學(xué)表達式的結(jié)果等等。如何使用MySQL中SELECT命令的特殊功能?

            1.顯示MYSQL的版本
            mysql> select version(); 
            +-----------------------+ 
            | version()             | 
            +-----------------------+ 
            | 6.0.4-alpha-community | 
            +-----------------------+ 
            1 row in set (0.02 sec) 

            2. 顯示當前時間
            mysql> select now(); 
            +---------------------+ 
            | now()               | 
            +---------------------+ 
            | 2009-09-15 22:35:32 | 
            +---------------------+ 
            1 row in set (0.04 sec) 

            3. 顯示年月日
            SELECT DAYOFMONTH(CURRENT_DATE); 
            +--------------------------+ 
            | DAYOFMONTH(CURRENT_DATE) | 
            +--------------------------+ 
            |                       15 | 
            +--------------------------+ 
            1 row in set (0.01 sec) 
              
            SELECT MONTH(CURRENT_DATE); 
            +---------------------+ 
            | MONTH(CURRENT_DATE) | 
            +---------------------+ 
            |                   9 | 
            +---------------------+ 
            1 row in set (0.00 sec) 
              
            SELECT YEAR(CURRENT_DATE); 
            +--------------------+ 
            | YEAR(CURRENT_DATE) | 
            +--------------------+ 
            |               2009 | 
            +--------------------+ 
            1 row in set (0.00 sec) 

            4. 顯示字符串
            mysql> SELECT "welecome to my blog!"; 
            +----------------------+ 
            | welecome to my blog! | 
            +----------------------+ 
            | welecome to my blog! | 
            +----------------------+ 
            1 row in set (0.00 sec) 

            5. 當計算器用
            select ((4 * 4) / 10 ) + 25; 
            +----------------------+ 
            | ((4 * 4) / 10 ) + 25 | 
            +----------------------+ 
            |                26.60 | 
            +----------------------+ 
            1 row in set (0.00 sec) 

            6. 串接字符串
            select CONCAT(f_name, " ", l_name) 
            AS Name 
            from employee_data 
            where title = 'Marketing Executive'; 
            +---------------+ 
            | Name          | 
            +---------------+ 
            | Monica Sehgal | 
            | Hal Simlai    | 
            | Joseph Irvine | 
            +---------------+ 
            3 rows in set (0.00 sec) 
            注意:這里用到CONCAT()函數(shù),用來把字符串串接起來。另外,我們還用到以前學(xué)到的AS給結(jié)果列'CONCAT(f_name, " ", l_name)'起了個假名。

            5.1 創(chuàng)建數(shù)據(jù)表
            命令:create table <表名> ( <字段名1> <類型1> [,..<字段名n> <類型n>]);

            例如,建立一個名為MyClass的表,
            字段名數(shù)字類型數(shù)據(jù)寬度是否為空是否主鍵自動增加默認值
            idint4primary keyauto_increment 
            namechar20   
            sexint4  0
            degreedouble16   

            mysql> create table MyClass(
            > id int(4) not null primary key auto_increment,
            > name char(20) not null,
            > sex int(4) not null default '0',
            > degree double(16,2));

            5.2 獲取表結(jié)構(gòu)

            命令: desc 表名,或者show columns from 表名

            mysql> desc MyClass;
            mysql> show columns from MyClass;

            使用MySQL數(shù)據(jù)庫desc 表名時,我們看到Key那一欄,可能會有4種值,即' ','PRI','UNI','MUL'。
            1. 如果Key是空的, 那么該列值的可以重復(fù), 表示該列沒有索引, 或者是一個非唯一的復(fù)合索引的非前導(dǎo)列;
            2. 如果Key是PRI,  那么該列是主鍵的組成部分;
            3. 如果Key是UNI,  那么該列是一個唯一值索引的第一列(前導(dǎo)列),并別不能含有空值(NULL);
            4. 如果Key是MUL,  那么該列的值可以重復(fù), 該列是一個非唯一索引的前導(dǎo)列(第一列)或者是一個唯一性索引的組成部分但是可以含有空值NULL。

            如果對于一個列的定義,同時滿足上述4種情況的多種,比如一個列既是PRI,又是UNI,那么"desc 表名"的時候,顯示的Key值按照優(yōu)先級來顯示 PRI->UNI->MUL。那么此時,顯示PRI。

            一個唯一性索引列可以顯示為PRI,并且該列不能含有空值,同時該表沒有主鍵。
            一個唯一性索引列可以顯示為MUL, 如果多列構(gòu)成了一個唯一性復(fù)合索引,因為雖然索引的多列組合是唯一的,比如ID+NAME是唯一的,但是沒一個單獨的列依然可以有重復(fù)的值,只要ID+NAME是唯一的即可。

            5.3 刪除數(shù)據(jù)表
            命令:drop table <表名>

            例如:刪除表名為 MyClass 的表
               mysql> drop table MyClass;

            DROP TABLE用于取消一個或多個表。您必須有每個表的DROP權(quán)限。所有的表數(shù)據(jù)和表定義會被取消,所以使用本語句要小心!

            注意:對于一個帶分區(qū)的表,DROP TABLE會永久性地取消表定義,取消各分區(qū),并取消儲存在這些分區(qū)中的所有數(shù)據(jù)。DROP TABLE還會取消與被取消的表有關(guān)聯(lián)的分區(qū)定義(.par)文件。

            對與不存在的表,使用IF EXISTS用于防止錯誤發(fā)生。當使用IF EXISTS時,對于每個不存在的表,會生成一個NOTE。

            RESTRICT和CASCADE可以使分區(qū)更容易。目前,RESTRICT和CASCADE不起作用。

            5.4 表插入數(shù)據(jù)
            命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

            例如:往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績?yōu)?6.45, 編號為2 的名為Joan 的成績?yōu)?2.99, 編號為3 的名為Wang 的成績?yōu)?6.5。
               mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

            注意:insert into每次只能向表中插入一條記錄

            5.5 查詢表中的數(shù)據(jù)
            1)、查詢所有行
            命令: select <字段1,字段2,...> from < 表名 > where < 表達式 >
            例如:查看表 MyClass 中所有數(shù)據(jù)
               mysql> select * from MyClass;

            2)、查詢前幾行數(shù)據(jù)
            例如:查看表 MyClass 中前2行數(shù)據(jù)
            mysql> select * from MyClass order by id limit 0,2;

            select一般配合where使用,以查詢更精確更復(fù)雜的數(shù)據(jù)。

            5.6 刪除表中數(shù)據(jù)
            命令:delete from 表名 where 表達式

            例如:刪除表 MyClass中編號為1 的記錄
            mysql> delete from MyClass where id=1;

            下面是一個刪除數(shù)據(jù)前后表的對比。
            FirstNameLastNameAge
            PeterGriffin35
            GlennQuagmire33

            下面以PHP代碼為例刪除 "Persons" 表中所有 LastName='Griffin' 的記錄:
            <?php     $con = mysql_connect("localhost","peter","abc123");     if (!$con)     {       die('Could not connect: ' . mysql_error());     }     mysql_select_db("my_db", $con);     mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con);  ?>
            在這次刪除之后,表是這樣的:
            FirstNameLastNameAge
            GlennQuagmire33


            5.7 修改表中數(shù)據(jù)


            語法:update 表名 set 字段=新值,… where 條件
               mysql> update MyClass set name='Mary' where id=1;

            例子1:單表的MySQL UPDATE語句:
               UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

            例子2:多表的UPDATE語句:
            UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

            UPDATE語法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應(yīng)更新哪些行。如果沒有WHERE子句,則更新所有的行。如果指定了ORDER BY子句,則按照被指定的順序?qū)π羞M行更新。LIMIT子句用于給定一個限值,限制可以被更新的行的數(shù)目。

            5.8 增加字段
            命令:alter table 表名 add字段 類型 其他;
            例如:在表MyClass中添加了一個字段passtest,類型為int(4),默認值為0
               mysql> alter table MyClass add passtest int(4) default '0'

            加索引
               mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
            例子: mysql> alter table employee add index emp_name (name);

            加主關(guān)鍵字的索引
              mysql> alter table 表名 add primary key (字段名);
            例子: mysql> alter table employee add primary key(id);

            加唯一限制條件的索引
               mysql> alter table 表名 add unique 索引名 (字段名);
            例子: mysql> alter table employee add unique emp_name2(cardnumber);

            刪除某個索引
               mysql> alter table 表名 drop index 索引名;
            例子: mysql>alter table employee drop index emp_name;

            增加字段:
            mysql> ALTER TABLE table_name ADD field_name field_type;

            修改原字段名稱及類型:
            mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

            刪除字段:
            MySQL ALTER TABLE table_name DROP field_name;

            5.9 修改表名
            命令:rename table 原表名 to 新表名;

            例如:在表MyClass名字更改為YouClass
               mysql> rename table MyClass to YouClass;

            當你執(zhí)行 RENAME 時,你不能有任何鎖定的表或活動的事務(wù)。你同樣也必須有對原初表的 ALTER 和 DROP 權(quán)限,以及對新表的 CREATE 和 INSERT 權(quán)限。

            如果在多表更名中,MySQL 遭遇到任何錯誤,它將對所有被更名的表進行倒退更名,將每件事物退回到最初狀態(tài)。

            RENAME TABLE 在 MySQL 3.23.23 中被加入。

            6、備份數(shù)據(jù)庫
            命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目錄下執(zhí)行

            1.導(dǎo)出整個數(shù)據(jù)庫
            導(dǎo)出文件默認是存在mysql\bin目錄下
                mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 導(dǎo)出的文件名
                mysqldump -u user_name -p123456 database_name > outfile_name.sql

            2.導(dǎo)出一個表
                mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名> 導(dǎo)出的文件名
                mysqldump -u user_name -p database_name table_name > outfile_name.sql


            3.導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu)
                mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
                -d 沒有數(shù)據(jù) –add-drop-table 在每個create語句之前增加一個drop table

            4.帶語言參數(shù)導(dǎo)出
                mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

            例如,將aaa庫備份到文件back_aaa中:
              [root@test1 root]# cd /home/data/mysql
              [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

            7.1 一個建庫和建表的實例1
            drop database if exists school; //如果存在SCHOOL則刪除
            create database school; //建立庫SCHOOL
            use school; //打開庫SCHOOL
            create table teacher //建立表TEACHER
            (
                id int(3) auto_increment not null primary key,
                name char(10) not null,
                address varchar(50) default ‘深圳’,
                year date
            ); //建表結(jié)束

            //以下為插入字段
            insert into teacher values(”,’allen’,'大連一中’,'1976-10-10′);
            insert into teacher values(”,’jack’,'大連二中’,'1975-12-23′);

            如果你在mysql提示符鍵入上面的命令也可以,但不方便調(diào)試。
            1、你可以將以上命令原樣寫入一個文本文件中,假設(shè)為school.sql,然后復(fù)制到c:\\下,并在DOS狀態(tài)進入目錄[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后鍵入以下命令:
                mysql -uroot -p密碼 < c:\\school.sql
            如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經(jīng)調(diào)試,你只要將//的注釋去掉即可使用)。

            2、或者進入命令行后使用 mysql> source c:\\school.sql; 也可以將school.sql文件導(dǎo)入數(shù)據(jù)庫中。

            7.2 一個建庫和建表的實例2
            drop database if exists school; //如果存在SCHOOL則刪除
            create database school; //建立庫SCHOOL
            use school; //打開庫SCHOOL
            create table teacher //建立表TEACHER
            (
                id int(3) auto_increment not null primary key,
                name char(10) not null,
                address varchar(50) default ''深圳'',
                year date
            ); //建表結(jié)束

            //以下為插入字段
            insert into teacher values('''',''glchengang'',''深圳一中'',''1976-10-10'');
            insert into teacher values('''',''jack'',''深圳一中'',''1975-12-23'');

            注:在建表中
            1、將ID設(shè)為長度為3的數(shù)字字段:int(3);并讓它每個記錄自動加一:auto_increment;并不能為空:not null;而且讓他成為主字段primary key。

            2、將NAME設(shè)為長度為10的字符字段

            3、將ADDRESS設(shè)為長度50的字符字段,而且缺省值為深圳。

            4、將YEAR設(shè)為日期字段。


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            色欲综合久久中文字幕网| 97久久精品无码一区二区| 一97日本道伊人久久综合影院| 久久中文字幕视频、最近更新| 亚洲综合日韩久久成人AV| 久久99精品国产自在现线小黄鸭| 狠狠色丁香婷婷综合久久来来去 | 日韩精品久久无码人妻中文字幕| 久久精品国产亚洲AV无码娇色 | 国产ww久久久久久久久久| 日韩精品无码久久一区二区三| 久久AV高清无码| 日韩久久久久中文字幕人妻| 97精品国产97久久久久久免费| 国产色综合久久无码有码| 久久久亚洲精品蜜桃臀| 国产麻豆精品久久一二三| 久久九九兔免费精品6| 久久九九久精品国产| 国产精品久久久久影院嫩草| 久久精品国产男包| 偷偷做久久久久网站| 久久精品国产99国产精品| 69久久夜色精品国产69| 久久精品午夜一区二区福利| 亚洲va中文字幕无码久久不卡| 四虎久久影院| 亚洲精品tv久久久久久久久久| 久久播电影网| 精品国产一区二区三区久久蜜臀| 亚洲午夜精品久久久久久人妖| 欧美一区二区三区久久综| 18禁黄久久久AAA片| 久久AV无码精品人妻糸列| AV无码久久久久不卡蜜桃| 精品人妻伦九区久久AAA片69| 欧美国产成人久久精品| 久久香综合精品久久伊人| 国产精品免费看久久久| 久久精品国产只有精品2020| 韩国免费A级毛片久久|