1.创建数据库istester:
CREATE DATABASE istester;
DROP DATABASE IF EXISTS istester;
CREATE DATABASE IF NOT EXISTS istester;
2.查看数据库创建是否成功:
show databases;
3.使用数据库:
use istester;
4.查看当前使用的数据库:
select database();
5.创建表istester和idoxu:
istester的字段、类型、属性:id INT(10) NOT NULL UNIQUE PRIMARY KEY,uname VARCHAR(20) NOT NULL ,sex VARCHAR(4),birth YEAR,department VARCHAR(20),address VARCHAR(50),idoxu VARCHAR(20)
CREATE TABLE istester (id INT(10) NOT NULL UNIQUE PRIMARY KEY,uname VARCHAR(20) NOT NULL ,sex VARCHAR(4),birth YEAR,department VARCHAR(20),address VARCHAR(50),idoxu VARCHAR(20));
idoxu的字段、类型、属性:id INT(10) NOT NULL UNIQUE PRIMARY KEY,stu_id INT(10) NOT NULL,c_name VARCHAR(20),istester VARCHAR(50),grade INT(10)
CREATE TABLE idoxu (id INT(10) NOT NULL UNIQUE PRIMARY KEY,stu_id INT(10) NOT NULL,c_name VARCHAR(20),istester VARCHAR(50),grade INT(10));
6.查看表结构:
desc istester;
show columns from istester;
7.复制istester的表结构,创建新表:
create table istester2 like istester;
create table istester3 as select * from istester where 2 = 1;
8.复制istester的表结构和数据,创建新表;
create table istester4 as select * from istester;
9.复制idoxu表的id ,stu_id,istester字段,创建新表:
create table idoxu4 as select id ,stu_id,istester from idoxu where 1 = 2;
10.删除表istest2:
drop table istester2;
11.同时删除idoxu2和idoxu3:
drop table idoxu2,idoxu3;
12.查看数据库中还有哪些表:
show tables;
13.修改istester表,添加一个字段istester6(字符类型VARCHAR,长度100,,不允许为空):
ALTER table istester add column istester6 VARCHAR(100) NOT NULL;
14.修改istester表,删除字段istester6字段:
ALTER table drop istester6;
15.向表istester 插入数据
id=1,uname=idoxu,idoxu=2020
id=2,uname=idoxu2,idoxu=2020
insert into istester (id,uname,idoxu) values(1,"idoxu",2020),(1,"idoxu2",2020);
id=11,uname=idoxu3,sex=1
id=12,uname=idoxu4,sex=2
id=13,uname=idoxu5,sex=1
id=14,uname=idoxu6,sex=2
insert into istester (id,uname,sex) values(11,"idoxu3",1),(12,"idoxu4",2),(13,"idoxu5",1),(14,"idoxu6",2)
向表idoxu插入数据:
id=4,stu_id=11,c_name=idoxu,grade=90
id=5,stu_id=12,c_name=lin,grade=100
id=6,stu_id=33,c_name=istester,grade=20
insert into idoxu (id,stu_id,c_name,grade) values (4,11,"idoxu",90),(5,11,"lin",100),(6,11,"istester",20);
16.查询istester表id=1的内容:
select * from istester where id = 1;
查询idoxu表grade=100的内容:
select * from idoxu where grade=100;
查找idoxu表,名称(c_name)包含“i”的数据:
select * from idoxu where c_name like "%i%";
查找istester表,id包含“1”的数据:
select * from istester where id like "%1%";
查找istester表,id包含“1”的数据,按id降序:
select * from istester where id like "%1%" order by id desc;
查找istester表,id包含“1”的数据,取id最大的三个:
select * from istester where id like "%1%" order by id desc limit 3;
找出idoxu表中,分数最高的同学和分数:
select c_name,grade from idoxu order by grade desc limit 1;
select c_name,grade from idoxu where grade in (select max(grade) from idoxu));
找出idoxu表中,分数最低的同学和分数:
select c_name,grade from idoxu order by grade asc limit 1;
select c_name,grade from idoxu where grade in (select min(grade) from idoxu));
找出istester表,sex为空的数据:
select * from istester where sex is null;
找出idoxu表,grade小于60分的同学:
select * from idoxu where grade<60;
查找istester表,按id降序:
select * from istester order by id desc;
查找idoxu表,按grade升序:
select * from idoxu order by grade asc;
查询istester表,有多少条数据:
select count(*) from istester;
查询istester表,有几种性别类型(sex字段,去重)
select distinct(sex) from istester;
select count(distinct(sex)) from istester;
查找idoxu表,学生成绩(grade)总分;
select sum(grade) from idoxu;
查找idoxu表,学生成绩(grade)平均分;
select avg(grade) from idoxu;
查找idoxu表,成绩在80-100区间的学生:
select * from idoxu where grade >=80 and grade <=100;
select * from idoxu where grade between 80 and 100;
查找istester表,id为2,11,12的数据:
select * from istester where id in (2,11,12);
17.更新istester表,把sex为空的,设置为0(性别未知)
update istester set sex = 0 where sex is null;
更新idoxu表,把grade小于60分的同学,一律改为59分:
update idoxu set grade = 59 where grade < 60;
18.删除istester表,id大于12的数据:
delete from istester where id >12;
删除idoxu 表,分数grade不及格(小于60分)的数据:
delete from idoxu where grade <60;
19.造数据,把istester表的所有数据,插入到idoxu表,字段关系:id取id,stu_id取id,c_name取uname,istester和grade字段,给默认值60:
insert into idoxu (id,stu_id,c_name,istester,grade) select id,id,uname,60,60 from istester;
20.修改表idoxu,把字段istester,改为istester6(字符类型varchar,长度160):
alter table idoxu CHANGE istester istester6 VARCHAR(160);
检查是否修改成功:
desc idoxu;
把idoxu表,改名为idoxu6:
alter table idoxu rename to idoxu6;
检查是否修改成功:
show tables;
21.创建数据库istesterdb6:
create database istesterdb6;
检查数据库是否创建成功:
show databases;
进入istesterdb6库:
use istesterdb6;
查看当前正在使用的数据库:
select database();
在数据库istesterdb6,创建idoxu表,直接拷贝istester库idoxu6表的数据和结构;:
create table idoxu as select * from istester.idoxu6;
检查表是否创建成功:
show tables;
select * from idoxu
idoxu表,分数grade:
排名前三的学生和分数:
select c_name ,grade from idoxu order by grade desc limit 3;
排名3-6名的学生和分数:
select c_name,grade from idoxu order by grade desc limit 2,4;
排名6名以后的所有学生和分数;
select c_name,grade from idoxu order by grade desc limit 5,9999;
22.多表查询(左连接,右连接,内连接)看区别;有两张表:idoxu6和istester表:
select * from idoxu6 left join istester on idoxu6.id = istester.id;
select * from idoxu6 right join istester on idoxu6.id = istester.id;
select * from idoxu6 inner join istester on idoxu6.id = istester.id;
内连接是只有符合条件的才显示;
左连接 left join左边的表是全部数据,右边的只有符合条件的才有数据;
右连接 right join 右边的表数据全,左边的符合条件的有数据;
23.把表idoxu6,改为idoxu:
alter table idoxu6 rename to idoxu;
删除库 istesterdb6:
drop database istester6db;
删除istester表:
drop table istester;
清空idoxu表的数据:
delete from idoxu;