码迷,mamicode.com
首页 > 数据库 > 详细

命令行对mysql的基本操作

时间:2015-09-21 16:00:27      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:命令行   mysql   

 启动mysql服务

    net start mysql 

(使用这个命令启动mysql,需要把mysql注册到服务列表中,如果是wamp自带的mysql注册到服务列表还有点麻烦,如果有高手希望告知一二)


  登陆mysql:

    mysql -u root -p 回车,输入密码。


  查看用户:use mysql 回车,select * from user; 回车。这样能列出所有用户,但是比较乱,如果只需要查看用户名、允许登陆的主机,那么使用 select User,Host from user;


  创建用户:

    create user ‘zhangxiansen‘@‘localhost‘ identified by ‘zhangxiansen‘;

如上命令就能创建一个账号为zhangxiansen,1、密码为zhangxiansen的用户,第一个zhangxiansen是账号,第二个zhangxiansen是密码;2、@后面的是允许登陆的主机,可以是ip地址、localhost、%,%代表允许任何地方可以登陆,localhost只允许使用localhost登陆,ip地址只能在对应ip的机器上登陆。


  用户授权:

    grant all on *.* to ‘zhangxiansen‘@‘localhost‘;

该命令可以给能用localhost登陆的zhangxiansen账户授予对所有数据所有表的所有权限。1、all 代表所有权限,如果只授予增删权限,则用add,delete代替all;2、第一个*代表所有数据库,如果指定test_data数据库,则用test_data代替第一个*,第二个*代表所有表,如果指定stu表,则用stu代替第二个*;3、to后面的就是指定授予权限的用户,同时还应该指定允许登陆的地址,即@后面的。


  (创建用户以及授权在http://my.oschina.net/u/1179414/blog/202377有很详细的解释。)


  创建数据:

    create database test_data(数据库名字,自己定义); 回车。


  (在创建表之前需要指定在哪个数据库中建,所以一般需要使用use命令,就像上面use mysql,指定对mysql数据库进行操作。)


  创建表:

 create table stu(

  stuId int primary key auto_increment, -- primary key设置主键,auto_increment设置列自增。

  stuName varchar(15) not null,

  roomId int 

 );

 create table classRoom(

   roomId int primary key auto_increment,

   roomName int

 );

1、-- 是数据中的注释;2、在最后一列后面不需要逗号;3、最后的收括号后面需要加上分号。

  


  修改列属性:

    alter table classRoom modify roomName char(10);

上面我创建classRoom表名字字段是int型的,我们就可以用modify命令修改。1、classRoom是需要修改列的表;2、roomName需要修改的列。


  添加列:

    alter table stu add column age int not null;

该命令可以给stu表添加age列。1、stu需要添加列的表,age需要添加的列,后面跟上列的类型(必须)以及各种约束(自选)。


  添加外键:

    alter table stu constrain stu_room foreign key(roomId) references classRoom(roomId); 该命令可以给stu表的roomId添加外键约束。1、stu需要添加外键约束的表;2、stu_room外键名字,自定义;3、第一个roomId是stu表中的列,第二个则是classRoom中的列。添加外键还可以在创建表结构的时候就一并创建,例如:

 create table desk(

  deskId int primary key auto_increment,

  roomId int,

  constrain desk_room(外键名) foreign key(roomId) references classRoom(roomId)

 );

这样同样可以创建外键约束。


  创建主键:

如上,在id列后面 primary key 可以创建主键。如果主键有多列,例如:

 create table rectangle(

  wide int not null,

  len int not null,

  primary key(wide,len)

 );

这样rectangle表的主键就由wide、len列组成。(这仅仅是个例子,意在说明多列主键的创建方法,在表结构设计上有问题。)

  

  增删查改:

    insert into classRoom(roomName) values(‘402‘);

该命令就在classRoom表中插入一条数据,roomId是自增长,所以不需要手动插入值。

    insert into desk(roomId) values(1);

该命令可以在desk表中插入一条数据,由于roomId是外键,那么在classRoom表中必须要有roomId等于1的数据才能成功插入。

    delete from classRoom where roomId=1;

该命令可以在classRoom表中删除roomId=1的一行数据,由于有外键,删除时可能会影响desk、stu表中的数据,具体可以看一看外键的属性介绍。

    update classRoom set roomName=‘403‘ where roomId=1;

如果classRoom表中存在roomId等于1的数据,则该行数据的roomName值将会修改为403。

    select * from classRoom where roomId=1;

该命令查找roomId=1的数据。如果需要指定查找的列,那么使用如下命令:

    select roomName from classRoom where roomId=1;

该命令只查找roomName列的值。


  如有不对,希望能够指正,本人也在学习中。

本文出自 “张先森的博客” 博客,请务必保留此出处http://supermezhang.blog.51cto.com/9062111/1696714

命令行对mysql的基本操作

标签:命令行   mysql   

原文地址:http://supermezhang.blog.51cto.com/9062111/1696714

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!