MySQL笔记..

MySQL笔记..
MySQL笔记..

03_MySQL

Day01

一、数据库(DataBase DB)

1、数据库:存储数据的仓库

2、数据库分类:

(1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等)

(2)非关系型数据库(Nosql):MongDB等

3、Mysql安装

(1)window:配置文件my.ini

进入命令行开始--运行--cmd

(2)Linux:配置文件:/etc/https://www.360docs.net/doc/1a9518952.html,f

终端

mysql -uroot -p

说明: Mysql 数据库的存储位置

/var/lib/mysql

4、Mysql登录

mysql -u用户名-p密码[-P3306]

[-D数据库名称]

5、Mysql退出

quit

exit

\q

6、Mysql注释

-- 注释

# 注释

7、修改提示符(Prompt)

(1)进入MySQL的命令

prompt 提示符名称

(2)登录MySQL写的命令

mysql -uroot -p --prompt=提示符名称

说明:

a.恢复提示符prompt mysql>

b.特殊符号

\h 主机名称

\D 系统时间日期

\d 选择数据库名称

8、SQL(Structured Query Language)结构化查询语句

(1)DDL(数据创建语言):创建数据库,创建表、创建视图等

CREATE(创建),DROP(删除),ALTER(修改)

(2)DML(数据操作语言):对数据库的数据的增,删,改

INSERT(添加),DELETE(删除),UPDATE(改)

(3)DQL(数据查询语言):对数据库的数据查询

SELECT(查询)

(4)DCL(数据库控制语言):分配(GRANT)用户权限

及权限(REVOKE)撤销

9、SQL命令行规范

a.系统命令大写,名称小写

b.SQL命令行以分号结束或\g

说明:结束分隔符可以用delimiter 符号名称

c.SQL命令行支持折行,但不能在函数,名称,引号中不能折行

d.SQL命令中的名称不能用关键字和保留字,如果使用必须用反引号``括起来,例如`user`

10、创建数据库(DDL)

(1)查看数据库

SHOW DATABASES;

(2)创建数据库

CREATE DATABASE [IF NOT EXISTS]

数据库名称[[DEFAULT] CHARACTER

SET [=] 编码];

(3)查看创建数据库命令

SHOW CREATE DATABASE 数据库名称;

(4)删除数据库

DROP DATABASE [IF EXISTS] 数据库名称;

(5)修改数据库的编码

ALTER DATABASE 数据库名称

[DEFAULT] CHARACTER SET [=]编码;

(6)选择数据库

USE 数据库名称;

(7)查看当前选择的数据库

SELECT DATABASE();

11、创建数据库中的表

(1)查看表

SHOW TABLES;

(2)创建表结构

CREATE TABLE [IF NOT EXISTS] 表名(

字段(Field)名称|列名称数据类型[字段属性|约束条件],

字段(Field)名称|列名称数据类型[字段属性|约束条件]

...

)[ENGINE=InnoDB DEFAULT CHARSET=utf8];

说明:数据库最小单位是表,一定是先有表结构

再添加数据

(3)查看表结构

DESC 表名;

DESCRIBE 表名;

SHOW COLUMNS FROM 表名;

(4)查看创建表结构命令

SHOW CREATE TABLE 表名;

12、数据操作(DML DQL)

(1)插入数据

INSERT 表名(字段1,字段2...)

VALUE[S]

(值,值...),

(值,值...)...;

(2)查询数据:

SELECT * FROM 表名;

SELECT 字段1,字段2,... FROM 表名; 13、MySQL数据类型

(1)整型

TINYINT([M]) [UNSIGNED|ZEROFILL]:

范围:大小1字节(Byte 2^8)

有符号位-128~127

无符号0~255

SMALLINT([M]) [UNSIGNED|ZEROFILL]:范围:大小2字节(Byte 2^16)

有符号位-32768~32767

无符号0~65535

MEDIUMINT([M]) [UNSIGNED|ZEROFILL]:范围:大小3字节(Byte 2^24)

有符号位-8388608~8388607

无符号0~16777215

INT([M]) [UNSIGNED|ZEROFILL]:

范围:大小4字节(Byte 2^32)

有符号位-2147483648~2147483647

无符号0~4294967295

BIGINT([M]) [UNSIGNED|ZEROFILL]:

范围:大小8字节(Byte 2^64)

说明:

字段属性:

UNSIGNED:无符号位(正数) ZEROFILL: 当显示的长度小于指定长度用0填补,会自动添加UNSIGNED (2)浮点

a.单精度浮点

FLOAT([M,D]) [UNSIGNED|ZEROFILL]

范围:

-3.40e38 ~3.40e38

b.双精度浮点

DOUBLE([M,D]) [UNSIGNED|ZEROFILL]

-1.79e308 ~1.79e308

c.定长浮点

DECIMAL([M,D])[UNSIGNED|ZEROFILL]

说明:

当指定D小点位数,FLOAT,DOUBLE超出指定位数会四舍五入存近似值,DECIMAL超出指定位数,报警告错误,DECIMAL存精确值

(3)字符型

a.CHAR([M]):定长字符(0-255字节一个字母占一个字节)

b.VARCHAR([M]):变长字符(0-65535字节)

VARCHAR存储长度受下面情况影响:

(a)一个字段最大65535字节

(b)编码

gbk:至多占2个字节

utf8:至多占3个字节65532/3 =21844

(c)多个字符型字段中总的长度不能超过

65535(21844)

c.TINYTEXT:0-255字节

d.TEXT:0-65535字节

e.MEDIUMTEXT:0-16777215字节

f.LONGTEXT:0-4294967295字节

说明: CHAR效率高但不省空间,VARCHAR效率低但省空间,TEXT效率最低

(4)布尔型

BOOLEAN

TINYINT(1)

(5)枚举类型

ENUM:范围:0-65535字节

