安装完MySQL后,在windows下面就可以cmd命令行管理数据库,在linux下面就可以使用终端管理数据库。
具体怎么安装MySQL,请参看我的其他博文。
下面以linux-ubuntu为例,来说明怎么操作MySQL数据库,windows的cmd命令行下面使用的方式和命令几乎一模一样。
在windows下面一般MySQL是以服务的方式运行,可以去windows服务管理器中启动或者停止它。
在linux下面同样是以服务的方式运行,可以用 service mysql start | stop | restart,来启动 | 停止 | 重启
mysql中数据库名和表名是区分大小写的,但是表中的列名就不区分大小写。
想操作数据库,首先得
1. 登录:
mysql -u root -p
或者
mysql –user root –password
这里的–user或者-u 后为一个空格和登录用户名,因为安装的时候,要求要输入用户名root的密码,也就是说我们已经有了一个root帐号,就用它登录。
-p或者–password后面什么都不用写,不要想当然就输入密码,以为如果你输入了密码,mysql就会使用你输入的密码检查,事实上不是,而用另起一行,让你输入密码。如果你一定要在这里输入密码的话也不是不可以,直接在-p后面输入密码中间不要有空格,不过就是明文显示的。更为重要的是后面的输入的密码会被mysql认为是数据库的名字。这同时告诉我们,如果在登录的时候就可以制定数据名:
mysql -r root -p databasename
如果在登录的时候遇到即使你的root的密码输入无误,但是仍然登录不进去的话,或者忘了root的密码的话,可以采用下列方式:
- 停止mysql服务
sudo service mysql stop
- 以 –skip-grant-tables 的参数启动mysql,这样的话,mysql就不会对登录检查,因为你不用密码可以直接登录了。
sudo mysqld --skip-grant-tables &
- 下面以root方式登录.
mysql -u root mysql
- 更新root的密码,
UPDATE user SET Password=PASSWORD('新密码') WHERE User='root';
-
FLUSH PRIVILEGES;
2. 查看已有数据库:
show tables;
mysql是以 ; 作为输入结束符的。
3. 创建数据库
create database test;
4. 删除数据库
drop database test
5. 使用某数据库
在我们对某个数据库操作前,先要告诉mysql接下来所有的操作都针对这个数据库。
use test;
如果在登录的时候就指定了数据库名,这个就可以不要了。
6. 查看都有什么表
show tables;
7. 创建表
CREATE TABLE table_test( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), age INT)
8. 删除表
drop table table_test;
9. 清空表
delete table table_test;
9. 表中插入数据
注意下面的单引号一定不能少,否则会提示有错误。
insert into users(name, age) values('Tome', 23);
11. 查看表中数据
select * from users;
select * from users where name='Tome';
select id from users where name='Tome';
select * from users order by id;
select distinct name from users order by id;
12. 删除数据
为了测试删除,先多插入几条:
insert into users(name, age) values('Lucy', 12); insert into users(name, age) values('Lili', 34); insert into users(name, age) values('Hamard', 23);insert into users(name, age) values('Luma', 23);然后删除一条:
delete from users where name='Lucy';删除多条:
delete from user where name='Lili' || name='Hamard';从这里可以看出,mysql中是接受 = 的。另外或的关系可以用 ||或者or
与的关系用&&或者and
13. 更新数据
UPDATE users SET age=33 WHERE name='Luma';上面把所有MySQL的关键字都用大写,其实这个也是好习惯。写成这样,便于和其他如数据分开来看。
14. 备份(导出)数据库
mysqldump -hhostname -uusername -ppassword databasename > backup.sql 例如: mysqldump -uroot -p123456 test1 > /home/test/test1.sql这里可以看出mysql中hostname,username,password可以对应的命令符连在一起或者分开都可以。
15. 导入数据库
mysqlimport -u username -p password < backup.sql
例如:
mysqlimport -u root -p 123456 < backup.sql
16. 修改表中数据段(列)的名字
ALTER TABLE [table name] CHANGE [old column name] [new column name] [key definition]例如:
ALTER TABLE UserInfo CHANGE Sexx Sex INT;
17. 在表中添加数据段
ALTER TABLE [table name] ADD ([key name] [key definition])例如:
ALTER TABLE UserInfo ADD(Email, VARCHAR(64));
18. 查看表的结构,表中字段名及其字段定义
DESC [table name]
19. 查看数据表的创建
SHOW CREATE TABLE [table name]20. 从已经有的表中复制表的结构
create table table2 select * from table1 where 1<>1;21. 复制表
create table table2 select * from table1;22. 对表重新命名
alter table table1 rename as table2;23. 相似查找- like
有时候只大约记得字段中的一部分,那要怎么查找呢,like就能完成。select * from Users where Email like '%sina.com';24. 去掉unique约束例如创建了一个表create table arts( id int not null auto_increment primary key, userid int not null unique, name varchar(32));这样就创建了一个userid 为不可重复的arts表,可以后来发现设计错误,这个值是可以重复的,于是想去掉unique,怎么去呢?alter table arts drop index userid;25. 选择前n行ms sql可以用 select * top 10 from tables; 来选择前10行,mysql也可以做到:select * from tables limit 10;
26. mysql创建表时可以使用Date和Time分别定义日期和时间的表字段,在插入数据的时候,如果想插入当前的日期和时间,直接curdate(),和curtime(),如果想把日期字符串或者时间字符串转换成Date, Time的格式则直接Date()或者Time()这2个函数:
Date('2011-11-09')
Time('13:22:34')
mysql显示当前日期或者时间使用:
select curdate();
select curtime();
26. 清空数据表
有2种方式来完成这个动作:
truncate table [table name]delete from [table name]未完待续...
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.
More from my site
楼主。你知道mysql和sql的区别吗?我最近要调试一个系统,是用mysql,而我之前只熟悉sql2000,不知道到底两者哪些地方不同?
调试的话,主要看你程序的逻辑,而跟采用哪个数据库没有太大的关系。