Mysql數(shù)據(jù)庫操作基礎_第1頁
Mysql數(shù)據(jù)庫操作基礎_第2頁
Mysql數(shù)據(jù)庫操作基礎_第3頁
Mysql數(shù)據(jù)庫操作基礎_第4頁
Mysql數(shù)據(jù)庫操作基礎_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

MySQL一、Mysql概述特點:MySQL是一款從Linux系統(tǒng)上移植過來的優(yōu)秀的開源軟件,適應于所有的平臺(在網(wǎng)上可以任意下載,并且可以查看到它的源文件,進行必要的修改)是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務器,是比較流行的關系數(shù)據(jù)庫,把數(shù)據(jù)存儲在表格中,使用標準的結構化查詢語言——SQL進行訪問數(shù)據(jù)庫。

。相對其他數(shù)據(jù)庫而言,可以用16個字來概括MySQL,“短小精悍、功能齊全、運行極快、完全免費”使用上也越來越人性化,有多款圖形界面的支持,操作越來越簡單。Mysql在中小型企業(yè)網(wǎng)、門戶網(wǎng)的應用中占據(jù)了相當大的優(yōu)勢,甚至在大型項目的開發(fā)中,MySQL也能應對自如。在MySQL中,不僅支持SQL標準,而且還對其進行了擴展,使得它能夠支持更為強大的功能。下表給出SQL標準的關鍵字及其功能:

下表介紹MySQL支持的SQL語句:

mysql中有三種注釋方式:l以“#”號開頭直到行尾的所有內容都是注釋。2以“--”號開頭直到行尾的所有內容都是注釋,注意在“--”后面還有一個空格。3以“/*”開始,以“*/”結束的所有內容都是注釋,可以對多行進行注釋。二、如何啟動、關閉mysql服務器啟動、停止MySQL服務器的方法有兩種:系統(tǒng)服務器和命令提示符

(dos)在命令提示符下啟動MySQL:進入DOS窗口,在命令提示符下輸入如下指令:netstartMySQL(啟動)、netstopMySQL(停止)第一種方法直接啟動mysql,在啟動后的窗口中輸入密碼即可如何連接MySQL服務器第二種方法:采用命令首先設置環(huán)境變量:在命令提示符中設置或者在windows的path中設置其次啟動mysql(可省略)采用這種方式就不需要每次都在啟動和連接數(shù)據(jù)庫之前在命令行窗口中執(zhí)行命令設置path環(huán)境變量了最后連接MYSQL

格式:mysql-h主機地址-u用戶名-p用戶密碼

連接遠程機器:

mysql-h10.4.3.188-uptsdb-p

等價寫法

mysql--host=10.4.3.188--user=ptsdb--password

連接本地機器:

mysql-uroot-p

等價寫法

mysql--user=root-p

(注:u與root可以不用加空格,其它也一樣)下面對以上參數(shù)進行解釋說明。-u:用戶名。-h:MySQL所在服務器地址。-p:用戶密碼。輸入完命令語句后,按下〈Enter〉鍵就進入到了MySQL數(shù)據(jù)庫中。第三種先打開命令提示符,切換到C:\ProgramFiles\MySQL\MySQLServer5.0\bin(Mysql的與運行目錄)進行連接注意用戶在連接數(shù)據(jù)庫時,如果只輸入mysql也可以進入,但是這樣用的是一個匿名用戶登陸,雖然無需用戶名、密碼,就可以直接登錄,但是非常不安全。最好使用文中提到的連接格式,養(yǎng)成良好的書寫習慣。如果密碼在“-p”后直接給出,那么密碼就是明文顯示出來的,例如:MySQL–uroot–h127.0.0.1–p123456

為了安全,我們可以輸入p后就按〈Enter〉鍵,然后在一下行中再輸入密碼,這樣輸入的就是密文密碼。三、修改連接mysql的密碼1.通過修改MYSQL數(shù)據(jù)庫中MYSQL庫的USER表用普通的UPDATE語句修改·mysql>狀態(tài)下輸入

use

mysqlupdateusersetpassword=password('新密碼')whereuser='root';回顯QueryOK,0rowsaffected(0.00sec)Rowsmatched:2Changed:0Warnings:0mysql>狀態(tài)下輸入FLUSHPRIVILEGES;回顯QueryOK,0rowsaffected(0.00sec)mysql>狀態(tài)下輸入quit或exit退出sql

注意:每個命令后都要加上一個分號";"

mysql

才開始執(zhí)行該行命令而FLUSHPRIVILEGES指令會讓已載入記憶體的mysql

系統(tǒng)資料庫更新重起mysql.在更新root密碼后,日后要與MySQL

連線的方法為:mysql-uroot-p新密碼2.在命令行中使用如下命令(注意不是mysql>提示符下)

C:\ProgramFiles\MySQL\MySQLServer5.0\bin>mysqladmin-uroot-ppassword123456接下來會提示

