通過my.ini配置文件修改字元集:客戶端字元集設置:[mysql]default-character-set=utf8 [mysqld] character-set-server=utf8 。設置之後保存,在重啟mysql服務。登錄mysql:mysql -uroot -p (-u用戶名 -p密碼 ...
通過my.ini配置文件修改字元集:客戶端字元集設置:[mysql]default-character-set=utf8 [mysqld] character-set-server=utf8 。設置之後保存,在重啟mysql服務。登錄mysql:mysql -uroot -p (-u用戶名 -p密碼 -h伺服器名稱(ip地址) -P埠號(3306)-D打開指定資料庫 --prompt=name指定命令提示符(只針對當前連接有效) --delimiter=name指定分隔符 -V輸出版本星系)再輸入密碼。退出:exit,quit,\q 。
得到mysql當前版本:select version(); 顯示當前日期時間:select now(); 顯示當前用戶:select user();
mysql語句的編碼規範:關鍵字與函數名稱全部大寫;資料庫名稱,表名稱,欄位名稱等全部小寫;sql語句必須以分隔符結尾;sql語句支持折行操作,只要不把單詞、標記和引號字元串分割成兩部分,可以在下一行繼續寫;資料庫名稱、表名稱、欄位名稱儘量不要用mysql的保留字,如果需要使用的時候需要使用反引號(``)將名稱括起來。
在命令行調出之前寫過的命令,通過上下箭頭鍵。
開啟mysql的輸出日誌:\T 後跟路徑;\t 結束輸出日誌。
===================================資料庫相關操作:
創建資料庫:(創建一個資料庫相當於在磁碟總創建了一個目錄)
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT] CHARACTER SET[=]charset_name]
查看上一步操作產生的警告:SHOW WARNINGS;
查看當前資料庫已有資料庫:SHOW DATABASES;
查看指定資料庫的定義:SHOW CREATE {DATABASE} db_name;
修改指定資料庫的編碼方式:ALTER {DATABASE} db_name [DEFAULT] CHARACTER SET [=] charset_name;
打開指定資料庫:USE db_name;打開資料庫後就可以在指定資料庫裡面建表等操作。
得到當前打開的資料庫名稱:SELECT DATABASE();
刪除指定的資料庫:DROP {DATABASE} [IF EXISTS] db_name;
====================數據表的操作
先有表結構,再有數據,數據表名稱要求唯一,而且不要包含特殊字元。數據表由行row和列column構成的二維網路。
MySQL中的數據類型:整數類型,浮點類型,字元串類型,日期時間類型,二進位類型。
1、整數類型:TINYINT(-128~127,0~255,1位元組),SMALLINT(-32768~32768,0~65535,2位元組),MEDIUMINT,INT(2的32次方,0~4294967295,4位元組),BIGINT(8位元組),BOOL,BOOLEAN(TINYINT(1),O為false,其餘為true,1位元組)
MySQL幫助手冊:HELP(? \h ) + (類型名稱等其他命令):HELP CREATE TABLE;HELP CREATE DATABASE;
2、浮點類型:FLOUT[(M,D)]:占4個位元組,M是數字總位數,D是小數點後面的位數,如果M和D被省略,根據硬體允許的限制來保存值。單精度浮點數精確到大約7位小數位。 DOUBLE[M,D]:占8個位元組,雙精度浮點數。 DECIMAL[(M,D)]:定點數,和DOUBLE一樣,但在內部以字元串形式存儲數值,所以精度會更高,不會進行四捨五入。
3、字元串類型:CHAR(M):定長字元串,M代表存儲的字元數,M個位元組,0<=M<=255; VARCHAR(M):變長字元串,M個位元組,L+1個位元組,其中 L<=M 並且0<=M<=65535;TINYTEXT;TEXT:用於存儲大量的文本字元串,MEDIUMTEXT;LONGTEXT;ENUM('value1','value2',...):1個或2個位元組,取決於枚舉值的個數(最多65535個值),當我們的值可以被列舉出來的時候選用枚舉類型,枚舉類型的值只能從列舉出的值中選一個;SET('value1','value2',...):集合,把值保存到集合里,集合里最多可以保存64個成員值,和枚舉不同的是SET集合可以選擇多個值。
4、日期時間類型:TIME存儲時間;DATE存儲日期;DATETIME存儲日期時間;TIMESTAMP存儲時間戳;YEAR存儲年份,占用1個位元組大小;一般都是通過整型來保存時間戳,這樣方便計算。
5、二進位類型:主要是用來保存二進位數據,用的少,一般視頻和圖片都以路徑的形式加以保存。
====================數據表的存儲引擎
存儲引擎就是表的類型。資料庫的存儲類型決定了表在電腦中的存儲方式,用戶可以根據不同的存儲方式、是否進行事務處理等來選擇合適的存儲引擎。Mysql常用的存儲引擎:InnoDB存儲引擎(支持事務,回滾。併發控制,支持外鍵約束,讀寫效率低,占用空間大。預設引擎),MyISAM存儲引擎(不支持事務),MEMORY存儲引擎(存放在記憶體中,處理速度快,較少使用)。查看MySQL支持的存儲引擎:SHOW ENGINES;查看顯示支持的存儲引擎信息:SHOW VARIABLES LIKE 'have%';查看預設的存儲引擎:SHOW VARIABLES LIKE 'storage_engine';
====================數據表的創建
MySQL註釋:#;--;
欄位註釋:COMMENT
--創建maizi資料庫
CREATE DATABASE IF NOT EXISTS `maizi` DEFAULT CHARACTER SET 'UTF8';
USE `maizi`;
CREATE TABLE IF NOT EXISTS `user`(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('男','女','保密'),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8,2),
tel INT,
married TINYINT(1)
)ENGINE=INNODB CHARSET=UTF8;
註意:當需要輸入中文的時候,需要臨時轉換客戶端的編碼方式:SET NAMES GBK;這個轉換隻針對當前連接有效,而且是在輸入以上命令以後有效。
建表時多個欄位間,以逗號分隔。
查看當前資料庫下的數據表:SHOW TABLES;(創建一個表相當於在磁碟上創建了一個文件。)
--課程表
CREATE TABLE IF NOT EXISTS course(
cid TINYINT,
courseName VARCHAR(50),
courseDesc VARCHAR(200)
);
--創建新聞分類表cms_cate
CREATE TABLE IF NOT EXISTS cms_cate(
id TINYINT,
cateName VARCHAR(50),
cateDesc VARCHAR(200)
)ENGINE=MyISAM CHARSET=UTF8;
====================下個視頻:7