`

MySQL常用语句一览

阅读更多

本文实例,运行于 MySQL 5.0 及以上版本,为以后查询方便标记于此,MySQL使用基本语句:

 

一、连接MYSQL。

格式: mysql -h主机地址 -u用户名 -p用户密码

1、例1:连接到本机上的MYSQL。

首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>

2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123

(注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令: exit (回车)

二、修改密码。

格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令

mysqladmin -uroot -password ab12

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2、例2:再将root的密码改为djg345。

mysqladmin -uroot -pab12 password djg345

三、(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"

例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";

在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。

 

MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户

一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@'%'

二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 MySQL 数据表结构权限。

grant create on testdb.* to developer@'192.168.0.%';
grant alter  on testdb.* to
developer@'192.168.0.%';
grant drop   on testdb.* to
developer@'192.168.0.%';

grant 操作 MySQL 外键权限。

grant references on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 临时表权限。

grant create temporary tables on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 索引权限。

grant index on  testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 视图、查看视图源代码 权限。

grant create view on testdb.* to developer@'192.168.0.%';
grant show   view on testdb.* to
developer@'192.168.0.%';

grant 操作 MySQL 存储过程、函数 权限。

grant create routine on testdb.* to developer@'192.168.0.%';  -- now, can show procedure status
grant alter  routine on testdb.* to
developer@'192.168.0.%';  -- now, you can drop a procedure
grant execute        on testdb.* to
developer@'192.168.0.%';
三、grant 普通 DBA 管理某个 MySQL 数据库的权限。
grant all privileges on testdb to dba@'localhost'
其中,关键字 “privileges” 可以省略。

四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on *.* to dba@'localhost'


五、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 dba@localhost;

4. grant 作用在表中的列上:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. grant 作用在存储过程、函数上:

grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function  testdb.fn_add to 'dba'@'localhost'
六、查看 MySQL 用户权限
查看当前用户(自己)权限:

show grants;
查看其他 MySQL 用户权限:

show grants for dba@localhost;
七、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant  all on *.* to   dba@localhost;
revoke all on *.* from dba@localhost;
八、MySQL grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

grant select on testdb.* to dba@localhost with grant option;
这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。

 ---------------------------------------------------------------------------------------

 

1.MySQL->CREATE DATABASE dbname;//创建数据库

MySQL->CREATE TABLE tablename;//创建表

MySQL->SHOW DATABASES;//显示数据库信息,有那些可用的数据库。

MySQL->USE dbname;//选择数据库

MySQL->SHOW TABLES;//显示表信息,有那些可用的表

MySQL->DESCRIBE tablename;//显示创建的表的信息

2.数据库备份/恢复

MySQL->mysqldump –uroot –pxcg213 sealightmis>d:\sealightmis.sql

MySQL->mysql –uroot –pxcg213 sealightmis<d:\sealightmis.sql

3.数据库结构备份

MySQL->mysqldump -- opt -d –uroot –pxcg213 sealightmis>d:\sealightmis_DDL.sql

MySQL->mysql –uroot –pxcg213 sealightmis<d:\sealightmis_DDL.sql

4.数据库结构修改常用语句

MySQL更改表结构添加字段:

1.            alter table `user_movement_log`  

2.            Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加

MySQL更改表结构删除字段:

1.            alter table `user_movement_log` drop column Gatewayid 

MySQL更改表结构调整字段顺序:

1.            ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int not null default 0 AFTER RegionID 

主键

al

1.            alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id); 

增加一个新列

1.            alter table t2 add d timestamp;  

2.            alter table infos add ex tinyint not null default ‘0′; 

删除列

1.            alter table t2 drop column c; 

重命名列

1.            alter table t1 change a b integer; 

改变列的类型

1.            alter table t1 change b b bigint not null;  

2.            alter table infos change list list tinyint not null default ‘0′; 

重命名表

1.            alter table t1 rename t2; 

加索引

1.            > alter table tablename change depno depno int(5) not null;  

2.            > alter table tablename add index 索引名 (字段名1[,字段名2 …]);  

3.            > alter table tablename add index emp_name (name); 

MySQL更改表结构中加主关键字的索引

1.            > alter table tablename add primary key(id); 

加唯一限制条件的索引

1.            > alter table tablename add unique emp_name2(cardnumber); 

删除某个索引

1.            >alter table tablename drop index emp_name; 

修改表:

增加字段:

1.            > ALTER TABLE table_name ADD field_name field_type; 

修改原字段名称及类型:

1.            > ALTER TABLE table_name CHANGE old_field_name new_field_name field_type; 

删除字段:

1.            > ALTER TABLE table_name DROP field_name; 

以上的相关内容就是对MySQL更改表结构添加、删除、修改字段、调整字段顺序的介绍,望你能有所收获。

6.MySQL UPDATE语句支持以下修饰符

MySQL> UPDATE persondata SET ageage=age+1;

MySQL> UPDATE persondata SET ageage=age*2, ageage=age+1; 
SQL>UPDATE items,month SET items.price=month.price WHERE items.id=month.id; 
分享到:
评论

相关推荐

    PHP和MySQL Web开发第4版pdf以及源码

    4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式查找子字符串 4.8 使用正则表达式分割字符串 4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 ...

    PHP和MySQL WEB开发(第4版)

    4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式查找子字符串 4.8 使用正则表达式分割字符串 4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 5.1 代码...

    PHP和MySQL Web开发第4版

    4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式查找子字符串 4.8 使用正则表达式分割字符串 4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 ...

    最新中国行政区划,城市代码,sql文件(含省市区行政编码,邮编,区号,拼音,经纬度坐标)

    最新中国省市县行政编码,邮编,区号,拼音,经纬度坐标,层级关系等。 两种格式: 1、sql格式文件,可直接导入 2、MYSQL语句可直接执行使用

    MySQL查询优化之explain 执行计划 深入解析(精品)

    一览全局字段5.2. Id字段5.2.1. id相同5.2.2. id不相同5.2.3. id相同,又不相同5.3. `select_type`字段5.3.1.类型如下5.3.2. `SIMPLE `5.3.2. `PRIMARY` 与 `SUBQUERY`5.3.3. `DERIVED`5.3.4. `UNION RESULT` 与`...

    habari v0.8 多国语言版.zip

    1,采用模块化和面向对象的设计模式使其非常容易扩展 2,支持多种数据库做为后端(eg:MySQL, SQLite, PostgreSQL) 3,事先准备的语句用于阻止SQL语句的入侵 4,Media仓库用于直接存储不同形式的媒体,eg:Flickr, ...

    《MyEclipse 6 Java 开发中文教程》前10章

    4.2.14生成SQL语句 80 4.2.15建立到MySQL数据库的连接 81 4.3小结 82 4.4参考资料 82 第五章 开发JDBC应用 83 5.1系统需求 83 5.2创建数据库表格 83 5.3创建Java项目 84 5.4添加JDBC驱动到Build Path 85 5.5编写JDBC...

    高级java笔试题-MyRecord:平时充电做的笔记,一个程序猿的自我修养

    Eclipse使用hibernate进行HQL语句查询时,速度慢的原因之一.md │  ├── Eclipse问题汇总.md │  ├── Maven+Dubbo入门的一些坑.md │  ├── Maven打包导致静态资源文件损坏问题.md │  ├── MySQL不能...

    asp.net知识库

    直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件表格 获取數据库表的前N条记录 几段SQL Server语句和存储过程 生成表中的数据的脚本 最详细的SQL注入相关的命令整理 Oracle ...

Global site tag (gtag.js) - Google Analytics