。。。。。= =。。。。

进入mysql: mysql -uroot ;

创建一个数据库: create database [数据库名字]; (注意最后的分号不能漏)

删除一个数据库:drop database [数据库名字];

查看已有的数据库:show databases; (查看已存在的表类似)

选中一个数据库:use [数据库名字];

创建表:create table [表名] (

      [成员名]  char(8) ,

      ……);

/*

如果出现了中文乱码,输入:

alter database mydb  character set utf8;

具体看:http://www.pc6.com/infoview/article_63586.html

修改表的操作:http://www.bkjia.com/Mysql/1122917.html

*/

查看当前数据库的状态:status;

查看表中元素:select*from [表名];

向表中插入一个元素:insert into [表名] values("……","……","……","……") ;

向表中删除一个元素:delete from [表名]

          where [符合某种特性]( 如:Sno=1 );

删除表:drop table [表名]

更新表中数据:update [MYTABLE] set sex=”f” where name=’hyq’; (当然sex , name是我这边表里的两个元素)

练习:

1.分别查询学生表和学生修课表中的全部数据。

SELECT * FROM stu
SELECT * FROM course

  

2.查询成绩在70到80分之间的学生的学号、课程号和成绩。

SELECT Sno,Cno,Grade
FROM SC
WHERE Grade BETWEEN 70 AND 80

  

3.查询C01科目的最高分

select max(Grade)
from SC
where Cno='C01' ;

  

查询C01科目的第二名的学号和分数

select Sno,Grade
from SC
where Cno='C01'
order by Grade desc
limit 1,1;

  

4.查询学生都选修了哪些课程,要求列出课程号。

select Cname,Cno
from SC
where Cno in(select Cno from SC) ; //a in(……) 表示a属于……这个集合中的元素。

  

5.查询修了C02号课程的所有学生的平均成绩、最高成绩和最低成绩。

select avg(Grade),max(Grade),min(Grade)
from SC
where Cno='C02' ;

  

6.统计每个系的学生人数。

select Major,count(*)
from stu
group by Major;

  

7.统计每门课程的修课人数和考试最高分。

select Cname,count(*),max(Grade)
from SC,course
where SC.Cno=course.Cno
group by SC.Cno;

  

8.统计每个学生的选课门数,并按选课门数的递增顺序显示结果。

select stu.Sname,count(sc.Sno)
from stu,sc
where stu.Sno=sc.Sno
group by stu.Sname
order by count(sc.Sno) asc ; //注意这里order by,group by两句位置不能反

  

9.统计选修课的学生总数和考试的平均成绩。

select count(distinct(Sno)) , avg(grade)
from sc ;

  

10.查询选课门数超过2门的学生的平均成绩和选课门数。

(1)

select stu.Sname,avg(sc.grade),count(sc.Sno)
from stu,sc
where stu.Sno=sc.Sno
group by stu.Sno
order by count(sc.Sno) asc limit 3,10 ;

(2)

select stu.sname,avg(sc.grade),count(sc.sno)
from stu,sc
where stu.sno=sc.sno
group by stu.sno
having count(sc.sno) > 2 ; //having 帅选语句

11.列出总成绩超过200分的学生,要求列出学号、总成绩。

select sc.sno , sum(sc.grade)
from sc
group by sc.sno
having sum(sc.grade) > 200 ;

12.查询选修了c02号课程的学生的姓名和所在系。

select stu.sname,stu.major
from stu,sc
where stu.sno=sc.sno and sc.cno = 'C02' ;

13.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。

select stu.Sname , sc.Cno , sc.Grade
from stu , sc
where stu.Sno = sc.Sno
group by sc.Grade
order by sc.Grade desc
having sc.Grade>80 ;

14.查询计算机系男生修了"数据库基础"的学生的姓名、性别、成绩。

select stu.Sname , stu.Ssex , sc.Grade
from sc , stu , course
where sc.Sno = stu.Sno and stu.Ssex = '男'
and sc.Cno = course.Cno and course.Cname = '数据库基础';

15.查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。

 select A.Sname , A.Sage
from stu A
join stu B on(A.Sname!=B.Sname and A.Sage=B.Sage)
group by A.Sname
order by A.Sage;
//表的自连接,说白了就是开两个变量

16.查询哪些课程没有人选,要求列出课程号和课程名。

select course.Cname , course.Cno
from course
where course.Cno not in(select Cno from sc)
group by course.Cname;

17.查询有考试成绩的所有学生的姓名、修课名称及考试成绩

 select stu.Sname , course.Cname , sc.Grade
from stu , sc , course
where stu.Sno=sc.Sno and sc.Cno=course.Cno and
sc.Grade is not NULL;
//注意这里不能写 sc.Grade != NULL

18.分别查询信息系和计算机系的学生的姓名、性别、修课名称、修课成绩,
--并要求将这两个查询结果合并成一个结果集,
--并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。

 select stu.Sname,stu.Ssex,course.Cname,sc.Grade
from stu , sc , course
where stu.Sno=sc.Sno and sc.Cno=course.Cno and
(stu.Major='计算机' or stu.Major='信息');
//注意这里的括号不能去掉,也可以使用union , 感觉就是分两次写一下选一门课的情况,然后中间加个union ;

19.用子查询实现如下查询:

(1)    查询选修了C01号课程的学生的姓名和所在系。