例如:

sex ENUM('man','woman','secret');

14、约束条件(1)

NOT NULL:不为空

DEFAULT:默认值

[PRIMARY] KEY:主键,一个表中只能有一个主键,并且是主键的字段一定自动添加NOT NULL 和不重复(UNIQUE)

UNIQUE [KEY]:不重复,一个表中可以有多个不重复(例如:用户名不重复,邮箱不重复)

AUTO_INCREMENT:自动增长,字段如果是编号当添加记录(行)时,编号自增,并且

AUTO_INCREMENT的字段一定是主键。

Day02

一、表结构的修改(DDL)

1、添加表结构的字段

a.ALTER TABLE 表名

ADD 字段名数据类型[字段属性|约束条件]

[FIRST|AFTER 字段名];

b. 添加多个字段

ALTER TABLE 表名

ADD 字段名数据类型[字段属性|约束条件]

[FIRST|AFTER 字段名],

ADD 字段名数据类型[字段属性|约束条件]

[FIRST|AFTER 字段名]...;

2、删除字段

ALTER TABLE 表名

DROP 字段名,

DROP 字段名...;

3、修改字段

ALTER TABLE 表名

MODIFY 字段名数据类型[字段属性|约束条件]

[FIRST|AFTER 字段名];

4、修改字段名称

ALTER TABLE 表名

CHANGE 旧字段名新字段名数据类型[字段属性|约束条件]

[FIRST|AFTER 字段名];

5、添加默认值

ALTER TABLE 表名

ALTER 字段名SET DEFAULT 值;

6、删除默认值

ALTER TABLE 表名

ALTER 字段名DROP DEFAULT;

7、添加主键

ALTER TABLE 表名

ADD PRIMARY KEY(字段名称);

8、删除主键

ALTER TABLE KEY|INDE表名

DROP PRIMARY KEY;

说明:如果有AUTO_INCRMENT属性,一定要先删除

AUTO_INCRMENT才能删除主键

9、添加唯一性

a.ALTER TABLE 表名

ADD UNIQUE KEY|INDEX(字段名);

b.a.ALTER TABLE 表名

ADD [CONSTRAINT 约束名称] UNIQUE KEY|INDEX(字段名);

10、删除唯一性

ALTER TABLE 表名

DROP KEY|INDEX 唯一性约束名称;

说明:如果添加唯一性没有设置唯一性约束名称,默认为字段名称

11、修改表名称

a. ALTER TABLE 表名

RENAME [AS|TO] 新表名;

b. RENAME TABLE 旧表名TO 新表名;

12、重置自动增长

ALTER TABLE 表名

AUTO_INCREMENT=1;

二、帮助

? 命令

help 命令

\h 命令

三、表中对数据的操作(DML)

(1)添加(INSERT)

a.不列出表字段的添加(从第一字段到最后一个字段都赋值)INSERT [INTO] 表名VALUE[S] (值,值,值...);

b.不省略字段添加(添加一条记录)

INSERT [INTO] 表名(字段名,字段名...) VALUE[S] (值,值...);

c.不省略字段添加(添加多记录)

INSERT [INTO] 表名(字段名,字段名...)

VALUE[S]

(值,值...),

(值,值...)...;

d.INSERT...SET (只能添加一条记录)

INSERT [INTO] 表名SET 字段名=值,

字段名=值...;

(2)更新(UPDATE)

UPDATE 表名SET 字段名=值,

字段名=值... [WHERE 条件];

说明:

如果更新没有WHERE 条件,表中字段值都相同的值记录

(3)删除(DELETE)

a.DELETE FROM 表名[WHERE 条件];

说明:如果删除没有WHERE 条件,将会清空表中所有数据,AUTO_INCREMENT 不重置

b. TRUNCATE 表名;

说明: 清空表中所有数据,并且AUTO_INCREMENT 重置

四、表中对数据的查询(DQL)

1、查询所有字段(效率底)

SELECT * FROM 表名;

2、列出字段查询

SELECT 字段名|expr,字段名|expr...

FROM 表名;

3、给字段起别名

SELECT 字段名[AS]别名

FROM 表名;

4、给表起别名

SELECT 字段名

FROM 表名[AS]别名;

5、表名(别名).字段名(字段来自哪个表)

SELECT 表名(别名).字段名

FROM 表名[AS]别名;

6、数据库名.表名(表来自哪个数据库)

SELECT 字段名

FROM 数据库名.表名;

7、

SELECT 字段名|expr,字段名|expr...

FROM 表名

[WHERE 条件]

[GROUP BY 字段]

[HAVING 条件]

[ORDER BY 字段]

[LIMIT [$offset,]$length];

7.1

WHERE 条件:条件过滤

(1)比较运算符

> >= < <= =(等于) != <>

<=>(判断NULL)

(2)IS [NOT] NULL (判断NULL)

(3)[NOT] BETWEEN ...AND 范围值

(4)[NOT] IN(值,值...) 某个值

(5)逻辑运算符实现条件过滤

!非

&& AND 与

|| OR 或

(6) LIKE 实现模糊查询

[NOT] LIKE '字符串'

关键字

(1)%:包含任意多个字符(0个,1个,多个)

(2)_: 包含任意一个字符

7.2 GROUP BY 字段:分组,将字段中相同的值分为一组

说明:

a.分组值显示一个结果,如果多个值显示小编号的结果,一般显示分组的字段

b. 分组结合聚合函数使用

COUNT(*):获得每组中的个数,包含null

COUNT(字段) :不包含null值

AVG(字段):获得每组中的平均值

MAX(字段):获得每组中的最大值

MIN(字段):获得每组中的最小值

SUM(字段):获得每组中的和

7.3 HAVING 条件:二次条件过滤

说明:

a. WHERE 对字段的条件过滤

b. HAVING对一个运行结果的条件过滤,结合分组使用