Enterpassword:如果你是第一次登陸還沒修改過密碼,直接回車就可以了(以前初始密碼是root的話輸入root)。這是root密碼就修改成了123456。密碼不要加引號,否則密碼就修改成了'123456'這個8位字符,而不是6位的了。

3.忘記MYSQL密碼的解決方案

1、netstopmysql

停止mysql服務

2、執(zhí)行mysqld-nt--skip-grant-tables

這樣啟動,不需要密碼就可以進入MySQL了

3、此時打開一個新的命令窗口,執(zhí)行mysql,進入MySQL

4、修改root密碼

usemysql

updateusersetpassword=password('NEWPASSWORD')whereuser='root';

flushprivileges;

5、在任務管理器里kill掉mysqld-nt進程

6、netstartmysql

重啟MySQL即可

數(shù)值類型

(例如:Float,Int,Double

等)日期和時間類型

(例如:Date,Time,TIMESTAMP等)String類型

(CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM)四、Mysql常用的數(shù)據(jù)類型:數(shù)值類型Float(同義real)

小(單精度)浮點數(shù)。

允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。

Double(同義DOUBLEPRECISION)

普通大小(雙精度)浮點數(shù)。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308日期和時間類型表示時間值的DATE和時間類型為DATETIME、DATE、TIMESTAMP、TIME和YEAR。每個時間類型有一個有效值范圍和一個“零”值,當指定不合法的MySQL不能表示的值時使用“零”值。TIMESTAMP類型有專有的自動更新特性日期和時間類型-DateDATE日期。支持的范圍為'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式顯示DATE值,但允許使用字符串或數(shù)字為DATE列分配值。日期和時間類型-Datetime

DATETIME日期和時間的組合。支持的范圍是'1000-01-0100:00:00'到'9999-12-3123:59:59'。MySQL以'YYYY-MM-DDHH:MM:SS'格式顯示DATETIME值,但允許使用字符串或數(shù)字為DATETIME列分配值。日期和時間類型-TIMESTAMPTIMESTAMP(Mysql4.1版本以下)時間戳。范圍是'1970-01-0100:00:00'到2037年。TIMESTAMP列用于INSERT或UPDATE操作時記錄日期和時間。如果你不分配一個值,表中的第一個TIMESTAMP列自動設置為最近操作的日期和時間。也可以通過分配一個NULL值,將TIMESTAMP列設置為當前的日期和時間。TIMESTAMP值返回后顯示為'YYYY-MM-DDHH:MM:SS'格式的字符串,顯示寬度固定為19個字符日期和時間類型-TimeTIME時間。范圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式顯示TIME值,但允許使用字符串或數(shù)字為TIME列分配值。日期和時間類型下面的表顯示了各類“零”值的格式。請注意如果啟用NO_ZERO_DATESQL模式,使用這些值會產生警告。String類型-

CHAR和VARCHAR類型

CHAR和VARCHAR類型聲明的長度表示你想要保存的最大字符數(shù)。例如,CHAR(30)可以占用30個字符。CHAR列的長度固定為創(chuàng)建表時聲明的長度。最大長度為

8,000

個字符。

VARCHAR列中的值為可變長字符串。最大長度為

8,000

個字符。下面的表顯示了將各種字符串值保存到CHAR(4)和VARCHAR(4)列后的結果,說明了CHAR和VARCHAR之間的差別:

char是一種固定長度的類型,varchar則是一種可變長度的類型

char(M)類型的數(shù)據(jù)列里,每個值都占用M個字節(jié),如果某個長度小于M,MySQL就會在它的右邊用空格字符補足.(在檢索操作中那些填補出來的空格字符將被去掉)在varchar(M)類型的數(shù)據(jù)列里,每個值只占用剛好夠用的字節(jié)再加上一個用來記錄其長度的字節(jié)(即總長度為L+1字節(jié))。char固定長度,所以在處理速度上要比varchar快速很多,但是對費存儲空間,所以對存儲不大,但在速度上有要求的可以使用char類型,反之可以用varchar類型來實現(xiàn)BINARY和VARBINARY類型

BINARY和VARBINARY類類似于CHAR和VARCHAR它們包含字節(jié)字符串而不是字符字符串。BINARY和VARBINARY允許的最大長度一樣,如同CHAR和VARCHAR,不同的是BINARY和VARBINARY的長度是字節(jié)長度而不是字符長度。String類型-BLOB和TEXT類型可以容納可變數(shù)量的數(shù)據(jù)BLOB列被視為二進制字符串(字節(jié)字符串)。TEXT列被視為非二進制字符串(字符字符串)。Text數(shù)據(jù)類型的列可用于存儲大于8kb的字符。五、Mysql數(shù)據(jù)庫管理的基本操作1.數(shù)據(jù)庫的相關操作(創(chuàng)建、刪除、查看、選擇)2.MySQL數(shù)據(jù)庫中的一些字段類型解釋3.數(shù)據(jù)表的操作(創(chuàng)建、刪除、修改)4.添加、刪除、修改數(shù)據(jù)1.數(shù)據(jù)庫的相關操作1)創(chuàng)建數(shù)據(jù)庫

