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