7.4 ORDER BY 字段:对字段排序

说明:

ORDER BY 字段[ASC升序|DESC降序]

7.5

LIMIT [$offset,]$length:显示n条记录

说明:

a.$offset:偏移量,起始编号,编号从0开始

b.$length:显示记录(行)长度

c.实现web程序的分页原理

计算$offset =(当前页-1)*显示长度

$offset = ($curpage-1)*$pagesize

Day03

一、对表中的数据查询

SELECT 字段名,字段名...

FROM 表名

[WHERE 条件]

[GROUP BY 字段]

[HAVING 条件]

[ORDER BY 字段]

[LIMIT [$offset,]$length]

计算$offset = (当前页-1)*显示条数

实现web页面分页原理

二、MySQL运算符和函数

说明:用SELECT 语句输出显示

1、算术运算符及函数

a. + - * / % ,MOD 求余数

b.POW POWER 求幂次

c. SQRT 开平方

d.FLOOR 向下取整

e.CEIL 向上取整

f.ROUND 四舍五入

g.RAND:随机小数[0,1)

例如: [0-100]整数

ROUND( RAND()*100)

2、字符函数

a.LOWER:转为小写字母

b.UPPER:转为大写字母

c.SUBSTR, SUBSTRING:字符串截取,编号从1开始

d.CONCAT:CONCAT(str,str,str);字符串连接

e.CONCAT_WS:CONCAT_WS(delimiter,str,str,str)

用分隔符将字符串连接

f.TRIM: 清除两边空格

g.RTRIM:清除右边空格

h.LTRIM:清除左边空格

i.REPLACE: 字符串替换

REPLACE($str,$reseach,$replacement)

j.LENGTH :字符串长度

3、比较运算符

a. > >= < <= = != <> <=>判断NULL值

b. [NOT] BETWEEN ... AND

c. [NOT] IN(值,值...)

d. IS [NOT] NULL 判断NULL值

4、逻辑运算符

! (非)

&& AND (与并且)

|| OR (或)

5、信息函数

a. DATABASE() :显示当前选择数据库

b. NOW():获得系统时间日期函数

c. VERSION()获得MYSQL版本

d. USER():获得当前使用MYSQL的用户

6、聚合函数

COUNT(*): 获得每组中的个数,包含null值COUNT(字段):不包含null值

AVG(字段):获得每组中的平均值

MAX(字段):获得每组中的最大值

MIN(字段):获得每组中的最小值

SUM(字段):获得每组中的和

7、加密函数

MD5:返回32位的散列值

PASSWORD

三、多表操作

1、表复制

INSERT 表(字段,字段...)

SELECT ...

2、多表更新(根据一个表更新另一个字段)UPDATE 表1

INNER JOIN 表2

ON 两个表的逻辑关系

SET 字段=值[WHERE 条件];

3、多表联合查询

SELECT 字段名,字段名... FROM 表1

连接类型表2

ON 两个表的逻辑关系

连接类型表3

ON 两个表的逻辑关系

(1)连接类型

a.内连接(INNER JOIN):查找两个表符合条件的信息

b.外连接:

左外连接(LEFT [OUTER] JOIN)显示左表中的所有信息和右表中符合条件的信息,如果左表中的信息右表没有,用null 填补

右外连接(RIGHT [OUTER] JOIN)显示右表中的所有信息和左表中符合条件的信息,如果右表中的信息左表没有,用null 填补

4、多表删除(根据一个表删除另一个表的信息)

DELETE 删除表FROM 表1

INNER JOIN 表2

ON 两个表的逻辑关系

[WHERE 条件]

5、子查询(嵌套查询)

1.子查询:在SQL语句中嵌套SELECT语句

2.特点:

(1)子查询是嵌套SELECT语句

(2) 子查询的SELECT语句要用括

号括起来并起别名

(3)一般结合WHERE 和GROUP BY 使用

3.使用

(1)WHERE后使用

a. IN

b. 比较运算符:

说明:比较运算符只能比较一个结果,当结果不唯一时,会报错,要ALL 或SOME/ANY 来解决

> >= ALL 大于最大值

< <= ALL 小于最小值

> >= SOME/ANY 大于最小值

< <= SOME/ANY 小于最大值

= SOME/ANY IN

(2)FROM 后使用:产生新表用括号括起来,并且起别名,例如联合查询产生新表

4. INSERT...SET:可以实现子查询

四、约束条件(Constraint)

1、约束:对字段实现非空,唯一,完整性等约束。

2、约束种类

a.NOT NULL 非空

b.DEFAULT 默认值

c.[PRIMARY] KEY 主键

d.UNIQUE [KEY] 唯一性

e. FOREIGN KEY 外键

3、约束分类

(1)列约束:写在字段后叫列约束

(2)表约束:可以对一个字段以上实现约束

说明:

a. NOT NULL ,DEFAULT 必须是列约束

b. 两个字段同时为主键,或外键,必须是表约束

4、约束格式

(1)列约束

CREATE TABLE test(

id SMALLINT UNSIGNED KEY AUTO_INCREMENT,

name NOT NULL UNIQUE KEY

);

(2)表约束

CREATE TABLE test(

id SMALLINT UNSIGNED AUTO_INCREMENT,

name NOT NULL,

PRIMARY KEY(id),

UNIQUE KEY(name)

);

5、FOREIGN KEY 外键

(1)外键:对两个表实现的完整性约束

(2)格式

CREATE TABLE test(

....,

[CONSTRAINT 约束名称] FOREIGN KEY(外键列)

REFERENCES 参考表(字段名称)

);

说明:

(1)一定是表约束

(2)一定先有参考表(父表),在有外键表(子表)

(3)数据类型必须相同

例如:

a.如果是整型,UNSIGNED也必须相同

b.如果是字符型,长度可以不一样,但

