<a href="http://blog.csdn.net/lfdfhl/article/details/52415390">探索Android軟鍵盤的疑難雜症</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/53332936">深入探讨Android異步精髓Handler</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/52673536">詳解Android主流架構不可或缺的基石</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/53143114">站在源碼的肩膀上全解Scroller工作機制</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/52735103">Android多分辨率适配架構(1)— 核心基礎</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/52877866">Android多分辨率适配架構(2)— 原理剖析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/53046113">Android多分辨率适配架構(3)— 使用指南</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51671038">自定義View系列教程00–推翻自己和過往,重學自定義View</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51324275">自定義View系列教程01–常用工具介紹</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51347818">自定義View系列教程02–onMeasure源碼詳盡分析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51393131">自定義View系列教程03–onLayout源碼詳盡分析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51435968">自定義View系列教程04–Draw源碼分析及其實踐</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51508727">自定義View系列教程05–示例分析</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51559847">自定義View系列教程06–詳解View的Touch事件處理</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51603088">自定義View系列教程07–詳解ViewGroup分發Touch事件</a>
<a href="http://blog.csdn.net/lfdfhl/article/details/51656492">自定義View系列教程08–滑動沖突的産生及其處理</a>
Structure Query Language(結構化查詢語言)簡稱SQL,它被美國國家标準局(ANSI)确定為關系型資料庫語言的美國标準,後被國際化标準組織(ISO)采納為關系資料庫語言的國際标準。資料庫管理系統可以通過SQL管理資料庫;定義和操作資料,維護資料的完整性和安全性
SQL的優點
簡單易學,具有很強的操作性
絕大多數重要的資料庫管理系統均支援SQL
高度非過程化;用SQL操作資料庫時大部分的工作由DBMS自動完成
SQL的分類
DDL(Data Definition Language)
資料定義語言,用來操作資料庫、表、列等;
常用語句:CREATE、 ALTER、DROP
DML(Data Manipulation Language)
資料操作語言,用來操作資料庫中表裡的資料;
常用語句:INSERT、 UPDATE、 DELETE
DCL(Data Control Language)
資料控制語言,用來操作通路權限和安全級别;
常用語句:GRANT、DENY
DQL(Data Query Language)
資料查詢語言,用來查詢資料
常用語句:SELECT
在此,請注意區分DDL和DML:
它們兩者的作用對象和級别不一樣。DDL操作的對象是資料庫,或者一張表,或者表中的某列;DML操作的是表裡的資料。
在了解完這些基礎知識之後,我們來依次詳細學習DDL、DML、DCL、DQL
建立資料庫
create database db1;
建立名字為db1的資料庫
show create database db1;
檢視剛才建立的資料庫db1,結果如下:
| Database | Create Database
| db1 | CREATE DATABASE <code>db1</code> /!40100 DEFAULT CHARACTER SET utf8 /**
從這裡可以看出,剛才建立的資料庫采用的是utf8作為字元集。
當然,我們還可以在建立資料庫時為其指定字元集
create database db2 character set gbk;
查詢資料庫
show databases;
查詢出所有的資料庫
删除資料庫
drop database db2;
其實,從這也可以看出來建立資料庫和删除資料庫是非常類似的,隻不過它們的關鍵是不同;前者使用的是create後者是drop
修改資料庫
alter database db1 character set gbk;
将資料庫db1的字元集修改為gbk
切換資料庫
use db1;
表示現在開始使用資料庫db1
檢視目前使用的資料庫
select database();
請注意該語句最後有個括号()
建立表
文法如下:
create table 表名( 字段1 字段類型, 字段2 字段類型, …………… 字段n 字段類型 );
示例,建立一張員工表:
在此建立一張員工表,包含了員工的基本資訊。
檢視目前資料庫中的所有表
show tables;
檢視剛才建立的表
show create table employee;
檢視表的字段資訊
describe employee;
也可以簡寫為:
desc employee;
修改表的字元集
alter table employee character set gbk;
為表增加列
alter table employee add column photo blob;
為表添加了資料類型為blob的列photo
alter table employee add photo blob;
修改列的長度
alter table employee modify job varchar(170);
将表中job字段的長度修改為170
修改列的名稱
alter table employee change name username varchar(100);
将表中原name改名為username
删除列
alter table employee drop photo;
删除表中的photo列
修改表的名字
rename table employee to user;
删除表
drop table user;
DML用于對表中的資料進行增、删、改的操作。常用的語句有INSERT 、UPDATE、 DELETE
嗯哼,我們先建立一張表
create table employee( id int, username varchar(100), gender varchar(10), birthday date, salary float(10,2), entry_date date, resume text
插入操作:INSERT
INSERT的文法:
INSERT INTO 表名(列名1,列名2 …)VALUES(列值1,列值2…);
請注意:
列名與列值的類型、個數、順序要一一對應
列值不要超出列定義的長度
如果插入空值,請使用null
插入的日期和字元需用引号括起來,例如:’sun’、’2016-09-04’
INSERT的示例:
INSERT INTO employee (id,username,gender,birthday,salary,entry_date,RESUME) VALUES (1,’大澤瑪利亞’,’female’,’1990-09-12’,20000.00,’2010-11-22’,’beauty’); VALUES (2,’武藤蘭姐姐’,’female’,’1980-09-12’,30000.00,’2000-12-12’,’good’); (id,username,gender,birthday,salary,entry_date,RESUME) VALUES (3,’井空蒼妹妹’,’female’,’1987-07-28’,50000.00,’2001-08-09’,’great’);
當然,也可以批量插入資料:
INSERT INTO employee VALUES (4,’杉原杏璃’,’female’,’1992-04-01’,60000.00,’2014-09-03’,’very good’), (5,’佐佐木希’,’female’,’1993-05-09’,70000.00,’2013-04-04’,’very nice’), (6,’伊藤梅子’,’female’,’1995-11-07’,80000.00,’2012-03-05’,’very sexy’);
修改操作:UPDATE
UPDATE的文法:
UPDATE 表名 SET 列名1=列值1 , 列名2=列值2…..WHERE 列名=值
UPDATE的示例:
UPDATE employee SET salary=88000;
将表中所有員工的salary修改為88000
UPDATE employee SET salary=99000 WHERE username=’大澤瑪利亞’;
将表中username為大澤瑪利亞的員工的salary修改為99000
UPDATE employee SET salary=69000,birthday=’1993-02-28’ WHERE username=’井空蒼妹妹’;
将表中username為井空蒼妹妹的員工的salary修改為69000、birthday修改為1993-02-28
UPDATE employee SET salary=salary+1000 WHERE username=’佐佐木希’;
将表中username為佐佐木希的員工的salary增加1000
删除操作:DELETE
DELETE的文法:
DELETE FROM 表名 WHERE 列名=值
DELETE的示例:
DELETE FROM employee WHERE username=’大澤瑪利亞’;
将表中username為大澤瑪利亞的員工删除
DELETE FROM employee;
使用DELETE将表中所有資料删除,執行該操作後表結構還存在,删除後的資料可以找回
TRUNCATE TABLE employee;
使用TRUNCATE将表中所有資料删除,執行該操作後系統将該表DROP然後再建立一個同樣的新表,其執行速度遠快于DELETE;但是請注意:該方式删除的資料不能找回。
之前我們說過:DCL(資料控制語言)用來定義通路權限和安全級别;在此對其進行簡單的介紹
建立使用者
建立使用者的文法為:
create user 使用者名@IP位址 identified by 密碼;
請看如下示例:
create user xy@loaclhost identified by ‘123456’;
在此建立一個新使用者,使用者名為xy密碼是123456
請注意,建立新使用者後需要執行指令更新權限表(grant tables)
FLUSH PRIVILEGES;
給使用者授權
給戶授權的文法為:
grant 權限1,權限2,……..,權限n on 資料庫名.* to 使用者名@IP位址 identified by ‘密碼’;
如果将操作資料庫的所有的權限授予使用者,文法為:
grant all on 資料庫名.* to 使用者名@IP位址 identified by ‘密碼’;
grant all on db1.* to xy@localhost identified by ‘123456’;
撤銷授權
撤銷授權的文法為:
revoke 權限1,權限2,……..,權限n on 資料庫名.* from 使用者名@IP位址;
如果撤銷使用者擁有的某資料庫的全部權限,文法為:
revoke all on db1.* from xy@localhost;
檢視使用者權限
檢視使用者權限的文法為:
show grants for 使用者名@IP位址;
show grants for xy@localhost;
删除使用者
删除使用者權限的文法為:
drop user 使用者名@IP位址;
drop user xy@localhost;