使用MySQL創(chuàng)建數(shù)據(jù)庫,格式如下:MySQL>CREATEDATABASE**;

QueryOK,1rowaffected(0.01sec)2)顯示數(shù)據(jù)庫列表:

mysql>showdatabases;

3)選擇要用的數(shù)據(jù)庫,查看包含的信息MySQL>USE**;

DatabasechangedMySQL>SHOWTABLES;4)顯示表格

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

顯示表結構:

mysql>desc

mydb.tablename;等價于

mysql>showcolumnsfrommydb.tablename;5)刪除數(shù)據(jù)庫

MySQL>DROPDATABASE**;6)顯示MySQL數(shù)據(jù)庫的版本:

mysql>selectversion();

SQL主要語句語法數(shù)據(jù)定義語句CREATEDATABASE語法CREATETABLE語法CREATEINDEX語法DROPDATABASE語法DROPINDEX語法DROPTABLE語法ALTERTABLE語法RENAMETABLE語法CREATETABLE語法CREATETABLE<表名>

(<列名><數(shù)據(jù)類型>[列級完整性約束條件]

[,<列名><數(shù)據(jù)類型>[列級完整性約束條件)]]…

[,<表級完整性約束條件>]);

注:列級約束條件有兩個任選項:NOTNULL,表示此列不得置NULL,在其后還可加UNIQUE任選項,表示列值不得重復。DEFAULT,當此列的值空缺時,填以缺省值例如:stu_idchar(20)notnull,

pricefloatdefault0.01

表級完整性約束條件主關鍵字約束指定表的一列或幾列的組合的值在表中具有惟一性,即能惟一地指定一行記錄。每個表中只能有一列被指定為主關鍵字,且IMAGE和TEXT類型的列不能被指定為主關鍵字,也不允許指定主關鍵字列有NULL屬性。語法如下:CONSTRAINT[constraint_name]PRIMARYKEY(column_name)column_name指定組成主關鍵字的列名constraint_name指定約束的名稱約束的名稱Createtableproducts(idchar(20)notnull,pricefloatdefault0.01,constraintprimarykey(id));CREATEINDEX語法CREATEINDEXindex_name

ONtbl_name(index_col_name,...)

注:index_col_name:

col_name[(length)][ASC|DESC]例如:createindexstu_ageonstudent(ageASC);ALTERTABLE語法ALTERTABLEtbl_name

[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP

<列名><完整性約束名>][MODIFY<列名><數(shù)據(jù)類型>];ADD用于增加新列和新的完整性約束條件,新增加的列一律為空值。(index,primarykey等)DROP用于刪除指定的完整性約束條件(index,primarykey,foreignkey)MODIFY用于修改原有的列定義Altertableaaaddprimarykey(id);Altertableaaaddnamechar(20);Altertableaadropprimarykey;Altertableaamodifyidchar(100)notnull;

RENAMETABLE語法RENAMETABLEtbl_nameTOnew_tbl_name

對一個表重命名例如:renametablestudenttoss;創(chuàng)建,刪除視圖(view)創(chuàng)建視圖語法:

Createview<視圖名>(<列名1>,[<列名2>,….])As[select查詢語句]刪除視圖語法:

Dropview<視圖名>Createviewstu_test(id,name)Asselectstu_id,namefromstudent;Dropviewstu_test;SQL主要語句語法-數(shù)據(jù)操作語句SelectUpdateInsertDeleteSelect查詢語句SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]…

FROM<表名或視圖名>,[<表名或視圖名>]…

[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];Select查詢語句SELECT指明需要查詢的項目,一般是列名,也可以是表達式,查詢表中未存儲但可導出的結果。WHERE用來說明查詢的條件DISTINCT任選項用來消除查詢結果的重復項GROUP用來將結果按列名1的值進行分組,該屬性列值相等的元組為一組ORDER將結果表按列名2的值升序或降序排序where查詢滿足條件的元組(where子句)比較大小確定范圍(BETWEEN…AND/NotBeteween….and)確定集合(IN,NOTIN)字符匹配(LIKE,NOTLIKE)

可適用通配符%和_。%:代表任意長度(長度可以為0)的字符串:a%_:代表任意單個字符:a_Select*fromstudent;Select*fromstudentwhereagenotbetween18and19;Select*fromstudentwherenamelike‘a%’;Update修改語法一般格式:

INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]VALUES(<常量1>[,<常量2>]…)功能是將新元組插入指定的表中INTO中沒有出現(xiàn)的屬性列,新紀錄在其上取空值屬性列省略則按已有關系模式順序插入,且其在每個屬性列上均有值。Insertintostudentvalues(‘1’,’aa’,’asdf’,’1980-12-09);Insertintostudent(stu_id,name)v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論