编码必须一致

(4) 创建外键表,MySQL引擎必须是InnoDB

(5)外键表(子表)中的外键列只能添加参考表(父表)对应字段的相应信息值

(6) 如果创建外键列没定义约束名称,那会自动产生索引外键约束名称Day04

1、外键(FOREIGN KEY)

(1) 外键:对两个表的完整性和一致性的约束

(2)

CREATE TABLE test(

...

FOREIGN KEY(外键列)

REFERENCES 参考表(字段名)

[ON UPDATE CASCADE|RESTRICT|SET NULL|NO ACTION] [ON DELETE CASCADE|RESTRICT|SET NULL|NO ACTION] );

2、逻辑外键:父表和子表是一个表

举例: 无限级分类菜单

3、数据库的备份和恢复

(1)数据库的导出

mysqldump uroot -p 数据库名称[表名]

> 位置文件名称(.sql)

(2)数据库的导入

mysql> USE 数据库名称

mysql> source 位置文件名称(.sql)

4、可视化工具操作MySQL

(1) (C/S):Client/Server

MySQL-Front Navicat等

(2)(B/S):Browser/Server

phpmyAdmin

(3) phpmyAdmin 安装

设置配置php.ini

加载动态链接库文件

a.

;extension = php_mysql.dll

;extension = php_mysqli.dll

;extension = php_mbstring.dll

b. 指定动态链接库文件夹位置

extension_dir = E:\psd1603\php5.4\ext

将前面的分号去掉,重启apache生效

我的MYSQL学习心得

我的MYSQL学习心得 一、使用视图的理由是什么? 1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2.查询性能提高。 3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 例子:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c。最后a表与b表都不会存在了。而由于原来程序中编 写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据)。而通过视图就可以做到不修改。定义两个视图名字还是原来的表名a和b。a、b视图完成从c表中取出内容。

说明:使用这样的解决方式,基于对视图的细节了解越详细越好。因为使用视图还是与使用表的语法上没区别。比如视图名a,那么查询还是"select * from a"。 4.复杂的查询需求。可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。 视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了。 二、通过更新视图实现更新真实表 看到很多例子,更新视图可以更新真实表。原因,我是这样理解的:视图并没有保存内容。只是引用数据。那么,更新视图,其实就是以引用的方式操作了真实表

MySQL权限表都有哪些

MySQL权限表都有哪些,分别控制MySQL哪些权限,有哪些注意事项? 1、user:记录账号、密码、全局性权限信息等,里面的权限是全局级的 1)*_priv:适用MySQL服务器全局性的权限,假设某个账号拥有Delete_priv的全局性权限,则表示它可以对任何表进行删除数据的操作,这非常危险,所有一般只有超级用户root有这样的权限,其它普通用户没有。 2)max_*:资源管理列,用于规定账号的资源使用上限,其中: max_questions:每小时发出的语句数上限 max_updates:每小时发出的修改类语句数上限 max_connections:每小时连接数上限 max_user_connections:允许保有的连接数上限 3)SSL相关列: ssl_type,ssl_cipher,x509_isuser, x509_subject 2、db:记录各个帐号在各个数据库上的操作权限 *_priv:适用于某个数据库的权限 3、tables_priv:表级别的权限 Column_priv比较奇怪,因为照理说tables_priv只显示表级别的权限,列级别的权限应该在columns_priv里显示才对。后来查了资料才知道,原来这是为了提高权限检查时的性能,试想一下,权限检查时,如果发现tables_priv.Column_priv为空,就不需要再检查columns_priv 表了,这种情况在现实中往往占大多数。 4、columns_priv:列级别的权限 5、procs_priv:存储过程和函数的权限 6、proxies_priv:记录代理用户的权限 7、host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVO语句的影响

传智播客mybatis课堂笔记

mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1

1.2创建mysql数据 导入下边的脚本: sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于

Mysql数据库学习心得

Mysql数据库学习心得(1) 由于工作中需要使用mysql,笔者通过网上学习,动手实践,终于从一个"数据库菜鸟"变成了能熟练操作mysql的"准大虾"了,:)。现将学习心得整理如下。 MySQL是完全网络化的跨平台关系型数据库系统,一个真正的多用户、多线程SQL数据库服务器,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使 用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,对于中、小型应用系统是非常理想的。除了支持标准的ANSI SQL语句,更重要的是,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。而在Unix/Linux系统上,MySQL支持多线程运行方式,从而能获得相当好的性能,而且它是属于开放源代码软。 MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成,MySQL的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常棒的数据库。MySQL的官方发音是"My Ess Que Ell"(不是MY-SEQUEL )。 一.获得MySQL 首先必须下载MySQL。Mysql的官方网站是:,在中国的镜像是:或者:,可以下载MySQL的稳定版本截止到笔者发稿为止)。其版本名称是,不但免费而且没有所谓的"30天使用期限"。 二.MySQL的安装 (一)在Win98/Winnt下的安装 到一个目录,运行Setup程序,会提示整个安装的过程。它默认安装到c:mysql下,如果要安装到其它目录下还有改动一些东西,作为初学者,可以先不管,以默认的目录安装。好了,安装后,进入c:mysql in 目录下,运行文件在Win98下直接运行,正常情况下,没有什么提示信息。 1。将下载后的文件解压解压到一个临时目录。 2。点击安装到c:mysql(默认)。 3。将拷贝到c:,把文件中的#basedir=d:/mysql/改为basedir=c:mysql。 4。进入msdos,到目录c:mysql in。 5。输入mysqld-shareware -install,此为启动Mysql数据库服务。

My SQL学习笔记

