SQL语句练习

本文不具有参考性和阅读意义,是最近笔试考到数据库大题都不会写,为了复习sql语句在参考书上撸的的一篇文章。

                  
查询student表中的Sname,Ssex,Class
Select  Sname,Ssex,Class from Student

查询教师所有不重复的单位
Select  distinct  Depart  from  teacher

查询Student表中所有的数据
Select * from Student

查询Score表中成绩6080的所有记录
Select * from Score where degree between 60 and 80

查询Score表中成绩为858688的记录
Select * from score where degree in (85,86,88)

查询student表中“95031”班或性别为“女”的同学记录
Select * from student where class=95031or ssex=’女’

以class降序查询Student表的所有记录
Select * from Student order by class desc

以Cno升序,Degree降序查询Score表中的所有记录
Select * from score order by cno asc , degree desc

查询Score表中最高分的学生学号和课程号
Select * from score order by degree desc 
或 select sno , cno from score where degree = (select max(degree) from score)

创建表
Create table Student
( 
Sno  Char(3),
Sname  Char(8),
Ssex  Char(2),
Sbirthday  datetime,
Class  Char(5)
)

Create table Course
(
Cno Char(5),
Cname Varchar(10),
Tno Char(3)
)

Create table Score 
(
Sno Char(3),
Cno Char(5),
Degree Decimal (4,1)
)

Create table Teacher
(
Tno char(3),
Tname char(4),
Tsex char(2),
Tbirthday datetime,
Prof char(6),
Depart varchar(10)
)

插入数据
Insert into course (Cno,Cname,Tno)
Values
(3-105,’计算机导论’,825)(3-245,’操作系统’,804),
(‘6-166’,‘数字电路’,856),
(‘9-888’,‘高等数学’,831);


数据库和表基本操作

Create database itcast;

Show databases;

Drop  databases  itcast;

Create  table  tb_grade
(
Id  int(11),
Name  varchar(20),
Grade  float
);

Show tables;

Describe  tb_grade;

Alter  table  tb_grade  rename  to  grade;

Alter table grade change name username varchar(20);

Alter  table  grade modify id int(20);

Alter  table  grade  add  age  int(10);

Alter table grade drop age;

Alter  table  grade  modify  username  varchar(20) first;

Alter  table  grade  modify  id  int(20)  after  grade;

Create  table  example01
(
Id int primary key,
Name varchar(20),
Grade float
);

Create table example02
(
Stu_id int,
Course_id int,
Grade float,
Primary key(stu_id,course_id)
);

Create table example04
(
Id int primary key,
Name varchar(20) not null,
Grade float
);

Create table example05
(
Id int primary key,
Stu_id int unique,
Name varchar(20) not null
);

Create table example06
(
Id int primary key auto_increment,
Stu_id int unique,
Grade float default 0
);

Create table t1
(
Id int,
Name varchar(20),
Score float,
Index(id)
);

Explain select * from t1 where id=1

Create table t2
(
Id int not null,
Name varchar(20) not null,
Score float,
Unique index unique_id(id asc)
);

Create table t3
(
Id int not null,
Name varchar(20) not null,
Score float,
Fulltext index fulltext_name(name)
)engine=myisam;

Create table t4
(
Id int not null,
Name varchar(20) not null,
Score float,
Index single_nme(name(20))
);


Create table t5
(
Id int not null,
Name varchar(20) not null,
Score float,
Index multi(id,name(20))
);

Create index index_id on book(booked);

Create unique index uniqueidx on book(bookid);

Create index mulitidx on book(authors(20),info(20));

Alter table book add index index_id(bookid);

Alter table book add index multidx (authors(20),info(50));

Insert into student(id,name,grade)
Values(1,’zhangsan’,98.5);

Select * from student;

Insert into student 
Set id=5,name=’boya’,grade=99;

Insert into ssel
tudent values
(6,’lilei’,99),
(7,’hanmeimei’,100),
(8,’poly’,40.5);

Insert into student(id,name) values
(9,’liubei’),(10,’guanyu’),(11,’zhangfei’);

Update student set name=’caocao’,grade=50
Where id=1;

Update student 
Set grade=100
Where id<4;

Update student set grade=80;

Delete from student where id=1;
Delete from student where id>5;

Select id, grade, name, gender from student where id in (1,2,3);

Select id, name from student where id between 2 and 5;

Select id,name,grade,gender from student where gender is null;

Select distinct gender from student;

Select id,name from student where name like”s%;

Select id, name from student where name like ‘w%g’;

Select id, name from student where name not like ‘%y%;

Select * from student where name like ‘wu_ng’;

Select id,name,gender from student where id<5 and gender=’女’;

Select id,name,grade,gender  from student where id in(1,2,3,4) and name like ‘%ng’ and grade<80;

Select count(*) from student;

Select sum(grade) from student;

Select avg(grade) from student;

Select * from student order by grade;

Select * from student order by gender asc,grade desc;

Select * from student group by gender;

Select count(*) ,gender from student group by gender;

Select sum(grade),gender from student group by gender having sum(grade)<300;

Select sum(grade),gender from student where gender=’男’;

Select * from student limit 4;

Select * from student order by grade desc limit 4,4;

Select  concat (id,’_’,name,’_’,grade,’_’,gender) from student;

Select id,if(gender=’男’,1,0) from student;

Select * from student as s where s.gender=’女’;

Select name as stu_name, gender stu_gender from student;

Alter table student add constraint FK_ID foreign key(gid) references grad(id);

Alter table student drop foreign key FK_ID;

Select * from department cross join employee;

Select employee.name, department.dname from department join employee on department.did=employee.did;

Select department.did,department.dname,employee.name from department left join employee on department.did=employee.did;

Select * from department where did in (select did from employee where age=20);

Select * from department where did not in (select didi from employee where age=20);

Select * from department where did exist (select didi from employee where age>20);

Select * from department where did>any (select did from employee);

Select *from department where did>all (select did from employee);

Select * from department where did=(select did from employee where name=‘赵四’);

Rollback;

Declare cursor_student cursor for select s_name,s_gender from student;

Create view view_stu as select math, Chinese, math+Chinese from student;

Show table status like ‘stu_class’

备份单个或多个数据库 mysqldump;
备份所有数据库,最后加—all-databases
数据还原 backup或者source
修改root密码mysqladmin
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值