创建一个名称为mydb1的数据库
create database mydb1;
创建一个使用utf8字符集的mydb2数据库
create database if not exists mydb2 character set UTF8;
//如果不存在mydb2,就创建,如果存在,则不创建mydb2数据库
创建一个使用utf8字符集,并带校对规则的mydb3数据库
create database if not exists mydb3 character set UTF8 collate utf8_general_ci;
查看当前数据库服务器中的所有数据库
show databases;
查看前面创建的mydb2数据库的定义信息
show create database mydb2;
删除前面创建的mydb1数据库
drop database if exists mydb1;
查看服务器中的数据库,并把其中mydb3库的字符集修改为gbk
alter database mydb3 character set gbk;
备份mydb2库中的数据,并恢复
准备工作:
create table if not exists user(
name varchar(20) not null
);
insert into user(name) values('jack');
insert into user(name) values('marry');
使用MySQL特有的备份SQL命令
mysql >
创建一张表,含有id/name/password/birthday字段
drop table if exists user;
create table user(
id int(5),
name varchar(20),
password varchar(6),
birthday timestamp,
salary float(6,2)
);
insert into user(id,name,password,salary) values(1,'jack','000000',1234.12);
创建/查看一个员工表(并指明字符集为UTF8)
drop table if exists employee;
create table employee(
id int,
name varchar(20),
gender varchar(6),
birthday date,
entry_date date,
job varchar(30),
salary float(5,1),
resume text
);
insert into employee(id,name,gender,birthday,entry_date,job,salary,resume)
values(1,'jack','male','2011-10-8','2011-12-31','software',5000.1,'hello');
在上面员工表的基本上增加一个image列。
alter table employee
add image blob;
修改job列,使其长度为60。
alter table employee
modify job varchar(60) default 'teacher';
删除gender列。
alter table employee
drop gender;
表名改为user。
rename table employee to user;
修改表的字符集为gbk。
alter table user
character set UTF8;
列名name修改为username。
alter table user
change column name username varchar(20);
向user表插入一条中文记录
insert into user(username,id,birthday,entry_date,job,salary,resume)
values('杰克',2,'2011-10-8','2011-12-31','software',5000.1,'你好');
insert into user values(3,'马利','2011-10-8','2011-12-31','software',5000.1,'你好',NULL);
insert into user values(4,'马利','2011-10-8','2011-12-31','software',5000.1,NULL,NULL);
insert into user(id,username,birthday,entry_date,job,salary,image)
values(5,'马利','2011-10-8','2011-12-31','software',5000.1,NULL);
//修改客户端输入和输出使用的编码方式,与WindowXP平台一致
set character_set_client=gbk;
set character_set_results=gbk;
将所有员工薪水修改为6000元。
update user set salary = 6000;
将姓名为’马利’的员工薪水修改为7000元。
update user set salary = 7000 where username = '马利';
将’jack’的薪水在原有基础上增加1000元。
update user set salary = salary + 1000 where username = 'jack';
删除表中名称为’jack’的记录。
delete from user where username = 'jack';
删除表中所有记录。
delete from user;
使用truncate删除表中记录。
truncate table user;
查询表中所有学生的信息。
select * from student;
select id,name,math,chinese,english from student;
select name,id,math,chinese,english from student;
select name,math from student;
查询表中所有学生的姓名和对应的英语成绩。
select name,english from student;
过滤表中重复数据。
select distinct english from student;
select distinct name,english from student;
在所有学生分数上加10分特长分。
select name,math+10 from student;
select name as 姓名,math+10 as 数学 from student;
统计每个学生的总分。
select name,math+chinese+english
from student;
使用别名表示学生分数。
select name,math+chinese+english as 总分
from student;
查询姓名为’张小明’的学生成绩
select *
from student
where name = '张小明';
查询英语成绩大于90分的同学
select *
from student
where english > 90;
查询总分大于200分的所有同学
select name,chinese+math+english as 总分
from student
where chinese+math+english > 200;
查询英语分数在 80-90之间的同学。
select *
from student
where english>=80 and english<=90;
或
select *
from student
where english between 80 and 90;
查询数学分数为89,90,91的同学。
select *
from student
where math=89 or math= 90 or math=91;
或
select *
from student
where math [not] in(89,90,91);
查询所有姓’李’的学生成绩。
select *
from student
where name LIKE '李%';
select *
from student
where name LIKE '%李';
select *
from student
where name LIKE '%李%';
---------------------------------------在网站中,多条件查询中用到
select *
from student
where name LIKE '%%';
select *
from student
where name LIKE '__李';
select *
from student
where math IS [NOT] NULL;
查询数学分>80且语文分>80的同学。
select *
from student
where math >80 and chinese>80;
对数学成绩排序后输出。
升序:
select *
from student
order by math asc;
降序:
select *
from student
order by math desc;
对总分降序后输出。
select name,math+chinese+english as 总分
from student
order by math+chinese+english desc;
对姓’李’的学生总分降序输出。
select name,math+chinese+english as 总分
from student
where name LIKE '李%'
order by math+chinese+english desc;
统计一个班级共有多少学生?
select count(*) as 总人数
from student;
统计数学成绩大于80的学生有多少个?
select count(*) as 总人数
from student
where math > 80;
统计总分大于250的人数有多少?
select count(*) as 总人数
from student
where (math+chinese+english) > 250;
select count(english) as 总人数
from student;//13
select count(math) as 总人数
from student;
统计一个班级数学总成绩。
select sum(math)
from student;
select sum(name)
from student;//0
统计一个班级语文、英语、数学各科的总成绩。
select sum(math) as 数学总分,sum(chinese) as 语文总分,sum(english) as 英语总分
from student;
统计一个班级语文、英语、数学的成绩总和。
select sum(math)+sum(chinese)+sum(english) as 班级总分
from student;
统计一个班级语文成绩平均分。
select sum(math)/count(math)
from student;
select sum(math)/count(*)
from student;
create database mydb1;
创建一个使用utf8字符集的mydb2数据库
create database if not exists mydb2 character set UTF8;
//如果不存在mydb2,就创建,如果存在,则不创建mydb2数据库
创建一个使用utf8字符集,并带校对规则的mydb3数据库
create database if not exists mydb3 character set UTF8 collate utf8_general_ci;
查看当前数据库服务器中的所有数据库
show databases;
查看前面创建的mydb2数据库的定义信息
show create database mydb2;
删除前面创建的mydb1数据库
drop database if exists mydb1;
查看服务器中的数据库,并把其中mydb3库的字符集修改为gbk
alter database mydb3 character set gbk;
备份mydb2库中的数据,并恢复
准备工作:
create table if not exists user(
name varchar(20) not null
);
insert into user(name) values('jack');
insert into user(name) values('marry');
使用MySQL特有的备份SQL命令
mysql >
创建一张表,含有id/name/password/birthday字段
drop table if exists user;
create table user(
id int(5),
name varchar(20),
password varchar(6),
birthday timestamp,
salary float(6,2)
);
insert into user(id,name,password,salary) values(1,'jack','000000',1234.12);
创建/查看一个员工表(并指明字符集为UTF8)
drop table if exists employee;
create table employee(
id int,
name varchar(20),
gender varchar(6),
birthday date,
entry_date date,
job varchar(30),
salary float(5,1),
resume text
);
insert into employee(id,name,gender,birthday,entry_date,job,salary,resume)
values(1,'jack','male','2011-10-8','2011-12-31','software',5000.1,'hello');
在上面员工表的基本上增加一个image列。
alter table employee
add image blob;
修改job列,使其长度为60。
alter table employee
modify job varchar(60) default 'teacher';
删除gender列。
alter table employee
drop gender;
表名改为user。
rename table employee to user;
修改表的字符集为gbk。
alter table user
character set UTF8;
列名name修改为username。
alter table user
change column name username varchar(20);
向user表插入一条中文记录
insert into user(username,id,birthday,entry_date,job,salary,resume)
values('杰克',2,'2011-10-8','2011-12-31','software',5000.1,'你好');
insert into user values(3,'马利','2011-10-8','2011-12-31','software',5000.1,'你好',NULL);
insert into user values(4,'马利','2011-10-8','2011-12-31','software',5000.1,NULL,NULL);
insert into user(id,username,birthday,entry_date,job,salary,image)
values(5,'马利','2011-10-8','2011-12-31','software',5000.1,NULL);
//修改客户端输入和输出使用的编码方式,与WindowXP平台一致
set character_set_client=gbk;
set character_set_results=gbk;
将所有员工薪水修改为6000元。
update user set salary = 6000;
将姓名为’马利’的员工薪水修改为7000元。
update user set salary = 7000 where username = '马利';
将’jack’的薪水在原有基础上增加1000元。
update user set salary = salary + 1000 where username = 'jack';
删除表中名称为’jack’的记录。
delete from user where username = 'jack';
删除表中所有记录。
delete from user;
使用truncate删除表中记录。
truncate table user;
查询表中所有学生的信息。
select * from student;
select id,name,math,chinese,english from student;
select name,id,math,chinese,english from student;
select name,math from student;
查询表中所有学生的姓名和对应的英语成绩。
select name,english from student;
过滤表中重复数据。
select distinct english from student;
select distinct name,english from student;
在所有学生分数上加10分特长分。
select name,math+10 from student;
select name as 姓名,math+10 as 数学 from student;
统计每个学生的总分。
select name,math+chinese+english
from student;
使用别名表示学生分数。
select name,math+chinese+english as 总分
from student;
查询姓名为’张小明’的学生成绩
select *
from student
where name = '张小明';
查询英语成绩大于90分的同学
select *
from student
where english > 90;
查询总分大于200分的所有同学
select name,chinese+math+english as 总分
from student
where chinese+math+english > 200;
查询英语分数在 80-90之间的同学。
select *
from student
where english>=80 and english<=90;
或
select *
from student
where english between 80 and 90;
查询数学分数为89,90,91的同学。
select *
from student
where math=89 or math= 90 or math=91;
或
select *
from student
where math [not] in(89,90,91);
查询所有姓’李’的学生成绩。
select *
from student
where name LIKE '李%';
select *
from student
where name LIKE '%李';
select *
from student
where name LIKE '%李%';
---------------------------------------在网站中,多条件查询中用到
select *
from student
where name LIKE '%%';
select *
from student
where name LIKE '__李';
select *
from student
where math IS [NOT] NULL;
查询数学分>80且语文分>80的同学。
select *
from student
where math >80 and chinese>80;
对数学成绩排序后输出。
升序:
select *
from student
order by math asc;
降序:
select *
from student
order by math desc;
对总分降序后输出。
select name,math+chinese+english as 总分
from student
order by math+chinese+english desc;
对姓’李’的学生总分降序输出。
select name,math+chinese+english as 总分
from student
where name LIKE '李%'
order by math+chinese+english desc;
统计一个班级共有多少学生?
select count(*) as 总人数
from student;
统计数学成绩大于80的学生有多少个?
select count(*) as 总人数
from student
where math > 80;
统计总分大于250的人数有多少?
select count(*) as 总人数
from student
where (math+chinese+english) > 250;
select count(english) as 总人数
from student;//13
select count(math) as 总人数
from student;
统计一个班级数学总成绩。
select sum(math)
from student;
select sum(name)
from student;//0
统计一个班级语文、英语、数学各科的总成绩。
select sum(math) as 数学总分,sum(chinese) as 语文总分,sum(english) as 英语总分
from student;
统计一个班级语文、英语、数学的成绩总和。
select sum(math)+sum(chinese)+sum(english) as 班级总分
from student;
统计一个班级语文成绩平均分。
select sum(math)/count(math)
from student;
select sum(math)/count(*)
from student;