My SQL学习笔记: 一、认识关系型数据库 1.数据库实际上就是管理数据的仓库,平常我们使用的一般是利用文件对数据进行保存和 管理,doc, xls, jpg等等,只要我们知道的一切能够保存数据的文件,我们都可以认为是一种保存和管理数据的方式。 2.但是对于大批量数据和便于网络操作而言,使用特定的数据库是很有必要的。 3.数据库系统(Database System)=数据(Data)+数据管理系统(Database Management System) 4.通常意义的数据库:至少包含数据和管理数据的工具,我们知道,数据库还需要对外提 供接口让其他程序对数据库进行操作。 二、启动My SQL 1.启动数据库分为两部分,一部分是服务器,第二部分是客户端连接到服务器。 2.启动服务器:在Windows上安装My SQL后会在Windows服务管理中增加一条记录,可 以通过启动services.msc找到MySQL56进行启动。也可以使用net start 。 三、My SQL操作 分类:针对的操作对象不同,分成不同的语言: 1.数据操作(管理)语言DML 2.数据定义语言(对保存数据的格式进行定义)DDL 3.数据库控制语言(针对数据库软件服务进行操作)DCL DCL控制DDL,DDL限制DML,即对数据库的操作、对表的操作、对数据的操作 DML又分为DQL和DML 四、数据库操作DCL 1.创建数据库:create database [options]; (options:字符集、校对规则) 2.查询数据库:show databases; 3.查看数据库的创建语句:show create database ; 4.删除数据库:drop database ; 5.修改数据库信息:alter database ;(options:字符集、校对规则), 对于数据库的名字,一般不进行修改,可以通过修改数据库文件夹的名字进行修改,也可以新建一个数据库,将数据库内容保存新数据库中 五、表操作 1.创建表:create table (,…) [options]; 1)先分析,需要保存的实体数据,拥有哪些属性,需要怎样保存 2)列结构:列名、列的数据类型、列的约束 2.查看表: 1)有那些表:show tables [like ‘pattern’]; 例如show tables like ‘city_%’;(表示已city_开头的 所有表) 2)某个表的创建信息:show create table ; 3)查看表结构:desc(describe) ; 3.删除表: drop table [if exists] ; 4.修改表: 1)修改表名:rename table to ; rename table student to info_student, teacher to info_teacher; 2)修改字段(列)定义:

Mysql数据库学习总结

Mysql数据库学习总结 数据库的基本操作:创建删除查瞧 Create database school; 用于创建数据库,并且数据库的名字不可以更改 Show create database; show databases; 用来查瞧创建数据库的语句 Drop database; 用于删除数据库 表的基本操作: Create table; 用于创建表,table后面加表名称 Create table student{ Id int; Name varchar(10); Sex Boolean; } Show tables; 用于显示数据库中的所有表 Describe student; 这里显示了字段、数据类型、就是否为空、主外键、默认值与额外信息Show create table; 显示创建表时的详细信息 Drop table student; 删除表的操作 完整性约束

就是对字段进行限制,从而该字段达到我们期望的效果 设置表的主键:主键能够标识表中的每条信息的唯一性。(primary key) 创建主键的目的在于快速查找到表中的某一条信息 多字段主键:由多个属性组合而成 例如:primary key(id,course_id); 设置表的外键; 设置表的外键的作用在于建立与父表的联系 比如表A中的id就是外键,表B中的id就是主键 那么就可以称表B为父表,表A为子表 比如表B中id为123的学生删除后,表A中id为123的记录也随着消失这样做的目的在于保证表的完整性。 设置表的非空约束: 设置表中的字段不为空 设置表的唯一性约束 唯一性约束指表中该字段的值不能重复出现,也就就是给表中某个字段加上unique 设置表的属性值自动增加: auto_increment 主要用于为表中插入的新纪录自动生成唯一ID 一个表中只能由一个字段使用此约束,并且该字段必须为主键的一部分,约束的值ibixu 就是整型值。 设置表中属性的默认值 在表中插入一体哦新的记录时,如果没有为该字段赋值,那么数据库系统就会为该字段附上一条默认值。 修改表 修改表需要用到alter table 修改表名:

传智 韩忠康 mysql 课程笔记5(吐血整理)

昨天作业 2013年4月20日星期六 09:56 class as h on m.host_id =h.id left join

select 2013年4月20日星期六10:06

生成的文件格式: 默认的,采用行来区分记录,而采用制表符,来 区分字段。 为了满足某种特别的需求,会采用不同的分割方式。 支持,在导出数据时,设置记录,与字段的分割符。 通过如下的选项: fields:设置字段选项 Lines: 设置行选项(记录选项) 先看默认值: 字段:fields terminated by '\t' enclosed by '' escaped by '\\‘ 记录:lines terminated by '\n' starting by '' 可以自己设定: select * into outfile 'e:/amp/three' fields terminated by ',' lines terminated by '\n' starting by 'start:' from teacher_class where t_name = '韩信'; 字段包裹 select * into outfile 'e:/amp/four' fields terminated by '\t' enclosed by 'x' lines terminated by '\n' starting by 'start:' from teacher_class where t_name = '韩信'; 注意: 常规的,所有的记录,应该通过行来显示例外是保存二进制数据:

MySQL数据库管理之权限管理

