目前流行的資料庫 MySQL Oracle Microsoft SQLServer Microsoft Access PostgreSQL DB2/UDB InfoMax MySQL介紹 世界上最流行的開源資料庫,支持任何平臺的操作系統,是一個強大的關係型資料庫,支持SQL 概念:Structure ...
目前流行的資料庫
MySQL Oracle Microsoft SQLServer Microsoft Access
PostgreSQL DB2/UDB InfoMax
MySQL介紹
世界上最流行的開源資料庫,支持任何平臺的操作系統,是一個強大的關係型資料庫,支持SQL
概念:Structure Query Language(SQL)結構化查詢語言
1、為了與關係型資料庫通訊的語言
2、幾乎所有的關係型資料庫都支持SQL語言
3、操作對象:table表格、view視圖、index索引、program unit程式單元
SQL語言分類
-
-
select 查看數據
-
-
DDL:數據定義語言 data defination language
-
create 創建
-
alter 修改
-
drop 刪除
-
rename 重命名
-
truncate 清空
-
-
DML:數據操縱語言 data mutipulation language
-
insert 新增
-
delete 刪除
-
update 修改
-
select 查看(可以放在DQL中)
-
-
DCL:數據控制語言 data control language
-
grant 授權
-
revoke 撤權
-
-
事務
-
start transaction 開啟事務
-
commit 提交事務
-
rollback 回滾事務
-
savepoint 設置事務回滾點
-
MySQL登錄
-
密文登錄(建議使用):mysql -u 用戶名 -p
-
明文登錄:mysql -u 用戶名 -p密碼 (沒有空格)
-
完全登陸法:myql -u 用戶名 -p密碼 資料庫名稱 -h 伺服器ip -P 埠號
-
mysql -u root -p123456 mysql -h 127.0.0.1 -P 3306
-
-
修改密碼:mysqladmin -u root(用戶名) -p password root(新密碼)
Show命令(常用)
-
切換資料庫(進入資料庫):use 資料庫名稱 eg:use mysql
-
查看系統資料庫:show databases;
-
查看表格(進入資料庫之後):show tables;
-
查看系統狀態:show status;
-
查看系統參數:show variables;
-
查看系統線程:show processlist;(主要用來檢測那些用戶登錄了mysql資料庫,並檢測當前進入了哪個資料庫)
-
查看系統引擎:show engines;(這三者面試常見)
-
InnoDB:現在我們用的資料庫引擎預設是InnoDB,因為它支持事務、行級鎖、外鍵
-
MyIsAm:引擎一般,MySQL5.0以下用的
-
memory:一般適用於數據不是很多,讀寫速率和效率比較高的時候
-
-
查看表結構:show columns from tbname;
-
desc tbname
-
-
查看建表過程:show create table tbname;(主要是查看建表過程的sql語句
-
查看表索引:show index from tbname;(只有表格建立了索引,才可以查看)
-
補充
-
%:匹配0到多個字元 eg:show tables like "test%"; 會查詢以test開頭的所有資料庫
-
_:匹配1個字元
-
*:指代符
-
簡單的select 語句
-
簡單計算:select 1+1;select 1+1 as sum,1*1 product;
-
查看所處資料庫:select database(); show tables; show processlist;
-
select now(),current_date,sysdate();
-
select sysdate(),sleep(3),sysdate();=====sysdate():實時時間
-
select now(),sleep(3),now();=====now():當前時間
-
-
select * from tbname;select host,user from tbname;
MySQL的數據類型(標記的都是常用的)
整型 (下麵的M表示顯示的長度,UNSIGNED表示無符號,ZEROFILL表示長度不夠0填充)
TINYINT[(M)] [UNSIGNED] [ZEROFILL] 一個很小的整數。
有符號的範圍是-128到127,無符號的範圍是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL] 一個小整數。
有符號的範圍是-32768到32767,無符號的範圍是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]一個中等大小整數。
有符號的範圍是-8388608到8388607,無符號的範圍是0到 16777215。
INT[(M)] [UNSIGNED] [ZEROFILL] 一個正常大小整數。
有符號的範圍是-2147483648到2147483647,無符號的範圍是 0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]一個大整數。
有符號的範圍是-9223372036854775808到 9223372036854775807,無符號的範圍是0到18446744073709551615
浮點型 (M表示顯示的位數,D表示小數點後面幾位)
FLOAT[(M,D)] [ZEROFILL]
一個小(單精密)浮點數字。不能無符號。允許的值是-3.402823466E+38到1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是顯示寬度而D 是小數的位數。沒有參數的FLOAT或有<24 的一個參數表示一個單精密浮點數字。
DOUBLE[(M,D)] [ZEROFILL]
一個正常大小(雙精密)浮點數字。不能無符號。允許的值是1.7976931348623157E+308到-2.2250738585072014E-308、 0和 2.2250738585072014E-308到1.7976931348623157E+308。M是顯示寬度而D是小 數位數。沒有一個參數的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一個雙精密 浮點數字。
DOUBLE PRECISION[(M,D)] [ZEROFILL] REAL[(M,D)] [ZEROFILL] 這些是DOUBLE同義詞。
DECIMAL[(M[,D])] [ZEROFILL]
一個未壓縮(unpack)的浮點數字。不能無符號。
NUMERIC(M,D) [ZEROFILL]
這是DECIMAL的一個同義詞。
字元型 (M表示存儲的最大長度)
CHAR(M) [BINARY]
一個定長字元串,當存儲時,總是是用空格填滿右邊到指定的長度。M的範圍是1 ~ 255個字元。
VARCHAR(M) [BINARY]
一個變長字元串,當存儲時在m的範圍內,字元串的長度是多少,就存儲多少長度
TINYBLOB TINYTEXT
一個BLOB或TEXT列,最大長度為255(2^8-1)個字元。
BLOB TEXT
一個BLOB或TEXT列,最大長度為65535(2^16-1)個字元。
MEDIUMBLOB MEDIUMTEXT
一個BLOB或TEXT列,最大長度為16777215(2^24-1)個字元。
LONGBLOB LONGTEXT
一個BLOB或TEXT列,最大長度為4294967295(2^32-1)個字元。
枚舉型和集合型
create table t4( id int, name varchar(50), gender enum('male','female'....)/('0','1') #單選,或者數據缺失null ); create table t5( hobby set('籃球','足球','羽毛球') # 一個或者多個組合,或者為空'',或者數據缺失null );
日期型
DATE
一個日期。支持的範圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示 DATE值,但是允許你使用字元串或數字把值賦給DATE列。
DATETIME
一個日期和時間組合。支持的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL 以'YYYY-MM-DD HH:MM:SS'格式來顯示DATETIME值,但是允許你使用字元串或數字把值賦 給DATETIME的列。
TIMESTAMP[(M)]
一個時間戳記。範圍是'1970-01-01 00:00:00'到2037年的某時。MySQL以 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式來顯示 TIMESTAMP值,取決於是否M是14(或省略)、12、8或6,但是允許你使用字元串或數字把值 賦給TIMESTAMP列。
TIME
一個時間。範圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式來顯示TIME值,但 是允許你使用字元串或數字把值賦給TIME列。
YEAR[(2|4)]
一個2或4位數字格式的年(預設是4位)。允許的值是1901到2155,和0000(4位年格式),如果 你使用2位,1970-2069( 70-69)。MySQL以YYYY格式來顯示YEAR值,但是允許你把使用字 符串或數字值賦給YEAR列。(YEAR類型在MySQL3.22中是新類型。)