Mysql常用命令

Mysql常用命令

一、  服务器连接与关闭

1、mysql的默认端口  -3306   apache 80

2、开启和关闭mysql数据库服务

   ①、控制面板->服务->mysql->中开启关闭

   ②、开启关闭命令   

C:\Users\mqw>net start mysql

       MySQL 服务正在启动

       MySQL 服务已经启动成功。

C:\Users\mqw>net stop mysql

    MySQL 服务正在停止..

    MySQL 服务已成功停止。

3、进入Mysql控制器  

C:\Users\mqw>mysql -u root -p
Enter password: ******      123456

 

4、退出服务器

mysql> exit  或者 quit   \q
Bye

 

 

二.忘记密码、找回密码      

 

Mysql–u root –p进入
Use mysql
Update user set password =password(‘123456’)where user = ‘root’;
FLUSHPRIVILEGES;

三.数据库操作

1.  查看数据库列表:

showdatabases;  

注意:这是是databases,复数形式有S

2.  创建数据库:

createdatabase 数据库名

3.  删除数据库:

dropdatabase 数据库名

4.  使用数据库:

use 数据库名

5.  数据库的备份和恢复

注意:数据库的备份和恢复操作是在CMD模式下操作,需要先开启数据库服务(net start mysql)不需要进入进入数据库(mysql -u root -p)

备份

mysqldump–u root -p523523 product >F:\111.txt  备份文件到F盘111.txt

恢复

mysql-uroot -p523523 text

四、表的操作

1.  查看数据库中的表:

showtables;

2.  表的创建: 

createtable 表名( 字段名 类型(长度) 字段约束1 字段约束2 字段约束3,字段名 类型(长度) 字段约束,字段名 类型(长度) 字段约束,...)engine=innodb default    charset=utf8;   表约束

 

mysql> createtable user2(uid int(6) not null auto_increment primary key,
                          uname varchar(10) not null,
                          age int(3),
                         addr varchar(100) not null
                     )engine innodb defaultcharset=utf8;

其中primary key表示主键,唯一标识;

表名的命名规则

1)不能以数字当表名;

2)表名不能使用关键字 table  create database use

3)表名不能与当前数据库其他表名重复

4)表前缀(可以不写)  Tk105_teacher

字段名的命名规则

1)不能以数字当字段名,必须有意义   name  address 

 2)字段名不能使用关键字  check

 3)表中的字段名不能重复

 

3.  查看数据库中的表:

showtables;

4.  查看表结构 : 

desc表名

5.  表名的更改:   

rename table 原表名 to 新表名;  

6.  表结构修改:   

alter table 表名 add|drop|modify|change 信息

1)增加表字段: 

alter table 表名 add    字段名 类型(长度)  字段约束alter table userlist addsex varchar(4) default "保密"  

 

    2)删除字段:      

 

alter table 表名  drop 字段名;   
alter table studentsdrop tel; 

 

 

    3)修改字段属性:(修改字段类型、字段长度、字段约束)  

 

alter table 表名 modify 字段名 类型....
alter table 表名 modify 字段名 类型(长度)  字段约束 

 

    4)修改字段     

 

alter table 表名 change 字段名 新字段名 新的字段类型; 
alter table studentschange sname name varchar(1000);

 

    注意:change和modify的区别:

    modify只能改变字段类型和字段约束

    change还可以改变字段名称,注意的是使用change的时候(原名称 新名称)不能省略(但是可以不变)

 

7.  删除表: 

 

droptable 表名

 

 

 

五.记录的操作(增删改查)重点哦! 

1.记录添加: 只要不是数值都要加引号

①一次插入一条记录:

 

insert into 表名(字段列表) values(值列表);
eg:insert into custom(sid,cname,sex,addr,email) value(1,'tom','男','beijing','[email protected]')

 

②  一次插入多条记录

 

insert into 表名(字段列表) values(数据列表),(数据列表),(数据列表)...;

 

 

 

③  导入数据

 

LOAD DATA INFILE 'data.txt'INTO TABLE tbname

 

txt文件:字段和字段之间以tab隔开,一行一条记录,不能随便乱打空格之类的字符;

 

mysql> LOAD DATA INFILE'data.txt' INTO TABLE student;
ERROR 29 (HY000): File'C:\ProgramData\MySQL\MySQL Server 5.1\Data\test\data.txt' not found (Errcode:2)

 

④  另一种插入方法: 

 

insert into  表名 set 字段名=值,字段名=值.....;
eg:insert into students setsname="鹗我红狗",address="很快就可",age=12;

 

 

 

 

2.记录修改      

 

update 表名 set 字段名=值,字段=值 where sid=?&& addr=””

 

 

where:用来筛选修改的记录是哪些记录

条件  字段名 = | > | < |>= |<= |!= | <> 值,!=和<>都是不等于;

注意:如果没有where条件,update修改的就是全部记录    

 

update  students set sid = 1000,sname = 'wangqiang'where sid = 100

 

 

 

3.记录删除

 

delete from 表名 where

 

注意:如果没有where, 清空表,但是表结构还在;如果有where条件代表的是删除某些记录

 

6.  记录检索(查询):

格式: 

 

select [all|distinct] *|字段列表|聚合函数字段列表  from表名

 

①  检索表中所有记录时:

 

select * from 表名;
Eg:select * from studentwhere sid=15;

 

如果查询的结果只是某些字段,可以直接写字段列表,如果全部查询,则写 *;

②  distinct:将查询结果去除重复的记录;

 

select  distinct addr  from students;

 

 

③  筛选结果:where字段= > < != <= >= <>  and(并且)   or(或) ||  &&   

            between n and m(包含边界,相当于>=n and <=m)

           in(在某个范围之内)    not in 
 

④  模糊查询:      _表示任何一个字符   like”栖霞_”

                                    %表示任何个任何字符          ‘%a%’

                                 eg:查询名称中含有a的学生信息                           

 

select * from tb where name like"%a%" 

 

⑤  分组:

            group by字段1,字段2...   having条件

            聚合函数用来修饰字段,写在前面:

             count():统计每个分组中的记录条数

             sum():统计每个分组中的记录和

             max():统计每个分组中字段的最大的记录

             min():统计每个分组中字段的最小的记录

             avg():统计每个分组中字段值的总平均数

             注意:分组的时候,二次筛选不要使用where,使用having

             having是在group by的基础上使用的,所以having的条件的字段名必须是groupby

             eg:统计每个地区学生的平均年龄     

 

select addr,avg(age) from student group by addr;

 

⑥  排序

   order by 字段1 [asc|desc],字段2 [asc|desc]...

   asc:升序 (默认值)

   desc:降序

 

⑦  记录条数筛选:

   limit起始下标,显示记录条数(数据库第一条记录下标为0)

   eg:

    limit 0,10   从第0记录取得数据,显示10条

    limit 10      和上面相同

    limit 10,10   从第11条取得数据,显示10条

   eg:每页显示

 

select* from student limt 0,2; 

 

 

你可能感兴趣的:(mysql,数据库)