MYSQL数据库管理之权限管理 小编做客服有一阵子了,总是有人在QQ群或者论坛上问关于mysql权限的问题,今天就总结一下关于MYSQL数据库的权限管理的经验。希望大家看完有所收获啦~ 一、MYSQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你权利以内的事情,不可以越界。比如只允许你执行select操作,那么你就不能执行update操作。只允许你从某台机器上连接mysql,那么你就不能从除那台机器以外的其他机器连接mysql。 那么MYSQL的权限是如何实现的呢?这就要说到mysql的两阶段的验证,下面详细来介绍: 第一阶段:服务器首先会检查你是否允许连接。因为创建用户的时候会加上主机限制,可以限制成本地、某个IP、某个IP段、以及任何地方等,只允许你从配置的指定地方登录。后面在实战的时候会详细说关于主机的限制。 第二阶段:如果你能连接,MYSQL会检查你发出的每个请求,看你是否有足够的权限实施它。比如你要更新某个表、或者查询某个表,MYSQL会检查你对哪个表或者某个列是否有权限。再比如,你要运行某个存储过程,MYSQL会检查你对存储过程是否有执行权限等。 MYSQL到底都有哪些权限呢?从官网复制一个表来看看: 权限权限级别权限说明 CREATE数据库、表或索引创建数据库、表或索引权限DROP数据库或表删除数据库或表权限 GRANT OPTION数据库、表或保存的程序赋予权限选项 REFERENCES数据库或表 ALTER表更改表,比如添加字段、索引等DELETE表删除数据权限 INDEX表索引权限 INSERT表插入权限 SELECT表查询权限 UPDATE表更新权限 CREATE VIEW视图创建视图权限 SHOW VIEW视图查看视图权限 ALTER ROUTINE存储过程更改存储过程权限 CREATE ROUTINE存储过程创建存储过程权限 EXECUTE存储过程执行存储过程权限

完整Mysql燕十八学习笔记

Mysql 三大列类型 1. 数值型 整型 Tinyint 、Smallint、Mediumint 、Int、Bigint 小数型 Float(D,M),Decimal(D,M) 2. 字符串型 Char(M) Varchar(M) Text 文本类型 3. 日期时间类型 Date 日期 Time 时间 Datetime 时间类型 Year年类型 一.整型列的字节与存储范围 从数学上讨论tinyint ,建表时既能足够存放,又不浪费空间。 即: (1). 占据空间

(2). 存储范围

通过占用字节和所存范围分关系合理的选择类型例:Tinyint

经测试,Tinyint 的默认为有符号-128~127之间,当越界时自动取相应 的边界值。若要存 0~255无符号时: 列的可选属性: Tinyin t (M ) un sig ned zerofill. M :宽度(在0填充的时候才有意义) Un sig ned:无符号类型(非负),影响存储范围 Zerofill : 0填充(默认无符号)

