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