提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助
mysql的内容
命令顺序为:select, from, where, group by, having, order by, limit
where子句 = 指定行所对应的条件
having子句 = 指定组所对应的条件
order by 排序
asc 升序
D中是Group by才用来分组的,group by的作用是限定分组条件,而having则是对group by中分出来的组进行条件筛选。
所以用having就一定要和group by连用,且是先group by XXX 再having XXX,用group by不一有having(它只是一个筛选条件用的)
题
1 一张学生成绩表score,部分内容如下:
name course grade
张三 操作系统 67
张三 数据结构 86
李四 软件工程 89
用一条SQL 语句查询出每门课都大于80 分的学生姓名,SQL语句实现正确的是:
2 Mysql中表student_table(id,name,birth,sex),插入如下记录:
(‘1003’ , NULL , ‘2002-05-20’ , ‘男’);
(‘1004’ , ‘张三’ , ‘2000-09-06’ , ‘男’);
(‘1005’ , ‘李四’ , ‘2001-12-01’ , ‘女’);
(‘1006’ , NULL , ‘2001-12-02’ , ‘女’);
修改name字段为NULL的记录,是男生时设置name=‘男生姓名’,是女生时设置name=‘女生姓名’,如下SQL正确的是()?
Select distinct name from score where name not in(Select name from score where grade <= 80);
3 update student_table set name = ( case when sex = ‘男’ then ‘男生姓名’ when sex = ‘女’ then ‘女生姓名’ end) where name is null ;
没有case when …end
update set 固定搭配
4 SELECT COALESCE(NULL,fat,2)AS name1,COALESCE(pig,test,test)AS name2 FROM NAMETABLE;以上SQL执行后name1和name2分别为多少
fat,pig
如果value1不为空值则返回value1;否则判断value2是否是空值,
如果value2不为空值则返回value2;
5 修改表test_tbl字段i的缺省值为1000
ALTER TABLE test_tbl ALTER i SET DEFAULT 1000;
CHANGE 用来修改字段名字以及类型
modify 用来修改字段类型
aiter column … set 用来修改字段数据
补充知识点
@@ERROR:返回执行的上一个 Transact-SQLTransact-SQL 语句的错误号。
@@IDENTITY:返回自增id。
@@ROWCOUNT:返回受上一个SQL语句影响的行数。
@@MAX_CONNECTIONS:返回最大用户连接数。
DESC是降序排序
规范化过程主要是克服数据库逻辑结构中的插入异常,删除异常,冗余度大的问题