1.概念
資料庫:儲存有組織的資料的容器。
表: 某種特定類型資料的結構化清單
模式:關于資料庫和表的布局和特性的資訊?(有時指資料庫)
主鍵: primary key 一個列或一組列,其值能唯一區分表中的每個行(滿足:唯一性和不為NULL)
SQL: 結構化查詢語言,與資料庫通信的語言
MySQL: DBMS 資料庫系統管理軟體
注意點:
MySQL不區分大小寫,但将關鍵字大寫易于閱讀,對表名,資料庫名,列名最好使用時保持大小寫一緻。
是否區分大小寫,由資料庫管理者在建立資料庫時設定,Mysql通常預設不區分大小寫。
2.基本語句練習
使用《MySQL必知必會》的樣例表
show
usetest;
show tables;
showcreate databasetest;
showcreate tableproducts;
show status;
show errors;
show warnings;
選區products表的指定列,剔除重複行,保留從第三行起的接下來6行。
select distinct prod_Name, prod_id, prod_name from products limit 3,6;
在上一個操作之上加入排序,按價格降序排列,再按産品名稱升序排列,同樣取結果的第三行到第九行。
select distinct prod_name, prod_id, prod_price fromproductsorder by prod_price desc, prod_name
limit3,6;
查找顧客表,傳回指定除email位址以外的使用者:
select * from customers where cust_email is not '[email protected]';
注意:獲得的結果不包括email值為NULL的使用者,NULL在MySQL通常指未知,故在本次查詢中不傳回帶NULL的結果項。‘資料庫不知道他們是否比對,是以在比對過濾或比對不過濾時不傳回他們’。是以,在進行條件查詢時,需要額外考慮是否傳回NULL項:
查找顧客表,傳回指定email位址以外以及未填寫email位址的使用者:
select * from customers where cust_email != '[email protected]' or cust_email is null;
【通配符】,查找所有email位址以‘rabb’開頭的顧客的資訊:
select * from customers where cust_email like 'rabb%';
%比對任意個字元,‘_’比對一個字元。
通配符一般不要處于搜尋模式的開始處,會比較慢。
LIKE關鍵字必須對整個列值進行比對,隻需要部分值比對可以使用正規表達式。
【正規表達式】查詢産品名以JetPack開始,000結尾的産品資訊,區分大小寫。分别以LIKE關鍵字和正規表達式處理:
select * from products where prod_name like binary 'JetPack%000';select * from products where prod_name regexp binary '^JetPack.*000$';