select stu.Sname , stu.Major
from stu
where stu.Sno in(select Sno from sc where sc.Cno='C01');

(2)    查询数学系成绩80分以上的学生的学号、姓名。

select stu.Sno , stu.Sname
from stu
where stu.Sno in (
select sc.Sno
from sc
where sc.Grade>80) ;

(3)    查询计算机系学生所选的课程名.

select course.Cname
from course
where course.Cno in(
select sc.Cno
from sc
where sc.Sno in(
select stu.Sno
from stu
where stu.Major='计算机')) ;

20.将计算机系成绩高于80分的学生的修课情况插入到另一张表中,分两种情况实现:

(1)    在建表过程中插入

create table sc1 (
select stu.Sname , course.Cname , course.Cno
from stu , sc , course
where stu.Sno=sc.Sno and sc.Cno=course.Cno and
stu.Major='计算机' and sc.Grade>80) ;
// select * into new_table from …… 注意mysql里不能使用这种写法

(2) 往表sc2插入查询得到的结果

create table sc2 (
Sname char(20),
Cname char(20),
Cno char(2)
);
insert sc2
select stu.Sname , course.Cname , course.Cno
from stu , sc , course
where stu.Sno=sc.Sno and sc.Cno=course.Cno and
stu.Major='计算机' and sc.Grade>80;

21.从sc表中删除修课成绩小于0分的栏

delete from sc
where grade<0 ;

22.将所有选修了"c01"课程的学生的成绩加0分

update sc
set grade=grade+0
where Cno='C01';

23.删除course表的hour列

alter from course
drop column Period;

  

数据库mysql 基本命令的更多相关文章

  1. 数据库mysql的基本命令

    问题分析 当数据量很大的时候,所有数据都集中在一个文本文件中的话,读写会很困难,内存消耗大,速度很慢 操作很麻烦,因为读写都要根据指定的格式尽心解析,不通用 每次获取数据都要全部数据重新读写,不能通过 ...

  2. MySQL基本命令和常用数据库对象

    MySQL基本命令: 连接远程主机的MySQL服务(为了保证安全性,执行下面命令时,可以省略-p后面的密码,执行命令后系统会提示输入密码) mysql -p 密码 -u 用户名 -h 主机地址 --d ...

  3. MySQL基本命令操作及数据库基本概念

    MySQL基本命令操作及数据库基本概念 1.数据库的基本概念 2.主流数据库介绍 3.关系型非关系型数据库介绍 4.Mysql 安装方法 5.Mysql 基本操作命令 1.数据库的基本概念: 数据库的 ...

  4. Python创建插入数据库MySQL

    首先要在控制台创建好数据库 mysql -u root -p 创建数据库 查看数据库 -------------------更新分割线(上面为新增...太久没用都忘了SQL基本命令了)-------- ...

  5. MySQL基本命令语法之select

    目录 MySQL基本命令语法之select 查询去重以及常数 空值与着重号 着重号 空值 运算符 算术运算符 比较运算符 符号型 非符号型 逻辑运算符 优先级 排序分页 排序 分页 拓展 多表查询 等 ...

  6. DOS命令行下mysql 基本命令

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

  7. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  8. mysql基本命令(转)

    连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空 ...

  9. Robot Framework-DatabaseLibrary数据库(MySql)

    Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...

随机推荐

  1. Dubbo学习之简单环境搭建

    Dubbo服务的发展和作用: 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后的常规方案演进历程. 其次,当服务越来越多之后,我们需要做哪些服务治理? 最后,是d ...

  2. Dipole Antenna : 2

    Characteristics of dipole antenna. %% % characteristics of dipole antenna % author : Leon % email:ya ...

  3. 并行计算提升32K*32K点(32位浮点数) FFT计算速度(4核八线程E3处理器)

    对32K*32K的随机数矩阵进行FFT变换,数的格式是32位浮点数.将产生的数据存放在堆上,对每一行数据进行N=32K的FFT,记录32K次fft的时间. 比较串行for循环和并行for循环的运行时间 ...

  4. u3d中texture2D的Advanced设置解析

    经常进行Texture2D的信息设置,以下记录每个属性的意义: 参考手册:  file:///D:/Program%20Files%20(x86)/Unity4.7/Editor/Data/Docum ...

  5. jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  6. Python基本数据结构

    第一部分: #列表a = [11,22,24,29,30,32] #1 把28插入到列表的末端 >>> a.append(28) >>> a [11, 22, 24 ...

  7. linux查看主板型号及内存硬件信息

      公司服务器内存不够用了. 想看看买啥型号的. 购买内存条注意点: ddr3 or4 频率 块钱. 内存槽及内存条: dmidecode |grep -A16 "Memory Device ...

  8. [转载]Web前端开发工程师编程能力飞升之路

    [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的 ...

  9. 1205索引使用explain

    -- 转自博客http://blog.sina.com.cn/s/blog_75a2f94f0101ddhb.html01type类型type按照从最佳类型到最坏类型进行排序,该字段和ref字段相结合 ...

  10. flexbox布局神器

    前言 2009年,W3C提出了一种新的方案----Flexbox布局(弹性布局),可以简便.完整.响应式地实现各种页面布局.Flex布局模型不同于块和内联模型布局,块和内联模型的布局计算依赖于块和内联 ...