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;