[SQL]mysql命令学习备忘
2007-09-08 16:15
323 查看
登陆:
>mysql -h 127.0.0.1 -utest -p
-h为主机,可省略
-p为密码,没有密码可省略,如果有密码可以直接跟-u一样跟在后面,但不推荐这样写,因为暴露了密码。
e.g. 以test用户登陆,密码为空
>mysql -utest
====================================================================
退出:
>quit
====================================================================
添加用户:
以root用户登陆,其他用户可能没有权限
>quit
>mysql -uroot -p
>password:******
>insert into user (user,host,password) values ('test','%',password('12345'));//用password函数进行md5运算,不直接把密码明文暴露出来
====================================================================
修改用户权限:
如设置用户test只对数据库test具有某些权限
>grant select,update,insert on test.* to 'test' @'%' identified by '12345';
允许用户test对数据库test具有select ,update, insert权限,@后面跟主机地址,%表示全部,identified by后面跟密码
如要使用户test对数据库test具有全部的读写权限:
>grant all privileges on test.* to 'test' @'%' identified by '12345';
>flush privileges
====================================================================
一些信息查看
>show databases; //查看所有数据库
>show tables; //查看所有表
>describe tableName; //查看某个表的属性,包括各个字段类型等。
====================================================================
切换数据库:
>use dbName;
====================================================================
备份数据库
c:/>mysqldump -utest -p --opt test > d:/test2.sql
PASSWORD:******
====================================================================
修改表名
>alter table t1 rename to t3;
====================================================================
INSERT … ON DUPLICATE KEY UPDATE
t1 CREATE TABLE `t1` (
`c1` int(4) NOT NULL,
`c2` int(4) default NULL,
PRIMARY KEY (`c1`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312
原始数据
c1 c2
1 100
2 200
c1是主键,欲插入(1,1),如果已经存在c1=1,则c2自增,(类似于计数器)
INSERT INTO t1 VALUES(1, 1) ON DUPLICATE KEY UPDATE c2=c2+1;
执行以上语句后的数据
c1 c2
1 101
2 200
该语句等价于
if(SELECT * FROM t1 WHERE c1=1){
UPDATE t1 SET c2=c2+1 WHERE c1=1;
}else{
INSERT INTO t1 (c1, c2) VALUES (1, 1);
}
====================================================================
输出查询结果到本地文件/从本地文件导入数据到table中
要读取由逗号分隔的文件并返回,则正确的语句应该是:
查看建表信息
mysql>show describe table sc;
Table Create Table
------ -------------------------------------------------------------------
sc CREATE TABLE `sc` (
`sid` char(10) NOT NULL,
`cid` char(10) NOT NULL,
KEY `sid` (`sid`),
KEY `cid` (`cid`),
CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`sid`) REFERENCES `s` (`sid`),
CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `c` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
====================================================================
执行外部.sql 文件
mysql > source F:/b.sql;
====================================================================
结束当前输入
mysql > abcd
>/c
mysql >
====================================================================
>mysql -h 127.0.0.1 -utest -p
-h为主机,可省略
-p为密码,没有密码可省略,如果有密码可以直接跟-u一样跟在后面,但不推荐这样写,因为暴露了密码。
e.g. 以test用户登陆,密码为空
>mysql -utest
====================================================================
退出:
>quit
====================================================================
添加用户:
以root用户登陆,其他用户可能没有权限
>quit
>mysql -uroot -p
>password:******
>insert into user (user,host,password) values ('test','%',password('12345'));//用password函数进行md5运算,不直接把密码明文暴露出来
====================================================================
修改用户权限:
如设置用户test只对数据库test具有某些权限
>grant select,update,insert on test.* to 'test' @'%' identified by '12345';
允许用户test对数据库test具有select ,update, insert权限,@后面跟主机地址,%表示全部,identified by后面跟密码
如要使用户test对数据库test具有全部的读写权限:
>grant all privileges on test.* to 'test' @'%' identified by '12345';
>flush privileges
====================================================================
一些信息查看
>show databases; //查看所有数据库
>show tables; //查看所有表
>describe tableName; //查看某个表的属性,包括各个字段类型等。
====================================================================
切换数据库:
>use dbName;
====================================================================
备份数据库
c:/>mysqldump -utest -p --opt test > d:/test2.sql
PASSWORD:******
====================================================================
修改表名
>alter table t1 rename to t3;
====================================================================
INSERT … ON DUPLICATE KEY UPDATE
t1 CREATE TABLE `t1` (
`c1` int(4) NOT NULL,
`c2` int(4) default NULL,
PRIMARY KEY (`c1`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312
原始数据
c1 c2
1 100
2 200
c1是主键,欲插入(1,1),如果已经存在c1=1,则c2自增,(类似于计数器)
INSERT INTO t1 VALUES(1, 1) ON DUPLICATE KEY UPDATE c2=c2+1;
执行以上语句后的数据
c1 c2
1 101
2 200
该语句等价于
if(SELECT * FROM t1 WHERE c1=1){
UPDATE t1 SET c2=c2+1 WHERE c1=1;
}else{
INSERT INTO t1 (c1, c2) VALUES (1, 1);
}
====================================================================
输出查询结果到本地文件/从本地文件导入数据到table中
mysql> SELECT * INTO OUTFILE 'data.txt'
-> FIELDS TERMINATED BY ','
-> FROM table2;
要读取由逗号分隔的文件并返回,则正确的语句应该是:
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
-> FIELDS TERMINATED BY ','; ====================================================================
查看建表信息
mysql>show describe table sc;
Table Create Table
------ -------------------------------------------------------------------
sc CREATE TABLE `sc` (
`sid` char(10) NOT NULL,
`cid` char(10) NOT NULL,
KEY `sid` (`sid`),
KEY `cid` (`cid`),
CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`sid`) REFERENCES `s` (`sid`),
CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `c` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
====================================================================
执行外部.sql 文件
mysql > source F:/b.sql;
====================================================================
结束当前输入
mysql > abcd
>/c
mysql >
====================================================================
相关文章推荐
- Mysql学习——MySQL导入导出.sql文件及常用命令
- MySQL关系数据库SQL命令使用学习记录
- SQL基础学习(四)- Mysql 查看信息的命令
- MySQL学习---sql命令
- MySQL基础学习(二) 常用SQL命令
- 【Mysql】Head First sql 学习笔记之第三章--常用MySQL命令
- linux菜鸟学习----MySQL导入.sql文件及常用命令
- MySQL导入.sql文件及常用命令
- mysql学习之 sql语句的技巧及优化
- MySQL命令学习(一)
- MySQL导入.sql文件及常用命令
- MySql 学习笔记一:SQL语句优化
- MySQL导入导出.sql文件及常用命令
- 【mysql基本命令】学习笔记
- MYSQL入门学习之十八:MYSQLADMIN命令参数详解
- MySQL-如何导入,导出sql文件以及常用的MySQL命令
- 15.笔记MySQL学习——服务器SQL模式
- [疯狂Java]JDBC:JDBC/ODBC基本概念、MySQL基本命令、SQL语句基本概念
- 马哥学习笔记十四——MySQL进阶之数据类型和sql模型
- 实例学习SQL的Select命令