探索Android软键盘的疑难杂症
Android多分辨率适配框架(1)— 核心基础
自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
SQL简述
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
DDL
创建数据库
create database db1;
创建名字为db1的数据库
show create database db1;
查看刚才创建的数据库db1,结果如下:
| Database | Create Database
| db1 | CREATE DATABASE db1
/!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
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’);
INSERT INTO employee
(id,username,gender,birthday,salary,entry_date,RESUME)
VALUES (2,’武藤兰姐姐’,’female’,’1980-09-12’,30000.00,’2000-12-12’,’good’);
INSERT INTO employee
(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
之前我们说过:DCL(数据控制语言)用来定义访问权限和安全级别;在此对其进行简单的介绍
创建用户
创建用户的语法为:
create user 用户名@IP地址 identified by 密码;
请看如下示例:
create user [email protected] 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 [email protected] identified by ‘123456’;
撤销授权
撤销授权的语法为:
revoke 权限1,权限2,……..,权限n on 数据库名.* from 用户名@IP地址;
如果撤销用户拥有的某数据库的全部权限,语法为:
revoke all on db1.* from [email protected];
查看用户权限
查看用户权限的语法为:
show grants for 用户名@IP地址;
请看如下示例:
show grants for [email protected];
删除用户
删除用户权限的语法为:
drop user 用户名@IP地址;
请看如下示例:
drop user [email protected];