<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    mysql常識和基本操作

      【IT168 服務器學院】字段類型?
       1.INT[(M)]?

       正常大小整數(shù)類型

       2.DOUBLE[(M,D)] [ZEROFILL]?

       正常大小(雙精密)浮點數(shù)字類型

       3.DATE?

       日期類型。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示DATE值,但是允許你使用字符串或數(shù)字把值賦給DATE列

       4.CHAR(M)?

       定長字符串類型,當存儲時,總是是用空格填滿右邊到指定的長度

       5.BLOB TEXT?

       BLOB或TEXT類型,最大長度為65535(2^16-1)個字符。

       6.VARCHAR

       變長字符串類型。?

       1: 顯示數(shù)據(jù)庫?
     ?
       SHOW DATABAS,?

       2:當前選擇的數(shù)據(jù)庫,?

       mysql> SELECT DATABASE();?
       +------------+?
       | DATABASE() |?
       +------------+?
       | test ;?
       +------------+?
       | DATABASE() |?
       +------------+?
       | test    |?
       +------------+?

       當前數(shù)據(jù)庫包含的表信息:?

       mysql> SHOW TABLES;?
       +---------------------+?
       | Tables in test ?
       mysql> SHOW TABLES;?
       +---------------------+?
       | Tables in test   |?
       +---------------------+?
       | mytable1      |?
       | mytable2      |?
       +---------------------+?

       獲取表結構?

       mysql> desc mytable1;?
       +---------+-------------+------+-----+---------+-------+?
       | Field  mysql> desc mytable1;?
       +---------+-------------+------+-----+---------+-------+?
       | Field  | Type  | Null | Key | Default | Extra |?
       +---------+-------------+------+-----+---------+-------+?
       | s1  | varchar(20) | YES |NULL  |    |?
       +---------------------+------+-----+---------+-------+?

    ?

       5.導入數(shù)據(jù)庫表?
       (1)創(chuàng)建.sql文件

       (2)先產(chǎn)生一個庫如auction.c:mysqlbin>mysqladmin -u root -p creat auction,會提示輸入密碼,然后成功創(chuàng)建。

       (2)導入auction.sql文件

       c:mysqlbin>mysql -u root -p auction < auction.sql。

       通過以上操作,就可以創(chuàng)建了一個數(shù)據(jù)庫auction以及其中的一個表auction。

       6.修改數(shù)據(jù)庫

       (1)在mysql的表中增加字段:

       alter table dbname add column userid int(11) not null primary key auto_increment;

       這樣,就在表dbname中添加了一個字段userid,類型為int(11)。

       7.mysql數(shù)據(jù)庫的授權

       mysql>grant select,insert,delete,create,drop

       on *.* (或test.*/user.*/..)

       to 用戶名@localhost

       identified by '密碼';

       如:新建一個用戶帳號以便可以訪問數(shù)據(jù)庫,需要進行如下操作:

       mysql> grant usage

       -> ON test.*
       -> TO testuser@localhost;
       Query OK, 0 rows affected (0.15 sec)

       此后就創(chuàng)建了一個新用戶叫:testuser,這個用戶只能從localhost連接到數(shù)據(jù)庫并可以連接到test 數(shù)據(jù)庫。下一步,我們必須指定testuser這個用戶可以執(zhí)行哪些操作:

       mysql> GRANT select, insert, delete,update
       -> ON test.*
       -> TO testuser@localhost;
       Query OK, 0 rows affected (0.00 sec)

       此操作使testuser能夠在每一個test數(shù)據(jù)庫中的表執(zhí)行SELECT,INSERT和DELETE以及UPDATE查詢操作。現(xiàn)在我們結束操作并退出MySQL客戶程序:

       mysql> exit
       Bye?

    posted on 2007-03-25 10:09 金家寶 閱讀(1746) 評論(5)  編輯  收藏 所屬分類: 其他輔助技術

    評論

    # re: mysql常識和基本操作 2007-03-25 10:17 金家寶

    入門篇

    上篇講了如何安裝并測試MySQL,環(huán)境建好后就可以繼續(xù)我們的學習了。本篇主要熟悉一寫常用命令。

    1、啟動MySQL服務器

    實際上上篇已講到如何啟動MySQL。兩種方法:

    一是用winmysqladmin,如果機器啟動時已自動運行,則可直接進入下一步操作。

    二是在DOS方式下運行

    d:mysqlbinmysqld

    2、進入mysql交互操作界面

    在DOS方式下,運行:

    d:mysqlbinmysql

    出現(xiàn):

    mysql

    的提示符,此時已進入mysql的交互操作方式。

    如果出現(xiàn) "ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)“,

    說明你的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服務器告訴你它的版本號和當前日期。嘗試用不同大小寫操作上述命令,看結果如何。

    結果說明mysql命令的大小寫結果是一致的。

    練習如下操作:

    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)

    5、多行語句

    一條命令可以分成多行輸入,直到出現(xiàn)分號“;”為止:

    mysql> select

    -> USER()

    -> ,

    -> now()

    ->;

    +--------------------+---------------------+

    | USER() | now() |

    +--------------------+---------------------+

    | ODBC@localhost | 2001-05-17 22: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、顯示當前存在的數(shù)據(jù)庫

    mysql> show databases;

    +----------+

    | Database |

    +----------+

    | mysql|

    | test |

    +----------+

    2 row in set (0.06 sec)

    mysql>

    8、選擇數(shù)據(jù)庫并顯示當前選擇的數(shù)據(jù)庫

    mysql> USE mysql

    Database changed

    mysql>

    (USE 和 QUIT 命令不需要分號結束。)

    mysql> select database();

    +---------------+

    | database()|

    +---------------+

    | mysql |

    +---------------+

    1 row in set (0.00 sec)

    9、顯示當前數(shù)據(jù)庫中存在的表

    mysql> SHOW TABLES;

    10、顯示表(db)的內(nèi)容

    mysql>select * from db;

    11、命令的取消

    當命令輸入錯誤而又無法改變(多行語句情形)時,只要在分號出現(xiàn)前就可以用 c來取消該條命令

    mysql> select

    -> user()

    -> c

    mysql>

    這是一些最常用的最基本的操作命令,通過多次練習就可以牢牢掌捂了。
      回復  更多評論   

    # re: mysql常識和基本操作 2007-03-25 10:18 金家寶

    學習篇

    了解了一些最基本的操作命令后,我們再來學習如何創(chuàng)建一個數(shù)據(jù)庫和數(shù)據(jù)庫表。

    1、使用SHOW語句找出在服務器上當前存在什么數(shù)據(jù)庫:

    mysql> SHOW DATABASES;

    +----------+

    | Database |

    +----------+

    | mysql|

    | test |

    +----------+

    3 rows in set (0.00 sec)

    2、創(chuàng)建一個數(shù)據(jù)庫abccs

    mysql> CREATE DATABASE abccs;

    注意不同操作系統(tǒng)對大小寫的敏感。

    3、選擇你所創(chuàng)建的數(shù)據(jù)庫

    mysql> USE abccs

    Database changed

    此時你已經(jīng)進入你剛才所建立的數(shù)據(jù)庫abccs.

    4、 創(chuàng)建一個數(shù)據(jù)庫表

    首先看現(xiàn)在你的數(shù)據(jù)庫中存在什么表:

    mysql> SHOW TABLES;

    Empty set (0.00 sec)

    說明剛才建立的數(shù)據(jù)庫中還沒有數(shù)據(jù)庫表。下面來創(chuàng)建一個數(shù)據(jù)庫表mytable:

    我們要建立一個你公司員工的生日表,表的內(nèi)容包含員工姓名、性別、出生日期、出生城市。

    mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1),

    -> birth DATE, birthaddr VARCHAR(20));

    Query OK, 0 rows affected (0.00 sec)

    由于name、birthadd的列值是變化的,因此選擇VARCHAR,其長度不一定是20。可以選擇從

    1到255的任何長度,如果以后需要改變它的字長,可以使用ALTER TABLE語句。);

    性別只需一個字符就可以表示:"m"或"f",因此選用CHAR(1);

    birth列則使用DATE數(shù)據(jù)類型。

    創(chuàng)建了一個表后,我們可以看看剛才做的結果,用SHOW TABLES顯示數(shù)據(jù)庫中有哪些表:

    mysql> SHOW TABLES;

    +---------------------+

    | Tables in menagerie |

    +---------------------+

    | mytables|

    +---------------------+

    5、顯示表的結構:

    mysql> DESCRIBE mytable;

    +-------------+-------------+------+-----+---------+-------+

    | Field | Type| Null | Key | Default | Extra |

    +-------------+-------------+------+-----+---------+-------+

    | name| varchar(20) | YES | | NULL| |

    | sex | char(1) | YES | | NULL| |

    | birth | date| YES | | NULL| |

    | deathaddr | varchar(20) | YES | | NULL| |

    +-------------+-------------+------+-----+---------+-------+

    4 rows in set (0.00 sec)

    6、 往表中加入記錄

    我們先用SELECT命令來查看表中的數(shù)據(jù):

    mysql> select * from mytable;

    Empty set (0.00 sec)

    這說明剛才創(chuàng)建的表還沒有記錄。

    加入一條新記錄:

    mysql> insert into mytable

    -> values ('abccs','f','1977-07-07','china');

    Query OK, 1 row affected (0.05 sec)

    再用上面的SELECT命令看看發(fā)生了什么變化。

    我們可以按此方法一條一條地將所有員工的記錄加入到表中。

    7、用文本方式將數(shù)據(jù)裝入一個數(shù)據(jù)庫表

    如果一條一條地輸入,很麻煩。我們可以用文本文件的方式將所有記錄加入你的數(shù)據(jù)庫表中。

    創(chuàng)建一個文本文件“mysql.txt”,每行包含一個記錄,用定位符(tab)把值分開,并且以在

    CREATE TABLE語句中列出的列次序給出,例如:

    abccs f 1977-07-07 china  

    mary f 1978-12-12 usa

    tom m 1970-09-02 usa

    使用下面命令將文本文件“mytable.txt”裝載到mytable表中:

    mysql> LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet;

    再使用如下命令看看是否已將數(shù)據(jù)輸入到數(shù)據(jù)庫表中:

    mysql> select * from mytable;

      回復  更多評論   

    # re: mysql常識和基本操作 2007-03-25 10:19 金家寶

    學習篇

    上篇我們學會了如何創(chuàng)建一個數(shù)據(jù)庫和數(shù)據(jù)庫表,并知道如何向數(shù)據(jù)庫表中添加記錄。

    那么我們?nèi)绾螐臄?shù)據(jù)庫表中檢索數(shù)據(jù)呢?

    1、從數(shù)據(jù)庫表中檢索信息

    實際上,前面我們已經(jīng)用到了SELECT語句,它用來從數(shù)據(jù)庫表中檢索信息。

    select語句格式一般為:

    SELECT 檢索關鍵詞 FROM 被檢索的表 WHERE 檢索條件(可選)

    以前所使用的“ * ”表示選擇所有的列。

    下面繼續(xù)使用我們在上篇文章中創(chuàng)建的表mytable:

    2、查詢所有數(shù)據(jù):

    mysql> select * from mytable;

    +----------+------+------------+----------+

    | name | sex | birth | birthaddr |

    +----------+------+------------+--------+

    | abccs|f| 1977-07-07 | china |

    | mary |f| 1978-12-12 | usa |

    | tom |m| 1970-09-02 | usa |

    +----------+------+------------+----------+

    3 row in set (0.00 sec)

    3、修正錯誤記錄:

    假如tom的出生日期有錯誤,應該是1973-09-02,則可以用update語句來修正:

    mysql> update mytable set birth = "1973-09-02" where name = "tom";

    再用2中的語句看看是否已更正過來。

    4、選擇特定行

    上面修改了tom的出生日期,我們可以選擇tom這一行來看看是否已經(jīng)有了變化:

    mysql> select * from mytable where name = "tom";

    +--------+------+------------+------------+

    | name |sex | birth | birthaddr |

    +--------+------+------------+------------+

    | tom|m| 1973-09-02 | usa|

    +--------+------+------------+------------+

    1 row in set (0.06 sec)

    上面WHERE的參數(shù)指定了檢索條件。我們還可以用組合條件來進行查詢:

    mysql> SELECT * FROM mytable WHERE sex = "f" AND birthaddr = "china";

    +--------+------+------------+------------+

    | name |sex | birth | birthaddr |

    +--------+------+------------+------------+

    | abccs |f| 1977-07-07 | china |

    +--------+------+------------+------------+

    1 row in set (0.06 sec)

    5、 選擇特定列

    假如你想查看表中的所有人的姓名,則可以這樣操作:

    mysql> SELECT name FROM mytable;

    +----------+

    | name |

    +----------+

    | abccs |

    | mary |

    | tom |

    +----------+

    3 row in set (0.00 sec)

    如果想列出姓名和性別兩列,則可以用逗號將關鍵詞name和birth分開:

    myaql> select name,birth from mytable;

    6、對行進行排序

    我們可以對表中的記錄按生日大小進行排序:

    mysql> SELECT name, birth FROM mytable ORDER BY birth;

    +----------+------------+

    | name | birth |

    +----------+------------+

    | tom | 1973-09-02 |

    | abccs| 1977-07-07 |

    | mary | 1978-12-12 |

    +----------+------------+

    3 row in set (0.00 sec)

    我們可以用DESC來進行逆序排序:

    mysql> SELECT name, birth FROM mytable ORDER BY birth DESC;

    +----------+------------+

    | name | birth |

    +----------+------------+

    | mary | 1978-12-12 |

    | abccs| 1977-07-07 |

    | tom | 1973-09-02 |

    +----------+------------+

    3 row in set (0.00 sec)

    7、 行計數(shù)

    數(shù)據(jù)庫經(jīng)常要統(tǒng)計一些數(shù)據(jù),如表中員工的數(shù)目,我們就要用到行計數(shù)函數(shù)COUNT()。

    COUNT()函數(shù)用于對非NULL結果的記錄進行計數(shù):

    mysql> SELECT COUNT(*) FROM mytable;

    +----------+

    | COUNT(*) |

    +----------+

    |3 |

    +----------+

    1 row in set (0.06 sec)

    員工中男女數(shù)量:

    mysql> SELECT sex, COUNT(*) FROM mytable GROUP BY sex;

    +------+----------+

    | sex | COUNT(*) |

    +------+----------+

    | f|2 |

    | m|1 |

    +------+----------+

    2 row in set (0.00 sec)

    注意我們使用了GROUP BY對SEX進行了分組。

      回復  更多評論   

    # re: mysql常識和基本操作 2007-03-25 10:19 金家寶

    多表操作

    前面我們熟悉了數(shù)據(jù)庫和數(shù)據(jù)庫表的基本操作,現(xiàn)在我們再來看看如何操作多個表。

    在一個數(shù)據(jù)庫中,可能存在多個表,這些表都是相互關聯(lián)的。我們繼續(xù)使用前面的例子。前面建立的表中包含了員工的一些基本信息,如姓名、性別、出生日期、出生地。我們再創(chuàng)建一個表,該表用于描述員工所發(fā)表的文章,內(nèi)容包括作者姓名、文章標題、發(fā)表日期。

    1、查看第一個表mytable的內(nèi)容:

    mysql> select * from mytable;

    +----------+------+------------+-----------+

    | name | sex | birth | birthaddr |

    +----------+------+------------+-----------+

    | abccs|f | 1977-07-07 | china |

    | mary |f | 1978-12-12 | usa |

    | tom |m | 1970-09-02 | usa |

    +----------+------+------------+-----------+

    2、創(chuàng)建第二個表title(包括作者、文章標題、發(fā)表日期):

    mysql> create table title(writer varchar(20) not null,

    -> title varchar(40) not null,

    -> senddate date);

    向該表中填加記錄,最后表的內(nèi)容如下:

    mysql> select * from title;

    +--------+-------+------------+

    | writer | title | senddate |

    +--------+-------+------------+

    | abccs | a1| 2000-01-23 |

    | mary | b1| 1998-03-21 |

    | abccs | a2| 2000-12-04 |

    | tom| c1| 1992-05-16 |

    | tom| c2| 1999-12-12 |

    +--------+-------+------------+

    5 rows in set (0.00sec)

    3、多表查詢

    現(xiàn)在我們有了兩個表: mytable 和 title。利用這兩個表我們可以進行組合查詢:

    例如我們要查詢作者abccs的姓名、性別、文章:

    mysql> SELECT name,sex,title FROM mytable,title

    -> WHERE name=writer AND name='abccs';

    +-------+------+-------+

    | name | sex | title |

    +-------+------+-------+

    | abccs | f| a1|

    | abccs | f| a2|

    +-------+------+-------+

    上面例子中,由于作者姓名、性別、文章記錄在兩個不同表內(nèi),因此必須使用組合來進行查詢。必須要指定一個表中的記錄如何與其它表中的記錄進行匹配。

    注意:如果第二個表title中的writer列也取名為name(與mytable表中的name列相同)而不是writer時,就必須用mytable.name和title.name表示,以示區(qū)別。

    再舉一個例子,用于查詢文章a2的作者、出生地和出生日期:

    mysql> select title,writer,birthaddr,birth from mytable,title

    -> where mytable.name=title.writer and title='a2';

    +-------+--------+-----------+------------+

    | title | writer | birthaddr | birth |

    +-------+--------+-----------+------------+

    | a2| abccs | china | 1977-07-07 |

    +-------+--------+-----------+------------+

      回復  更多評論   

    # re: mysql常識和基本操作 2007-03-25 10:20 金家寶

    修改和備份、批處理

    有時我們要對數(shù)據(jù)庫表和數(shù)據(jù)庫進行修改和刪除,可以用如下方法實現(xiàn):

    1、增加一列:

    如在前面例子中的mytable表中增加一列表示是否單身single:

    mysql> alter table mytable add column single char(1);

    2、修改記錄

    將abccs的single記錄修改為“y”:

    mysql> update mytable set single='y' where name='abccs';

    現(xiàn)在來看看發(fā)生了什么:

    mysql> select * from mytable;

    +----------+------+------------+-----------+--------+

    | name | sex | birth | birthaddr | single |

    +----------+------+------------+-----------+--------+

    | abccs|f | 1977-07-07 | china | y |

    | mary |f | 1978-12-12 | usa | NULL |

    | tom |m | 1970-09-02 | usa | NULL |

    +----------+------+------------+-----------+--------+

    3、增加記錄

    前面已經(jīng)講過如何增加一條記錄,為便于查看,重復與此:

    mysql> insert into mytable

    -> values ('abc','f','1966-08-17','china','n');

    Query OK, 1 row affected (0.05 sec)

    查看一下:

    mysql> select * from mytable;

    +----------+------+------------+-----------+--------+

    | name | sex | birth | birthaddr | single |

    +----------+------+------------+-----------+--------+

    | abccs|f | 1977-07-07 | china | y |

    | mary |f | 1978-12-12 | usa | NULL |

    | tom |m | 1970-09-02 | usa | NULL |

    | abc |f | 1966-08-17 | china | n |

    +----------+------+------------+-----------+--------+



    3、刪除記錄

    用如下命令刪除表中的一條記錄:

    mysql> delete from mytable where name='abc';

    DELETE從表中刪除滿足由where給出的條件的一條記錄。

    再顯示一下結果:

    mysql> select * from mytable;

    +----------+------+------------+-----------+--------+

    | name | sex | birth | birthaddr | single |

    +----------+------+------------+-----------+--------+

    | abccs|f | 1977-07-07 | china | y |

    | mary |f | 1978-12-12 | usa | NULL |

    | tom |m | 1970-09-02 | usa | NULL |

    +----------+------+------------+-----------+--------+

    4、刪除表:

    mysql> drop table ****(表1的名字),***表2的名字;

    可以刪除一個或多個表,小心使用。

    5、數(shù)據(jù)庫的刪除:

    mysql> drop database 數(shù)據(jù)庫名;

    小心使用。

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

    退回到DOS:

    mysql> quit

    d:mysqlbin

    使用如下命令對數(shù)據(jù)庫abccs進行備份:

    mysqldump --opt abccs>abccs.dbb

    abccs.dbb就是你的數(shù)據(jù)庫abccs的備份文件。

    7、用批處理方式使用MySQL:

    首先建立一個批處理文件mytest.sql,內(nèi)容如下:

    use abccs;

    select * from mytable;

    select name,sex from mytable where name='abccs';

    在DOS下運行如下命令:

    d:mysqlbin mysql < mytest.sql

    在屏幕上會顯示執(zhí)行結果。

    如果想看結果,而輸出結果很多,則可以用這樣的命令:

    mysql < mytest.sql | more

    我們還可以將結果輸出到一個文件中:

    mysql < mytest.sql > mytest.out

      回復  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲另类激情综合偷自拍| 免费人妻av无码专区| 亚洲av福利无码无一区二区| 一级做性色a爰片久久毛片免费| 免费视频中文字幕| 亚洲欧美日韩自偷自拍| 免费涩涩在线视频网| 亚洲愉拍一区二区三区| 狼友av永久网站免费观看| 精品国产日韩亚洲一区在线| 四虎影视在线永久免费看黄| 免费看一级毛片在线观看精品视频 | 久久久久亚洲精品男人的天堂| 亚洲色成人网站WWW永久四虎| 日韩中文无码有码免费视频 | 一级做a爰片久久免费| 亚洲精品tv久久久久久久久久| 一级女人18片毛片免费视频 | 亚洲日本va在线视频观看| GOGOGO免费观看国语| 亚洲国产精品无码专区| 亚洲免费中文字幕| 亚洲日韩中文字幕无码一区| 午夜亚洲国产成人不卡在线| 一区二区三区免费视频观看| 久久国产精品亚洲一区二区| 国产h视频在线观看网站免费| 亚洲妇女无套内射精| 国产成人精品日本亚洲专区61| 无码国产精品一区二区免费模式| 亚洲欧洲尹人香蕉综合| 日本免费一区尤物| 美女在线视频观看影院免费天天看| 亚洲电影在线播放| 免费人成在线观看网站视频 | 亚洲人成电影网站国产精品 | 妞干网免费视频观看| 精品无码一级毛片免费视频观看| 亚洲精品欧洲精品| 亚洲福利中文字幕在线网址| 99国产精品视频免费观看|