MySQL的安装与基本命令

来源:互联网 发布:淘宝苏宁易购退笔记本 编辑:程序博客网 时间:2024/05/18 06:26

我是下载的MySQL 5.6.10,压缩包,我也看了网上的安装详解,但是我也没出现他们那么多界面 ,就把MySQL Serve,Client Programs,Development Components全部安装在了E:/MySQL目录里,就是启动的时候必须先打开 bin 里面的mysqld.exe,要不然连接数据库的时候提示不能连接错误。


1 连接数据库:

先到DOS里进入E:/MySQL/bin目录,然后在当前输入 mysql  -uroot  -p  

接着就会看到EnterPassword:     直接回车就行了,看网上说,新安装的都是超级用户‘root’,不需要密码既可以登陆,所以直接Enter.

然后就会进入到mysql> 环境里。这个是连接到本机数据库的方法。

还有一个是连接到远程主机上的方法, 同样在E:/MySQL/bin当前路径下,运行 mysql -h主机地址  -u用户名  -p用户密码

例如我的 mysql -h111.63.163.12  -root  -proot

退出数据库的命令是  exit,             很直接吧。


2 修改密码:

格式是  mysqladmin -u 用户名 -p旧密码  password  新密码 (-p和旧密码之间不能留空隙,否则会报错。而-u和用户名之间可有可无)

使用这条命令之前最好先把mysql的路径添加到path中,例如我的是(E:/MySQL/bin)

原先我的‘root’也是没有密码的,后来我 运行  mysqladmin  -uroot  -password  root, 因为刚开始没有旧密码,所以可以省去,但是我运行的时候会报错,可是密码竟然还改了。

可以再次修改密码,比如 mysql  -u root  -proot  password  huyiyang。(这些都是基于E:/MySQL/bin路径下的,就是还没进入到mysql环境下)


3 增加新用户

格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"


4 显示数据库列表:(下面的都属于在mysql环境里的命令,所以每条命令后面都得加分号)

show databases;

5 显示数据表:

show tables;

6 创建一个数据库:

create database  数据库名;

7使用一个数据库:

use  数据库名;

8创建一个数据表:

create table  表名(字段名);(创建一个表之前必须先打开一个数据库,否则会出现错误,而且创建数据表中字段名不能为空)

9删除数据库和数据表:

drop  database 数据库名;

drop table 表名;

这里还有一个方法能避免删除不存在的表的方法:  drop  database  if exists  库名;删除表也一样。

(drop 直接删除了表的结构)

10 获取表的结构:

desc 表名;

describe 表名;

show columns from 表名;

这三个都可以显示表的结构。

11清空表:

delete from 表名;(这清除了表中的所有记录,但是这个表还是存在的)

delete from 表名 where  id=1;(删除表中id为1的记录)

12 表插入数据:

格式  insert into  表名(字段名1,字段名2,·····)values(对应的值1,2·····);

当字段名省去的时候,值必须按照定义表时字段名的顺序进行赋值。


 insert  into  select 的使用:

例如我想把test1表中的字段名id,name的值插入到test表中对应的id,name字段名中:

insert  into  test (id ,name) select  id,name  from  test1;

多个表的互插:

insert  into  test (id ,name) select  *  from (select  test1.id,test2.name  from  test1  join test2) as  message;(as 就是临时修改你了字段名)

从表test1中提取id ,从test2中提取name然后插入到test中,

13 修改表中的数据:

格式  update   表名 set  字段名=新值  where  条件;

例如把 test表中 一条记录id 为1的name 更改为‘hu’

update  test  set  name ='hu'  where  id=1;

14 表中增加字段:

格式  alter  table  表名 add   字段   类型  其他;

例如 往test 表中添加一个字段名为 password   类型为整型  默认值为0。

alter table  test  add   password  int(4)  default  '0';

更改表名:

rename  table  原表名  to  新表名  ;


15查询表中的数据:

select  (字段名1,2) from 表名 where 表达式;

select  *  from   test   where  id=1;  查找test表中 id为1的一条记录。

select  *  from  test  order  by id  limit  2; 查找test 表中前两行的记录。 (order by 默认是递增 ASC)

 

对输出列进行求值和命名
    为了提高效率,MYSQL还可以把表达式的计算结果当作输出列的值。表达式可以很简单,也可以很复杂。例如:下面这个查询有两个输出列,前一个输出列对应一个非常简单的表达式(一个常数),而后一个输出列则对应着一个使用了多个算术运算符和两个函数调用的复杂表达式。
    再看这个命令:把两个输出列合并成一个
select concat(first_namem,’ ‘,last_name),concat(city,’,’,state) from president;
如果合并之后输出列的标题过长,则可以给其一个别名,如:
select concat(first_namem,’ ‘,last_name) as name,
concat(city,’,’,state) as birth place
from president;  显示的时候把那么长的字段换成各自临时的字段(name 和  birth place).

分组 group by:
如果我们想知道班级内的男女生数目?该如何查询呢?最简单的方法是
select count(*) from student where sex=’f’;
select count(*) from student where sex=’m
 
   但是如果使用count函数结合group by关键字,一行命令就搞定了
select sex,count(*) from student group by sex;

如查询score 表中至少有5名学到选修的3开头的课程的分数:
select  con ,AVG(degree)  from  score  group by  con  having  con like '3%' and count(*)>=5;
虽然where好having 都是条件表达式,但是不能互相替换,having 必须在group by 子句中。
 
 16 模式匹配
    有些情况下,模糊查询是很必要的,我们使用like和not like加上一个带通配符的字符串就可以了。共有两个通配符”_”(单个字符)和”%”(多个字符)
select concat(first_namem,’ ‘,last_name) as name,
where last_name like ‘W%’; 找到以W或w开头的人
where last_name like ‘%W%’; 找到名字中间含有W的人







原创粉丝点击