谷哥的小弟学后台(02)——MySQL(2)



探索Android软键盘的疑难杂症

深入探讨Android异步精髓Handler

详解Android主流框架不可或缺的基石

站在源码的肩膀上全解Scroller工作机制



Android多分辨率适配框架(1)— 核心基础

Android多分辨率适配框架(2)— 原理剖析

Android多分辨率适配框架(3)— 使用指南



自定义View系列教程00–推翻自己和过往,重学自定义View

自定义View系列教程01–常用工具介绍

自定义View系列教程02–onMeasure源码详尽分析

自定义View系列教程03–onLayout源码详尽分析

自定义View系列教程04–Draw源码分析及其实践

自定义View系列教程05–示例分析

自定义View系列教程06–详解View的Touch事件处理

自定义View系列教程07–详解ViewGroup分发Touch事件

自定义View系列教程08–滑动冲突的产生及其处理


版权声明


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];

时间: 2024-11-05 16:27:04

谷哥的小弟学后台(02)——MySQL(2)的相关文章

谷哥的小弟学后台(01)——MySQL(1)

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View

谷哥的小弟学后台(04)——MySQL(4)

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 具体解释Android主流框架不可或缺的基石 站在源代码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自己定义View系列教程00–推翻自己和过往.重学自己定义View 自己定义View系列教程01–经常使用工具介绍 自己定义View系列教程02–onMeasure源代码详尽

谷哥的小弟学后台(06)——JDBC

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View

谷哥的小弟学前端(07)——CSS基础知识(5)

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View

寒哥教你学iOS - 经验漫谈

http://www.jianshu.com/p/cb54054d3add 寒哥教你学iOS - 经验漫谈 字数2848 阅读1896 评论19 喜欢43 顺便来个广告 iOS开发者 群173499350 给大家提供一个交流技术 也可以聊天打屁的平台 本篇文章主要讲解 4个问题 load妙用 aop面向切面编程 NSNumber Or Int @()适配64位 1 让appDelegate 减少负担 经过漫长时间的学习 你终于掌握了iOS大法 你找到了份iOS开发的工作 信誓旦旦的要开始你的co

马哥学习笔记二十六——MySQL主从复制

配置MySQL复制基本步骤: 一.master 1.启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2.选择一个惟一server-id server-id = {0-2^32} 3.创建具有复制权限的用户 REPLICATION SLAVE REPLICATION CLIENT 二.slave 1.启用中继日志 relay-log = relay-log relay-log-index = 2.选择一个惟一的server

【凯子哥带你学Android】Andriod性能优化之列表卡顿——以“简书”APP为例

这几天闲得无聊,就打开手机上的开发者模式里面的"GPU过度绘制"功能,看看别家的App做的咋样,然后很偶然的打开了"简书",然后就被它的过度绘制惊呆了,于是写了这篇性能分析的文章,从一个只有APK文件的角度,说下如何寻找布局中可能存在的性能问题,以及解决方案.本文章以简书Android最新版本1.9.1进行分析. GPU过度绘制 Hierarchy View SysTrace TraceView 总结 分析资源下载 GPU过度绘制 首先打开下面两个功能开关 开发者模

【凯子哥带你学Framework】Activity界面显示全解析

前几天凯子哥写的Framework层的解析文章<Activity启动过程全解析>,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的. 我个人觉得,深入分析的文章必不可少,但是对于更多的Android开发者——即只想做应用层开发,不想了解底层实现细节——来说,“整体上把握,重要环节深入“是更好的学习方式.因为这样既可以有完整的知识体系,又不会在浩瀚的源码世界里迷失兴趣和方向. 所以呢,今天凯子哥又带来一篇文章,接着上一篇的结尾,重点介绍Activity开启之后

【转载】【凯子哥带你学Framework】Activity界面显示全解析(下)

如何验证上一个问题 首先,说明一下运行条件 //主题 name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar" //编译版本 android { compileSdkVersion 19 buildToolsVersion '19.1.0' defaultConfig { applicationId "com.socks.uitestapp" minSdkVersio