1> insert into test -> (name,age3) -> ualu&s ->「赵六'/S'); u QIC, 1 row aff?et&d (0.00 soc) 箕from t&st; I id I name I age I agel I age2 I age3 I 卜--------- + ------------- + --------------- + -------------- + --------------- + ----------------- + rows in at (0.07 SEC) 列可以声明默认值,而且推荐声明默认值not null default 0; ysql> alter table test add tinyint(3j not null default 0; uery 0IC, 9 rows affected (0.13 $ec) ecords: 9 Duplicates: 0 Uarnings: O 小数型/浮点型、定点型 Float(M,D):M代表总位数,D代表小数位 (6,2)为例:-9999.99 ->9999.99 12345G789一一一一张张张张 李 张 李 王 制 L L u N i NULL L L u N L L J N I NULL NULL L L u N 三 四 三 四 五 六 6 NULL NULL I NULL I L L u N NULL | 2G0 | NULL | NULL ! NULL I 0 I NULL I NULL | NULL I NULL I 127 I NULL I y$ql> t M from 七。兮七; ------ - -------------------------- + ----- ------ I id I name I age I agel I age2 I age3 I age4 I I 25 I NULL I I 127 I NULL I I -128 I NULL I I 127 I NULL I I -100 | NULL I I NULL I 200 I I NULL I 0 I I NULL I NULL I I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I 127 I NULL I NULL I 00005 I NULL I 06305 I 123456T89三三三 _: 一 四 三 四 五 六 张 张 张 张 李 张 李 王 赵

MySQL笔记..

03_MySQL Day01 一、数据库(DataBase DB) 1、数据库:存储数据的仓库 2、数据库分类: (1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等) (2)非关系型数据库(Nosql):MongDB等 3、Mysql安装 (1)window:配置文件my.ini 进入命令行开始--运行--cmd (2)Linux:配置文件:/etc/https://www.360docs.net/doc/1a9518952.html,f 终端 mysql -uroot -p 说明: Mysql 数据库的存储位置 /var/lib/mysql 4、Mysql登录 mysql -u用户名-p密码[-P3306] [-D数据库名称] 5、Mysql退出 quit exit \q 6、Mysql注释 -- 注释 # 注释 7、修改提示符(Prompt) (1)进入MySQL的命令 prompt 提示符名称 (2)登录MySQL写的命令 mysql -uroot -p --prompt=提示符名称 说明: a.恢复提示符prompt mysql> b.特殊符号 \h 主机名称 \D 系统时间日期 \d 选择数据库名称 8、SQL(Structured Query Language)结构化查询语句 (1)DDL(数据创建语言):创建数据库,创建表、创建视图等

CREATE(创建),DROP(删除),ALTER(修改) (2)DML(数据操作语言):对数据库的数据的增,删,改 INSERT(添加),DELETE(删除),UPDATE(改) (3)DQL(数据查询语言):对数据库的数据查询 SELECT(查询) (4)DCL(数据库控制语言):分配(GRANT)用户权限 及权限(REVOKE)撤销 9、SQL命令行规范 a.系统命令大写,名称小写 b.SQL命令行以分号结束或\g 说明:结束分隔符可以用delimiter 符号名称 c.SQL命令行支持折行,但不能在函数,名称,引号中不能折行 d.SQL命令中的名称不能用关键字和保留字,如果使用必须用反引号``括起来,例如`user` 10、创建数据库(DDL) (1)查看数据库 SHOW DATABASES; (2)创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名称[[DEFAULT] CHARACTER SET [=] 编码]; (3)查看创建数据库命令 SHOW CREATE DATABASE 数据库名称; (4)删除数据库 DROP DATABASE [IF EXISTS] 数据库名称; (5)修改数据库的编码 ALTER DATABASE 数据库名称 [DEFAULT] CHARACTER SET [=]编码; (6)选择数据库 USE 数据库名称; (7)查看当前选择的数据库 SELECT DATABASE(); 11、创建数据库中的表 (1)查看表 SHOW TABLES; (2)创建表结构 CREATE TABLE [IF NOT EXISTS] 表名( 字段(Field)名称|列名称数据类型[字段属性|约束条件], 字段(Field)名称|列名称数据类型[字段属性|约束条件] ... )[ENGINE=InnoDB DEFAULT CHARSET=utf8]; 说明:数据库最小单位是表,一定是先有表结构 再添加数据

传智 韩忠康 mysql 课程笔记4(吐血整理)

Order by 2013年4月19日星期五 09:39 校对规则,决定排序关系。 按照字段值进行排序 Order by 字段升序|降序(asc|desc) 默认升序,asc。 允许多字段排序, 指的是,先按照第一个字段排序,如果说不能区分,才使用第二个字段。以此类推。 注意,如果是分组,则应该使用对分组字段进行排序的groupby语法。 limit 2013年4月19日星期五 09:50 限制获得的记录数量: limit的语法: Limit offset,row_count Offset 偏移量,从0开始。可以省略,默认为0. Row_count总记录数,如果数量大于余下的记录数, 则获取所有余下的即可:

select * from teacher_class limit 3, 4; select * from teacher_class limit 5;select * from teacher_class limit 5, 100;

distinct 2013年4月19日星期五 10:17 去除重复记录: 重复的记录,指的是,字段值都相同的记录, select days from teacher_class ; select distinct days from teacher_class ; select days, begin_date from teacher_class ; select distinct days, begin_date from teacher_class ; 相对的是all,表示所有。默认就是all行为。

Union 2013年4月19日星期五 10:26 联合查询: 将多条select语句的结果,合并到一起。称之为联合操作。 获得2个班代课最多的老师: select t_name, days from teacher_class where c_name='php0115' order by days desc limit 1; select t_name, days from teacher_class where c_name='php0228' order by days desc limit 1;

Mysql总结完整版

一、数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 二、数据库的安装与配置 * 安装 * 参照图解 * 一路下一步 * 卸载 1.停止mysql服务net stop mysql 启动mysql服务net start mysql 2.卸载mysql 3.找到mysql 安装目录下的my.ini datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" * 运行 * 安装成功了打开cmd --> mysql -uroot -p你的密码 * 修改mysql root用户密码 1) 停止mysql服务运行输入services.msc 停止mysql服务 或者cmd --> net stop mysql 2) 在cmd下输入mysqld--skip-grant-tables 启动服务器光标不动(不要关闭该窗口) 3) 新打开cmd 输入mysql -u root -p 不需要密码 use mysql; update user set password=password('abc') WHERE User='root'; 4) 关闭两个cmd窗口在任务管理器结束mysqld 进程 5) 在服务管理页面重启mysql 服务 密码修改完成 * 配置 * 参照图解

mysql优化笔记

◆Mysql数据库的优化技术<大型网站优化技术> 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] c: 分表技术(水平分割、垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程[模块化编程,可以提高速度] 数据库的三层结构: f: 对mysql配置优化[配置最大并发数my.ini, 调整缓存大小] g: mysql服务器硬件升级 h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM) CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) ◆什么样的表才是符合3NF (范式) 表的范式,是首先符合1NF, 才能满足2NF , 进一步满足3NF 1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF ?数据库的分类 关系型数据库: mysql/oracle/db2/informix/sysbase/sql server 非关系型数据库: (特点: 面向对象或者集合) NoSql数据库: MongoDB(特点是面向文档) 2NF: 表中的记录是唯一的, 就满足2NF, 通常我们设计一个主键来实现id primary key ; 3NF: 即表中不要有冗余数据, 就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放. 比如下面的设计就是不满足3NF:显示推导处理

mysql学习笔记

