MySQL命令
登陆Mysql:mysql -u 用户名 –p密码
退出Mysql:\q或exit
注:对表的所有操作都要先选择表所在的数据库,选择数据库: use 数据库名;
显示
l 显示所有的数据库:show databases;
l 显示单个数据库的创建信息:show create database 数据库名;(可看到:DEFAULT CHARACTER SET utf8)
l 显示所先数据库中的所有表:show tables;
l 显示单个表的创建信息:show create table 表名; (可看到:DEFAULT CHARSET=utf8 信息)
l 显示表的字段的详细信息:desc 表名; (可看到Type,Key,Default,Extra等信息)
l 显示表中的记录:select 字段名 from 表名 where 筛选条件
l 查看编码的类型:show variables like 'character%';
类型有:
*character_set_client 指示客户端使用的编码
*character_set_connection 连接数据库时的编码
*character_set_database 数据库的编码
*character_set_results 结果的编码
character_set_server 服务程序的编码
character_set_system
创建
创建数据库:create database 数据库名;
create database 数据库名character set gbk;(使用GBK字符集的数据库)
create database 数据库名collate utf8_general_ci; (使用utf8_general_ci校对的数据库,注:这个校对还要与“character set”对应才行,如果“character set”为GBK,而校对为“utf8_general_ci”则会报错。“character set”所对应的校对可以有多种,可以在Mysql帮助文档中查看)
创建数据库表:
create table 表名(
id INT,
name VARCHAR(30),
gender VARCHAR(10),
birthday DATE,
salary FLOAT(8,2),
resume TEXT
);
对数据库的操作:
l 创建数据库:create database 数据库名;
l 删除数据库:drop database 数据库名;
l 备份数据库的所有的表:mysqldump -u 用户名 –p密码 数据库名>d:/test.sql
l 恢复数据库的所有的表:source D:/database/db1.sql;将表恢复到所先的数据库中
对表的操作:
l 删除表:drop table表名;
l 重命名表:rename table 原表名 to 新表名;
l 修改表的字符集:alter table 表名 character set gbk;
l 增加字段:alter table表名add 字段名 varchar(10);
对字段的操作
l 修改字段类型:alter table表名modify 字段名 varchar(99);
l 修改字段名字:alter table orderr change color color varchar(20);
l 删除字段:alter table表名drop 字段名;
对记录的操作
l 插入记录:
方式一:这里的值要和(字段1,字段2,字段3)中指示的字段顺序一致,而且(字段1,字段2,字段3)中指示的字段的顺序可以和表中的字段的顺序不一致,也可以少于表中的字段数量。命令如下:
insert into orderr (字段1,字段2,字段3) values(value1, value12,value3);
方式二:这里的值必须与表中有的字段的顺序一致,且全部字段的值都要写:
insert into orderr values(value1, value12,value3);
方式三:
l 修改记录:
1、把某个字段的所有记录的值都改为:100
update表名set 字段名=88;
2、将姓名为guolei的员工薪水修改为4000元,job改为ccc。
update表名set salary=4000,job='ccc' where username='guolei';
3、将“娇姐”的薪水在原有基础上增加1000元。
update表名set salary=salary+1000 where username='娇姐';
l 删除记录:
1、删除表中名称为guolei的记录
delete from 表名 where username='guolei';
2、删除表中所有记录(一条一条地删除)
delete from 表名;
3、使用truncate删除表中记录(摧毁整张表格,然后重建表结构)
TRUNCATE user;
l 显示记录:
格式:select 字段1,字段2,字段n from 表名 where 字段判断表达式;
注:字段1、字段2、字段n可以参加运算,也可以用*表示选择所有字段
字段表达式中可以用的判断符号有:=、>、<、<>、多个判断表达式可用or、and连接,示例如下:
1、显示表中所有的记录
select * from student;
select 字段1,字段2,字段3,字段n from student;
2、显示所有记录,但只显示name和english字段
select name,english from student;
3、只显示英语成绩字段,并且重复的分数只显示一个
select distinct english from student;
4、在所有学生的数学分数上都加上10分
select name,math+10 from student;
5、统计每个学生的总分
select name,chinese+english+math from student;
6、使用别名表示总分
select name,chinese+english+math as 总分 from student; 或:
select name,chinese+english+math 总分 from student;
7、查询姓名为王五和李一的学生的记录
select * from student where name='王五' or name='李一';
8、查询英语成绩大小90分的所有记录
select * from student where english>90;
9、查询英语分数在 80-90之间的同学
SELECT name,english FROM student WHERE english>80 AND english<=90;
或者
SELECT name,english FROM student WHERE english BETWEEN 80 AND 90;
10、查询数学分数为89,90,91的同学
SELECT name,math FROM student WHERE math IN (89,90,91);
11、查询所有姓李的学生成绩
SELECT name,chinese,english,math FROM student WHERE name LIKE '李%';
12、对数学成绩排序后输出
SELECT name,math FROM student ORDER BY math DESC;//降序
13、对姓李的学生成绩排序输出
SELECT name,chinese,english,math FROM student WHERE name LIKE '李%' ORDER BY math DESC;
14、统计一个班级共有多少学生
SELECT count(*) FROM student;
15、统计数学成绩大于90的学生有多少个
SELECT count(*) FROM student WHERE math>80;
16、统计一个班级数学总成绩
SELECT SUM(math) FROM student;
17、统计一个班级语文、英语、数学各科的总成绩
SELECT SUM(math),SUM(chinese),SUM(english) FROM student;
18、统计一个班级语文、英语、数学的成绩总和
SELECT SUM(math+chinese+english) FROM student;
19、统计一个班级语文成绩平均分
SELECT SUM(chinese)/COUNT(*) FROM student;
20、求一个班级数学平均分
SELECT AVG(math) FROM student;
21、求一个班级总分平均分
SELECT AVG(math+chinese+english) FROM student;
22、求班级最高分
SELECT MAX(math+chinese+english) FROM student;
23、求班级最低分
SELECT MIN(math+chinese+english) FROM student;
24、对订单表中商品归类后,显示每一类商品的总价
SELECT product,SUM(price) FROM orders GROUP BY product;
25、在上面的基础上进一步筛选出每类总价大于100的商品
SELECT product,SUM(price) FROM orders GROUP BY product HAVING SUM(price)>100;
删除
l 删除数据库:drop database 数据库名;
l 删除字段:alter table表名drop 字段名;
l 删除表:drop table表名;
l 删除记录:
1、删除表中名称为guolei的记录
delete from 表名 where username='guolei';
2、删除表中所有记录(一条一条地删除)
delete from 表名;
3、使用truncate删除表中记录(摧毁整张表格,然后重建表结构)
TRUNCATE user;
修改
l 修改数据库的字符集编码:alter database 数据库名character set gbk;
l 修改字段:alter table表名modify 字段名 varchar(99);
l 修改客户端使用的编码(只对当前窗口有效)
set character_set_client=gbk;
set character_set_results=gbk;
备份/恢复
备份数据库的所有的表:mysqldump -u 用户名 –p密码 数据库名>d:/test.sql
远程备份:mysqldump -h ip地址 –u用户名 –p密码 test>d:/test.sql
注:上面两种备份命令都是Windows命令,需在windows 命令提示符中输入才有效
恢复数据库的所有的表:先用use选择数据库,然后用:source D:/database/db1.sql;将表恢复到所先的数据库中
另一种恢复的方法:在Windows命令提示符中输入:mysql –u用户名 –p密码 数据库名<D:/test.sql