mysql 命令行其实就是用sql来操作mysql数据库:
1. 登录mysql:mysql -u用户名 –p 回车 输入密码
//mysql命令对应的可执行文件在home/mysql/bin目录下,该目录添加到环境变量PATH,shell程序执行mysql命令时,会根据PATH找到该目录
2. 显示数据库:show databases [like wild];//wild可以是使用sql的‘%’‘_’通配符的字符串
3. 创建数据库: create database 数据库名;
删除数据库:drop database [if exists]数据库名;//删除数据库中所有表,及对应的.frm文件,和.MYD,.MYI文件
注:也可以在shell下使用命令mysqladmin 命令进行数据库的创建与删除
shell> mysqladmin –u mysql –p create数据库名;//mysqladmin同mysql命令一样,其对应的可执行程序在home/mysql/bin下
shell> mysqladmin –u mysql –p drop 数据库名;
4. 选择要操作数据库:use 数据库名;
5. 显示数据库中表:show tables;
6.创建表:create table 表名();
删除表:drop table 表名;
注意:1.命令行以分号结束
2.创建表时最后一个字段是不加逗号的,否则会报错
create table test
(
name varchar(30),
age int
);
7. 当要在数据库中建立很多表时,对每个表在命令行中进行create,会很麻烦,而且容易出错而不易调试,
可以建立一个.sql文件,在该文件中,写入建表语句,再在命令行中使用source命令,即
source mysql-create.sql
最好同时创建一个mysql-delete.sql比较安全
8. 查看表结构:describe 表名;(其实也可以查看表的列数)
9. 查看表的列数:show fields from 表名;
10. 对表结构进行修改:alter table 表名
add [column] 列名 数据类型 [not null default 0][first|after列名];//增加字段,可以指定特定位置
add [constraint 约束名] primary key(列名);//添加主键或称为主索引
add constraint 约束名 primary key(列1,列2);//多个字段组成主键
add [constraint 约束名symbol]foreign key [index_name](列名)reference 另一表名(列名)
[on delete {restrict|cascade|set null|no action}][on update{restrict|cascade|set null|no action}]
注:1.表必须是InnoDB类型的,因为只有InnoDB存储引擎执行添加外键子语,对于其他引擎会分析这些子句,但会忽略
2.对于check子句,所有的存储引擎会进行分析,但会忽略
add [constraint 约束名] unique index_name(列);
drop [column] 列名;//删除字段
drop inex index_name;//这里和oracle ,sql server ,ms access不同,mysql对sql的扩展
drop primary key;
drop foreign key 约束名(fk_symbol);
alter 列名 set default 默认值;//对某字段增加默认值
alter 列名 set not null ;对某字段设置为非空
change 列名 新列名 新类型[first|after 列名];/改变某字段的类型,也可以改变名字
modify 列名 新类型[first|after 列名];//oracle对alter table 的扩展
注:alter table 表名 后可接多个add,drop ,alter 子句,各子句用逗号隔开,
11.对表内容进行修改:update 表名 set 字段1 =值1,字段2=值2 where条件;
12.向表中插入内容:insert 表名(字段1,字段2...)values(值1,值2...);
load data infile 文件名 into table 表名
13.删除表中内容:delete [from]表名 where 条件;//删除符合条件的行
14.查看MySQL版本:
命令status;
注:通过UNIX socket 连接数据库
命令select version();
15.查看修改表类型(即使用的存储引擎):
show create table 表名;
ENGINE=InnoDB
修改表类型:
alter table 表名 type=表类型;