今天我突然发现我们公司的数据库不可以根据网址,在浏览器中的客户端直接打开了,这对于一向如此操作的我是如此的可怕。因为我早就将在命令行中如何操作数据库基本上将常用的命令忘完了。当然之后我用桌面客户端连接远程服务器解决这个问题。(如果有同样问题的童鞋和我遇到了同样的问题那你可以参考我上一篇博文《SQLyog远程连接MySQL数据库》)但是,这不由得我深思,如果我以后离开了我的电脑,需要突然很简单的在命令行中操作数据库怎么办?所以居安思危的我就赶紧重新复习了一下常用的操作数据库的命令。下面是我的一些记录:
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码]
创建数据库:create database [库名]
显示所有数据库: show databases;
打开数据库:use [库名]
创建数据表:CREATE TABLE [表名] ([字段名] 字段类型 [字段参数], ……);
显示数据表字段:desc 表名;
当前库数据表结构:show tables;
更改表格
ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE
说明:增加一个栏位(没有删除某个栏位的语法。
ALTER TABLE [表名] ADD PRIMARY KEY ([字段名])
说明:更改表的定义把某个列设为主键。
ALTER TABLE [表名] DROP PRIMARY KEY ([字段名])
说明:把主键的定义删除。
显示当前表字段:show columns from tablename;
删库:drop database [库名];
删表:drop table [表名];
数据操作
添加:INSERT INTO [表名] VALUES(””,””,……顺序排列的数据);
查询: SELECT * FROM [表名] WHERE ([条件]);
建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]);
删除:DELETE FROM [表名] WHERE ([条件]);
修改:UPDATE [表名] SET [修改内容如name = ”Mary”] WHERE [条件];
导入外部数据文本:
1.执行外部的sql脚本
当前数据库上执行:mysql < input.sql
指定数据库上执行:mysql [表名] < input.sql
2.备份数据库:(dos下)
mysqldump –opt school>school.bbb
提示:常用MySQL命令以”;”结束,有少量特殊命令不能加”;”结束,如备份数据库
开始sql进行的操作:
- 打开服务:net start mysql(mysql为配置时,可自定名称)
- 关闭服务:net stop mysql
- 退出:exit/quit;
- 修改用户密码:mysqladmin -u 用户名 -p password 新密码
- 匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串;
增加一个字段:alter table tabelName add column fieldName dateType; - 增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;
- 增加一个管理员帐户:grant all on . to user@localhost identified by “password”;
每条语句输入完毕后要在末尾填加分号”;”,或者填加”/g”也可以; - 查询时间:select now();
- 查询当前用户:select user();
- 查询数据库版本:select version();
- 查询当前使用的数据库:select database();
- 创建表是先判断表是否存在
create table if not exists students(……); - 对表重新命名
alter table table1 rename as table2; - 创建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引 - 删除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;