MySQL命令的使用第11天

MySQL命令

登陆Mysql:mysql -u 用户名 –p密码 

退出Mysql\qexit 

注:对表的所有操作都要先选择表所在的数据库,选择数据库: 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可以参加运算,也可以用*表示选择所有字段

字段表达式中可以用的判断符号有:=、><<>、多个判断表达式可用orand连接,示例如下:

1、显示表中所有的记录
select * from student;
select 字段1,字段2,字段3,字段n from student;
2、显示所有记录,但只显示nameenglish字段
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、查询英语分数在 8090之间的同学

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


原文地址:https://www.cnblogs.com/runwind/p/4454721.html