欢迎投稿

今日深度:

MySql基本语法及练习(4),mysql基本语法练习

MySql基本语法及练习(4),mysql基本语法练习


1.创建一个员工表(并指明字符集为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
);


2.插入数据:
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');

3.在上面员工表的基本上增加一个image列。
alter table employee  add image blob;

4.修改job列,使其长度为60。
alter table employee
modify job varchar(60) default 'teacher';

5.删除gender列。
alter table employee drop gender;

6.表名改为user。
rename table employee to user;

注意:对于MySql而言,不能修改数据库的名字,但是可以修改表名


7.修改表的字符集为gbk。
alter table user
character set UTF8;

8.列名name修改为username。
alter table user
change column name username varchar(20); 

9.向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);

10.修改客户端输入和输出使用的编码方式,与WindowXP平台一致

set character_set_client=gbk;
set character_set_results=gbk;

11.将所有员工薪水修改为6000元。
update user set salary = 6000;

12.将姓名为’马利’的员工薪水修改为7000元。
update user set salary = 7000 where username = '马利';

13.将’jack’的薪水在原有基础上增加1000元。
update user set salary = salary + 1000 where username = 'jack';

14.删除表中名称为’jack’的记录。
delete from user where username = 'jack';

15.删除表中所有记录。
delete from user;

16.使用truncate删除表中记录。
truncate table user;

17.查询表中所有学生的信息。
select * from student;
select id,name,math,chinese,english from student;
select name,id,math,chinese,english from student;
select name,math from student;

18.查询表中所有学生的姓名和对应的英语成绩。
select name,english from student;

19.过滤表中重复数据。
select distinct english from student;
select distinct name,english from student;

20.在所有学生分数上加10分特长分。
select name,math+10 from student;
select name as 姓名,math+10 as 数学 from student;

21.统计每个学生的总分。
select name,math+chinese+english
from student;

22.使用别名表示学生分数。

select name,math+chinese+english as 总分
from student;

23.查询姓名为’张小明’的学生成绩
select * from student 
where name = '张小明';

24.查询英语成绩大于90分的同学
select * from student 
where english > 90;

24.查询总分大于200分的所有同学
select name,chinese+math+english as 总分
from student
where chinese+math+english > 200;

25.查询英语分数在 80-90之间的同学。
select *
from student
where english>=80 and english<=90;
或 
select *
from student
where english between 80 and 90;

26.查询数学分数为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);

27.查询所有姓’李’的学生成绩。
select *
from student
where name LIKE '李%';

select * from student
where name LIKE '%李';

select * from student
where name LIKE '%李%';

28.在网站开发中多条件查询中常用到
select * from student
where name LIKE '%%';

select * from student
where name LIKE '__李';

select *  from student
where math IS [NOT] NULL;

29.查询数学分>80且语文分>80的同学。
select * 
from student
where math >80 and chinese>80;

30.对数学成绩排序后输出。
升序:
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;

31.对姓’李’的学生总分降序输出。

select name,math+chinese+english as 总分
from student
where name LIKE '李%'
order by math+chinese+english desc;

32.统计一个班级共有多少学生?
select count(*) as 总人数
from student;

33.统计数学成绩大于80的学生有多少个?
select count(*) as 总人数
from student
where math > 80;

34.统计总分大于250的人数有多少?
select count(*) as 总人数
from student
where (math+chinese+english) > 250;

select count(english) as 总人数
from student;//13

select count(math) as 总人数
from student;

35.统计一个班级数学总成绩。
select sum(math)
from student;

select sum(name)
from student;//0

36.统计一个班级语文、英语、数学各科的总成绩。
select sum(math) as 数学总分,sum(chinese) as 语文总分,sum(english) as 英语总分
from student;

37.统计一个班级语文、英语、数学的成绩总和。
select sum(math)+sum(chinese)+sum(english) as 班级总分
from student;

38.统计一个班级语文成绩平均分。
select sum(math)/count(math)
from student;

select sum(math)/count(*)
from student;

总结:

  (1).delete from 或truncate table或drop table的各自的区别:
     delete from:按行删除表中的所有记录,但会保留表,适合删除数据量不大的数据,可按条件删除
     truncate table:复制原表结构-〉一次性删除整表 -> 自动恢复原表结构,适合删除数据量较大的数据,不能按条件删除
     drop table:删除表本身
     删除记录时,一定要留意表间的关联关系

 (2).排序:NULL值为最小,使用order by子句,默认升序,order by子句必须放置在最后
 (3).复合函数
   (1)count()函数,统计之用,不统计NULL值
   (2)sum()函数,统计和之用,不要统计非数值,如果统计非数值,返回0

 (4).合计函数
  avg()
  max(),min(),当max()和min()函数位于日期类型时,分别取得最近日期和最早日期











MySQL习题 数据库解答

最好一题:select `stu_id`,avg(`grade`),sum(`grade` < 60) as num from score group by `stu_id` having num >=2‘

avg(`grade`):求平均值
sum(`grade` < 60) :统计小于六十分的个数
group by `stu_id` :按照uid统计
having num >=2:判断统计的个数大于2
 

mysql问题

输入show databases;
你少了个s,还少了个分号.

给你点资料:
MySQL命令行~ZZ~
2009年04月11日 星期六 20:58
第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:2、创建一......余下全文>>
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2614.html NewsArticle MySql基本语法及练习(4),mysql基本语法练习 1.创建一个员工表(并指明字符集为UTF8) drop table if exists employee; create table employee( id int, name varchar(20), gender varchar(6), birthday date, entry_date...
评论暂时关闭