1 Drop, delete,truncates 三者的区别? delete删 truncate 快速删除表内数据 drop 删除 删除数据速度:drop > truncate >delete 注意: 1、drop 是删除表和数据 2、truncate删除无法恢复 3、delete删除是可以恢复 delete: (1)删除表中所有数据 (2)删除表中指定条件的数据 (3)快速删除表数据 2 linux 中如何备份一个数据库和还原一个数据库,写出具体的命令? 备份:mysqldump -u root -p 原数据库>数据库脚本.后缀名 还原: mysql -u root -p新建的空库<数据库备份好的数据脚本 3 数据库中库的类型,表的类型,数据的类型分别是指什么? 关系型数据库和非关系型数据库 MySQL一共向用户提供了包括BDB、HEAP、ISAM、MERGE、MyISAM、InnoDB以及Gemeni这7种Mysql表类型。其中BDB、InnoDB属于事务安全类表,而其他属于事务非安全类表。int 数据类型 char 或varchar字符类型 float 浮点型数据类型 data 时间类型 4 group by 和 order by 的区别? 分组查询 排序 5 聚合函数有哪些? max 最大值 案例:select max(age) from emp min 最小值 案例:select min(age) from emp avg 平均值 案例:select avg(age) from emp count 统计总数 案例:select count (age) from emp sum 求和 案例:select sum (age) from emp distinct 去重 案例:select distinct (字段名) from emp 6 写出增删改查的基本格式? Select 查;insert插入UPDATE(更改数据) DELETE (数据的删除) 7 描述下你对索引的理解 索引是在表的字段名上创建,索引中包含了一个列的值 8 描述下你对视图的理解 视图是一个虚拟表(逻辑表),它不在数据库中以存储数据的形式保存(本身不包含数据)。还是在使用视图的时候动态生成。 9 数据库中常用的约束有哪些? (1)非空约束 (not null)非空,用于保证字段的值不能为空, (2)唯一约束(unique) 保证字段具有唯一性(不能重复),可以为空,唯一约束可以有多高 (3)主键约束(primary key)保证字段具有唯一性(不能重复),不能为空,一个表中只有一个主键 (4)外键约束(forrign key)两个表之间的主键建立关系 (5)默认:(default) 当字段不填数据,默认数据 (6) 自增长:auto_increment 当添加一条数据,自动增长+1 (1)与主键约束一起使用,一般针对id (3)每插入一条数据,指定的字段值+1 10 如何创建一个索引和删除一个索引? alter table表名add index索引名(字段名); 格式:ALTER table 表名drop index索引名; 12 如何创建一个表? create table表名(字段名1字符类型1(字符长度)字段名2字符类型2(字符长度)字段名3字符类型3(字符长度)default charset=utf8;默认编码格式,当插入中文数值显示???解决 13 如何修改一个表字段? alter table 表名 change 原字段名 新字段名 字符类型(字符长度); 14 如何删除一个表字段? alter table表名 drop 字段名; 15 where 和having的区别? having +条件和where +条件 用法一样,但场景不一样,一般group by 的后面接having 基础题(1*20) 基本连接 内连接 左连接 右连接 左表独有的数据 右表独有数据 左右表独有的数据 数据库题(10*5) 下面是一个学生与课程的数据库,三个关系表为: 学生表S(Sid,SNAME,AGE,SEX) 成绩表SC(Sid,Cid,GRADE) 课程表C(Cid,CNAME,TEACHER) 其中Sid为学号,SNAME为学生名字,AGE为年龄,SEX为性别, Cid为课程号,GRADE为成绩,CNAME为课程名字,TEACHER为教师姓名。 SQL脚本如下: #学生表#create table S(Sid int(1),SNAME char(20),AGE int(1),SEX int(1)); #成绩表#create table SC(Sid int(1),Cid char(5),GRADE int(20)) ; #课程表#create table C(Cid char(5),CNAME char(20),TEACHER char(20)); /* insert into S(Sid,SNAME,AGE,SEX)values(1111,'David',28,1); insert intoS(Sid,SNAME,AGE,SEX)values(1112,'Dany',23,0); insert intoS(Sid,SNAME,AGE,SEX)values(1113,'TOM',38,1); insert intoS(Sid,SNAME,AGE,SEX)values(1114,'Lily',20,0); */ insert intoSC(Sid,Cid,GRADE)values(1113,'C1','38'); insert intoSC(Sid,Cid,GRADE)values(1112,'C2','80'); insert into SC(Sid,Cid,GRADE)values(1112,'C3','67'); insert intoSC(Sid,Cid,GRADE)values(1111,'C4','88'); insert intoSC(Sid,Cid,GRADE)values(1114,'C4','66'); */ insert into C(Cid,CNAME,TEACHER)values('C4','Maths','zhangsan'); insert intoC(Cid,CNAME,TEACHER)values('C3','English','lisi'); insert intoC(Cid,CNAME,TEACHER)values('C2','Chinese','wangwu'); insert intoC(Cid,CNAME,TEACHER)values('C1','Computer','zhaoliu');*/ /* 查询出学习成绩及格以上的学生姓名与成绩 SELECT SNAME,GRADE from S inner join SC on S.Sid=SC.Sid where GRADE>=60; 查询姓名以ny结尾的学生姓名及其任课老师姓名 SELECT SNAME,TEACHER from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where SNAME like "%ny" or TEACHER like "%ny" 选修课名为Maths的学生学号与姓名 SELECT S.Sid,SNAME from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where CNAME="Maths" ; 选修课号为C2和C4的学生学号 SELECT S.Sid,SNAME from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where C.cid="C2" or C.cid="C4"; 请问没有参加考试的学生的姓名及其学号 SELECT S.Sid,SNAME from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where GRADE is null ; 请问总分在80分以上的学生姓名 SELECT SNAME from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid group by SNAME HAVING GRADE >80; 请问考试不及格的考生姓名以及科目名称 SELECT S.Sid,SNAME from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where GRADE <60 ; 显示出参加考试的学生的学号和姓名 SELECT distinct(SNAME),S.Sid from S innerjoin SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where GRADE is not null ; 请问TOM参加了哪一门科目的考试 SELECT CNAME from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where SNAME="TOM" and GRADE is not null ; 找出Dany的所有考试后成绩中最高的科目的任课老师姓名 select TEACHER from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where GRADE in(SELECT max(GRADE) from S inner join SC on S.Sid=SC.Sid inner join C onC.cid=SC.cid where SNAME="Dany")
|