创建student表 CREATE TABLE student ( sNo int(11) NOT NULL DEFAULT '0', sName varchar(10) DEFAULT NULL, sSex enum('m','f') DEFAULT 'm', sAge tinyint(4) DEFAULT '18', sClass varchar(10) DEFAULT NULL, PRIMARY KEY (sNo), KEY index_name (sName) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建course表 CREATE TABLE course( cNo tinyint(4) NOT NULL, cName varchar(20) NOT NULL, cCredit tinyint(4) NOT NULL, PRIMARY KEY ( cNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建score表 create table score (sNo int not null, cNo tinyint not null, score tinyint, primary key(sNo,cNo), constraint foreign key(sNo) references student(sNo), constraint foreign key(cNo) references course(cNo) )engine=innoDB default charset=utf8; insert into course values(1,"计算机操作系统",3),(2,"计算机基础教程",2), (3,"计算机导论",4),(4,"C++ Primer",4),(5,"MySQL入门与精通",5); mysql的SQL语句: 创建表: create table student( id int not null primary key, name char(10) not null, sex char(2) not null ); 修改表结构:增加,删除,修改字段 alter table student drop sex, add birthday date,

以普通权限运行MySQL的操作说明

以普通权限运行MySQL的操作说明 特别说明: 此模式为手动设置 mysql 的运行权限,操作步骤比较多,且比较复杂。请先在做测试,然后再在服务器里进行操作。 后续我们会发布一个“mysql权限设置.exe ”的程序,帮助您“一键设置”Mysql的运行权限,敬请关注我们的官方网站 本文介绍的是 mysql 设置方法。其他程序的降权运行,比如 ms sql 2000 和Serv-U 的方法,我们会在后面发布。 1、打开服务器里任务管理器,看看当前MySQL用户运行时权限 如果是 system 用户在运行 MySQL ,这个是非常危险的,一旦Mysql 出现漏洞,或被其他模式提权,直接就是 system 权限。

2、对 MySQL进行降权,用普通权限运行 假设 (1)mysql安装在 d:\mysql 目录 (2)运行时用户名为 mysqluser 3、建立一个新用户,假设为“mysqluser” 填写用户名,

选择“用户不能更改密码”和“密码永不过期”,其他2个√取消掉 找到刚才建立的用户,点鼠标右键属性,修改用户的属性

新建立用户后,会默认加到 users 组件,把这里组删除,不加入任何组。

把组清除,不加入任何组,点确定。 4、假设 MySQL数据库安装在 d:\mysql ,对此目录进行 NTFS 权限设置(1)Administrators 完全控制 (2)System 完全控制 (3)MysqlUser 完全控制 如果有其他权限,把其他权限都删除,操作步骤如下 修改 d:\mysql 的 NTFS 权限

此时权限可能是继续的,可能无法删除,点“高级”

Mysql日志管理笔记

Mysql日志管理笔记(5.7版本) wangzz 四种日志文件: 1,二进制日志:以二进制形式记录数据库的各种操作,但不记录查询语句. 2,错误日志: 该日志文件记录mysql服务器启动,关闭和运行时的出错等信息。 3,通用查询日志:记录mysql启动,关闭,及客户端的连接信息,更新数据记录sql语句和查询数据记录sql语句. 4,慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位性能瓶颈。 1,二进制日志 1)启动二进制日志 /etc/https://www.360docs.net/doc/1a9518952.html,f 文件。 [mysqld] log-bin[=dir/[filename]] server_id=100 log-bin=/export/app/log/binlog/binlog.log 重启服务就可以启动二进制日志文件,如果启动不了。看log-error日志,你会时到重启不了的原因 mysql> show variables like '%bin%'; +-----------------------------------------+-------------------------------------+ | Variable_name | Value | +-----------------------------------------+-------------------------------------+ | bind_address | * | | binlog_cache_size | 32768 | | binlog_checksum | CRC32 | | binlog_direct_non_transactional_updates | OFF | | binlog_error_action | ABORT_SERVER | | binlog_format | ROW | | binlog_group_commit_sync_delay | 0 | | binlog_group_commit_sync_no_delay_count | 0 | | binlog_gtid_simple_recovery | ON | | binlog_max_flush_queue_time | 0 | | binlog_order_commits | ON | | binlog_row_image | FULL | | binlog_rows_query_log_events | OFF | | binlog_stmt_cache_size | 32768 | | innodb_api_enable_binlog | OFF | | innodb_locks_unsafe_for_binlog | OFF | | log_bin | ON | | log_bin_basename | /export/app/log/binlog/binlog | | log_bin_index | /export/app/log/binlog/binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | log_statements_unsafe_for_binlog | ON | | max_binlog_cache_size | 18446744073709547520 | | max_binlog_size | 1073741824 | | max_binlog_stmt_cache_size | 18446744073709547520 | | sql_log_bin | ON | | sync_binlog | 1 | +-----------------------------------------+-------------------------------------+ 27 rows in set (0.00 sec) 查看二进制日志文件 [root@risoserverbinlog]# mysqlbinlog binlog.000001

我的MYSQL学习心得

我的MYSQL学习心得(十一)视图我的MYSQL学习心得(一)简单语法 我的MYSQL学习心得(二)数据类型宽度 我的MYSQL学习心得(三)查看字段长度 我的MYSQL学习心得(四)数据类型 我的MYSQL学习心得(五)运算符 我的MYSQL学习心得(六)函数 我的MYSQL学习心得(七)查询 我的MYSQL学习心得(八)插入更新删除 我的MYSQL学习心得(九)索引 我的MYSQL学习心得(十)自定义存储过程和函数 我的MYSQL学习心得(十二)触发器 我的MYSQL学习心得(十三)权限管理 我的MYSQL学习心得(十四)备份和恢复 我的MYSQL学习心得(十五)日志 我的MYSQL学习心得(十六)优化 我的MYSQL学习心得(十七)复制 这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图

使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE[OR REPLACE][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL]CHECK OPTION] 其中,CREATE:表示新建视图; REPLACE:表示替换已有视图 ALGORITHM :表示视图选择算法 view_name :视图名

MySQL授权grant与撤销权限revoke语法的详细解析

MySQL授权grant与撤销权限revoke语法的详细解析 以下的文章是MySQL grant 语法的详细解析,如果你对MySQL grant 语法的相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。我们大家都知道MySQL数据库赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一、grant 普通数据用户,查询、插入、更新、删除数据库中所有表数据的权利。 或者,用一条 MySQL 命令来替代: 二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。 grant 创建、修改、删除 MySQL 数据表结构权限。 MySQLgrant 操作 MySQL 外键权限。

grant references on testdb.* to developer@'192.168.0.%'; grant 操作 MySQL 临时表权限。 grant create temporary tables on testdb.* to grant 操作 MySQL 索引权限。 grant index on testdb.* to grant 操作 MySQL 视图、查看视图源代码权限。 grant 操作 MySQL 存储过程、函数权限。 三、grant 普通 DBA 管理某个 MySQL 数据库的权限。MySQLgrant all privileges on testdb to 其中,关键字“privileges” 可以省略。

五、MySQL grant 权限,分别可以作用在多个层次上。 1. grant 作用在整个 MySQL 服务器上: grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库 2. grant 作用在单个数据库上: grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。 3. grant 作用在单个数据表上: grant select, insert, update, delete on testdb.orders to 4. grant 作用在表中的列上: grant select(id, se, rank) on testdb.apache_log to 5.MySQL grant 作用在存储过程、函数上: 六、查看 MySQL 用户权限 查看当前用户(自己)权限: show grants; 查看其他 MySQL 用户权限: show grants for dba@localhost; 七、撤销已经赋予给 MySQL 用户权限的权限。

相关文档
最新文档