1.關(guān)于創(chuàng)建數(shù)據(jù)庫(kù)和使用數(shù)據(jù)庫(kù)。
在進(jìn)行插入表項(xiàng)目,刪除表,修改表項(xiàng)目的話,都需要對(duì)于指定多的一個(gè)表來(lái)操作。而每一個(gè)表(table)都要屬于一個(gè)數(shù)據(jù)庫(kù)中,一個(gè)數(shù)據(jù)庫(kù)中也有可能有很多的表,于是,就需要在使用之前,先創(chuàng)建并使用一個(gè)數(shù)據(jù)庫(kù)。命令是:
創(chuàng)建:create database 數(shù)據(jù)庫(kù)表名;
使用數(shù)據(jù)庫(kù):use database 數(shù)據(jù)庫(kù)表名;
刪除數(shù)據(jù)庫(kù):drop database 數(shù)據(jù)庫(kù)表名;
注意的一點(diǎn)就是,使用數(shù)據(jù)庫(kù)這一步,一定不能夠缺少。否則就會(huì)出現(xiàn)很多錯(cuò)誤,最基本的就是很基礎(chǔ)的命令在這個(gè)格式下是無(wú)法識(shí)別的。
關(guān)于數(shù)據(jù)庫(kù)名的一個(gè)小問(wèn)題就是:在Linux下面,是有大小寫(xiě)區(qū)分的,所以就是說(shuō),在創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的時(shí)候,s1和S1是有區(qū)別的,而且在后面命令中,如果要使用這個(gè)數(shù)據(jù)庫(kù),那么就必須注意是大寫(xiě)還是小寫(xiě)了。但是,對(duì)應(yīng)的,MySQL是不區(qū)分大小寫(xiě)的,也就是說(shuō),在一個(gè)數(shù)據(jù)庫(kù)創(chuàng)建成功后,如果我要?jiǎng)?chuàng)建一個(gè)table,或者插入一項(xiàng)內(nèi)容,那么項(xiàng)目名是沒(méi)有大小寫(xiě)之分的,SNAME和sname是一樣的。
于是:select sname from S1;和select SNAME from S1表示的是相同的意義。(對(duì)比的是,select sname from s1卻是不同的,也就是說(shuō),對(duì)于創(chuàng)建的一個(gè)table是區(qū)分大小寫(xiě)的,表S1和s1是不同的!)
在使用完數(shù)據(jù)庫(kù)后,如果沒(méi)有必要再次保存的話,就可以刪除,采用的是前面的drop命令,注意如果沒(méi)有刪除,那么該數(shù)據(jù)庫(kù)是會(huì)保存到系統(tǒng)中的,下次啟動(dòng)的時(shí)候還是會(huì)有該數(shù)據(jù)庫(kù)及記錄!
2.MySQL自帶的一些函數(shù)。
進(jìn)入MySQL: 終端下輸入:mysql -p -u 用戶名 ,然后輸入密碼進(jìn)入之后就可以進(jìn)行相關(guān)操作。
1.now,user,version函數(shù)的使用
Select now() ; //將會(huì)顯示當(dāng)前的時(shí)間
Select version(); //將回想顯示版本信息
Select user(); //顯示用戶名
2.顯示數(shù)據(jù)庫(kù)的某個(gè)項(xiàng)目的詳細(xì)信息。
Show fields from S1; //顯示表S1的組成信息
Show columns from xx like '%name'; //顯示包含name名的列。
3.AUTO_INCREMENT:保證數(shù)據(jù)項(xiàng)獨(dú)一無(wú)二,也就是對(duì)于某個(gè)ITEM,如果沒(méi)有填寫(xiě)它的值,那么就會(huì)默認(rèn)的在該地方讓該項(xiàng)目為增加1.
4.可以使用外部的sql文件來(lái)作為sql的輸入,也就是在終端中輸入:
Mysql -p -u root < test.sql
進(jìn)入sql中之后:Sourece test.sql
比如對(duì)于下面的這個(gè)test1.sql文件就這樣編輯:
create database Test;
use Test;
show databases;
create table S(
SNO CHAR(10),
PNO CHAR(10),
TIM CHAR(10));
insert into S values('TEST','hjack','hel');
show table S;
5. enum:枚舉類(lèi)型,初始化值可以是:ENUM(‘F’,‘T’)
6. if函數(shù)的使用:
Select last_name, first_name death from president
Order by IF(death is NULL,0,1),death;
這句語(yǔ)句的意義就是,讓先為NULL的放在前面,而沒(méi)有NULL的放在后面。
7.限制查詢的次數(shù)
Select last_name,first_name,birth from president
Order by birth limit 5;(顯示前面的5個(gè))
Order by birth DESC limit 5;(顯示后面的5個(gè))
Order by birth limit 10,5;(跳過(guò)前10個(gè)后的5個(gè)數(shù)據(jù))
Order by RAND() limit 1;(隨機(jī)選擇一個(gè)數(shù)據(jù))
8.輸出列求值并命名
Select 17 ,format(SQRT(3*3+4*4,0));
Select concat(first_name,' ',last_name),concat(city,' ',state);
上面的列名就是使用的select后面的列名,比如17列,然后對(duì)該列處理,使用了相應(yīng)的函數(shù)
此即為第一次的結(jié)果。
如果想使用有意義的別名,就用AS來(lái)定義新的名稱
Select concat(first_name,' ',last_name) AS name from S1;
insert into S1 values('001','Jam','Smith',now());
select concat(first_name,' ',last_name) AS Name from S1;
8.時(shí)間處理
MySQL中有很多時(shí)間處理的函數(shù),排序,比較,取日,取月……
簡(jiǎn)單說(shuō)幾個(gè)常用的。
前面用到了now()函數(shù),現(xiàn)在還有CURDATE(),TODAYS()
CURDATE():獲取當(dāng)前的日期
TODAYS(): 將當(dāng)前的日期轉(zhuǎn)換成天數(shù)
MONTH():取當(dāng)前的月
DAYOFMONTH():取當(dāng)前時(shí)間的天數(shù)
posted on 2010-06-08 13:55
deercoder 閱讀(601)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
SQL