sql

//创建一个库

CREATE DATABASE zy1

use zy1

// 创建一个班级表(classes),包含字段id,name

CREATE TABLE classs(

id INT PRIMARY KEY auto_increment,

cname VARCHAR(20)

)

//创建一个学生表(students),包含字段id,name,birthday,gender,score,class_id

CREATE TABLE students(

id INT PRIMARY KEY auto_increment,

sname VARCHAR(10),

birthday date,

gender VARCHAR(20),

score INT,

class_id INT

)

//在班级表中添加三条记录 id:1 name:一年级,id:2 name:二年级,id:3 name:三年级

INSERT into classs(cname)

VALUES("一年级"),

        ("二年级"),

        ("三年级")

//4 在员工表里添加六条记录,

INSERT into students(sname,birthday,gender,score,class_id)

VALUES('张三','2010-11-10','男','100','1'),

      ('李四','2012-11-10','女','75','1'),

      ('王五','2014-11-10','男','80','2'),

      ('小明','2013-11-10','女','60','2'),

      ('小李','2015-11-10','女','30','3'),

      ('小刘','2008-11-10','男','90','3')


//5 使用pymysql模块来查询每个班级的平均分

select AVG(s.score),c.cname

FROM students s ,class c

WHERE s.class_id=c.id

GROUP BY s.class_id

//修改张三的名字为张五

UPDATE students  SET sname="张五" WHERE sname="张三"

//删除班级名字为”三年级”的所有学生

delete FROM students WHERE class_id="3"

//查询一年级分数最高的人

SELECT s.sname,MAX(s.score) as "最高成绩"

FROM students s

WHERE s.class_id=1

//查询所有学生的年级信息(用子查询实现)

select c.cname,s.sname

from class c,students s

WHERE s.class_id=c.id

//查询以‘小’开头的名字为一个字学生

SELECT * FROM students where sname like '小_'

//查询出生日期在2008-11-10到2012-11-10的学生

SELECT s.sname,s.birthday

from students s

where s.birthday>'2008-11-10' and s.birthday<'2012-11-10'

//创建一个分类表(cate),包含字段id,name

CREATE TABLE cate(

id INT PRIMARY KEY auto_increment,

cname VARCHAR(20)

)

//创建一个库

CREATE DATABASE zy2

use zy2

//创建一个商品表(goods),包含字段id,name,number,create_time,price,cate_id

CREATE TABLE goods(

id INT PRIMARY KEY auto_increment,

gname VARCHAR(10),

number INT,

create_time date,

price DOUBLE,

cate_id INT

)

//在分类表中添加三条记录 id:1 name:服装,id:2 name:玩具,id:3 name:家电

INSERT into cate(cname)

VALUES("服装"),

        ("玩具"),

        ("家电")

//在商品表里添加六条记录

INSERT into goods(gname,create_time,number,price,cate_id)

VALUES('羽绒服','2010-11-10','10','1.00','1'),

      ('轻便服','2012-11-10','30','2.00','1'),

      ('汽车','2014-11-10','40','2.00','2'),

      ('公主','2013-11-10','50','6.00','2'),

      ('橡皮泥','2015-11-10','23','3.50','2'),

      ('电饭煲','2008-11-10','3','3.00','3')


//使用pymysql模块来查询所有的分类及商品

select * from goods g LEFT JOIN cate c ON g.cate_id=c.id

//把名字为‘羽绒服’修改成‘棉衣’

UPDATE goods  SET gname="棉衣" WHERE gname="羽绒服"

//删除名字为‘电饭煲’的记录

delete FROM goods WHERE gname="电饭煲"

//查询‘服装’分类下面库存最多的商品信息

SELECT g.gname,MAX(g.number) as "库存最多"

FROM goods g,cate c

WHERE c.cname="服装"

//查询分类下有商品分类信息

select c.cname,g.gname

from cate c,goods g

WHERE c.id=g.cate_id

//查询以‘服’结束的商品信息

SELECT * FROM goods where gname like '%服'

//查询创建日期在2008-11-10到2012-11-10的之间的商品

SELECT g.gname,g.create_time

from goods g

where g.create_time>'2008-11-10' and g.create_time<'2012-11-10'

//创建一个数据库 cart

CREATE DATABASE cart;

//使用新创建的数据库,在数据库下建立两张表

//用户表(users): id  姓名 身高

//购物车表(user_cart):id 商品名称  购买数量  总价  是否删除  用户id

//创建一个分类表(cate),包含字段id,name

CREATE TABLE users(

id INT PRIMARY KEY auto_increment,

uname VARCHAR(20),

height DOUBLE

)

CREATE TABLE user_cart(

id INT PRIMARY KEY auto_increment,

cname VARCHAR(20),

number INT,

price DOUBLE,

deleteu int,

uid INT

)

INSERT into users(uname,height)

VALUES("张三","1.80"),

        ("李四","1.75"),

        ("小明","1.34")

//在购物车表中加入以下记录(1代表未删除,0代表删除)

INSERT into user_cart(cname,number,price,deleteu,uid)

VALUES("商品一",10,100,1,1),

("商品二",3,89,0,1),

("商品三",2,30,1,1),

("商品四",10,50,1,2),

("商品五",3,10,1,2),

("商品六",1,76,1,2)

//7.更新李四的购物车中 商品五的名字为商品5 

UPDATE user_cart SET cname="商品5" WHERE cname="商品五"

//8.查询身高大于1米并且购物车没删除的用户和购物车信息

select * from users u right JOIN user_cart c ON c.uid=u.id WHERE u.height>1 AND c.deleteu=1

//9.查询购物车中删除和没删除的总价和为多少

SELECT sum(price) FROM user_cart

//10.查询每个用户没删除的购物车的数量大于1的记录,并按降序排列,取三条记录

SELECT * FROM user_cart c

WHERE c.deleteu=1 AND number>1

ORDER BY number DESC LIMIT 0,3

//11.按是否删除分组,查询平均总价格大于10的用户和购物车信息

SELECT * FROM user_cart c

GROUP BY deleteu

HAVING sum(c.price)/count(*)>10

//12.查询有购物车的用户和购物车信息

select * from users u right JOIN user_cart c ON c.uid=u.id WHERE c.deleteu=1

//13.删除张三购物车中已删除的购物车信息

delete FROM user_cart c, users u WHERE c.deleteu=0 AND u.uname="张三"


1.创建test数据库

create database test (A)

use test

2.在test数据库中创建student表id设置为主键自增长

create table student(

id int primary key auto_increment,

name varchar(20),

score int,

address varchar(50),

usermail varchar(20)

)

3.向student表中添加记录

insert into student(id,name,score,address,usermail)

    values(1,'张三',98,'北京','111111111@qq.com'),

  (2,'李四',88,'上海','111111112@qq.com'),

  (3,'王五',78,'广州','111111113@qq.com'),

  (4,'赵六',68,'深圳','111111114@qq.com'),

  (5,'孙七',58,'杭州','111111115@qq.com'),

  (6,'小红',48,'北京','111111116@qq.com'),

  (7,'小黑',99,'上海','111111117@qq.com'),

  (8,'小绿',100,'杭州','111111118@qq.com'),

  (9,'小粉',60,'杭州','111111119@qq.com'),

  (10,'小紫',70,'黑龙江','111111110@qq.com')

4.使用sql语句查询出表中的所有内容

select * from student

5.使用sql语句查询出表中所有同学的id,name,score

select id,name,score from student

6.更改useremail字段的数据类型为varchar(50)

alter table student modify usermail varchar(50)

7.向表中添加一个字段,字段名称为“pingjia”,字段类型为varchar(20)

alter table student add pingjia varchar(20)

8.更改姓名是张三的同学的分数为88

update student set score='88' where name=‘张三’

9.如果80分为及格线,查询出所有及格的同学的详细信息

select * from student where score>=80

10.把姓名是“小红”的同学的分数在原来的基础上+40

update student set score=score+40 where name='小红'

11.使用关键字in,查询id值是1或5或7的同学的基本信息

select * from student where id in(1,5,7)

12.查询id值在5至8的所有同学的基本信息

select * from student id where id>=5 and id<=8

13.查询姓名是小红并且分数大于60的同学的基本信息

select * from student where name='小红' and score>60

14.查询姓名是小红或者分数大于90的同学的基本信息

select * from student where name='小红' or score>90

15.查询score字段值是NULL的同学的基本信息

select * from student where score='null'

16.查询score字段值不是NULL的同学的id和name

select id,name from student where score is not null

----------------------------------------------------------------------------------------------

1创建一个学校数据库(jiyun) (B)

create database jiyun

2创建课程(lesson)id(整形主键)name(课程名称)

create table lesson(

id int primary key auto_increment,

name varchar(50)

)

3创建一个班级(cls),包含字段id(整形主键)name(班级名称)number(班级人数)lesson_id(课程名称id)

CREATE TABLE cls (

id int primary key auto_increment,

name varchar(50),

number varchar(50),

lesson_id varchar(50)

)

4在lesson表中插入两数据

insert into lesson(name)VALUES

('python高级'),

('数据库vue')

5在班级表中插入6条记录

insert into cls(name,number,lesson_id)values

  ('1905A','22','1'),

  ('1906A','44','1'),

  ('1904A','33','1'),

  ('1901A','18','2'),

  ('1902A','48','2'),

  ('1903A','56','2')

6.查询类型为 'python高级' 的所有班级、人员数量

select * from cls where lesson_id in(select id from lesson where name='python高级')

7.查询每个班级中 人数最多、最少

select max(number) as '人数最多',min(number) as'人数最少' from cls

8.查询所有人员数量大于平均人数的班级,并且按班级人数降序排序

select * from cls where number < (select avg(number) from cls) order by number desc

9.修改cls表中'1902A'班级数量为44

update cls set number='44' where name='1902A'


----------------------------------------------------------------------------------------

1.创建数据库  (C)

create database db_test

use db_test

2.在test数据库中创建yuangong表

create table yuangong(

sid int primary key auto_increment,

sname varchar(20) not null,

sex varchar(4) deeault '男',

job varchar(20)not null,

birthday date,

salary decimal,

comm decimal,

widthhold int

)

4.表中添加如下记录

insert into yuangong (sid,sname,sex,job,birthday,salary,comm,widthhold)values

(1001,'张三','男','高级程师','1975-1-1',2200,1100,200),

(1002,'李四','女','助工','1985-1-1',1200,200,100),

(1003,'王五','男','工程师','1978-11-11',1900,700,200),

(1004,'赵六','男','工程师','1979-1-1',1960,700,150)

4.修改表名为emp

alter table yuangong RENAME emp

5.向表中添加字段Hobby,设置类型为varchar(50),设置唯一约束

alter table emp add hobby varchar(50) unique

6.使用desc语句查看表结构

show create table emp

7.向表中添加记录,字段对应值分别为(1005,林青霞,女,架构师,1969-12-12,8000,NULL,100,阅读)

insert into emp values(1005,'林青霞','女','架构师','1969-12-12',8000,null,100,'阅读')

8.修改sname字段的类型为varchar(20)

alter table emp modify sname VARCHAR(20)

9.查询表中sid字段的值从是1002或1003或1005员工的所有记录

select * from emp where sid = 1002 OR sid = 1003 OR sid = 1005

10.修改表中job值是高级工程师员工的job为“架构师”

update emp set job='架构师' where job='高级程师'

11.删除表中sid是1003并且job是王五的员工的记录

delete from emp where sid = 1003 and job = '王五'

12.修改表中姓名是1004员工的salary在原来的基础上-300

update emp set salary = salary - 300 where sid = 1004


----------------------------------------------------------------------------------------------

1.创建库  (D)

create database databook

2.自定义类Book,表名为book

use databook

create table book(

id int primary key auto_increment,

bookname varchar(10),

price int,

author varchar(20),

publish varchar(20)

)

2.向表里添加10条数据

insert into book(bookname,price,author,publish) values

    ('北平无故事',25,'刘和平','作家出版社'),

    ('人间失格',16,'太宰治著','作家出版社'),

    ('高兴',14,'贾平凹','人民出版社'),

    ('源氏物语',57,'刘和平','人民出版社'),

    ('卡夫卡文集',9,'卡夫卡','邮电出版社'),

    ('大家',12,'王蒙','邮电出版社'),

    ('拉片子',37,'杨健','清华出版社'),

    ('古代散文',5,'归有光','安徽出版社'),

    ('百花散文',6,'孙虹选','百花文艺出版社'),

    ('方令孺散文集',5,'方令孺','安徽文艺')


3.查询所有图书的信息,并按价格降序显示

select * from book where price order by price asc

4.查询所有作家出版社的图书信息,并按价格降序显示

select author from book where price order by price desc

5.查询出所有刘和平的图书信息 ,并输出

select * from book where author = '刘和平'

6.删除ID是2的记录,如果没有相关记录则提示

delete from book where id = 2 select * from book

7.将所有价格不足10元的图书调到10元,并查看信息

update book set price = 10 where price <10

8.查看所有图书的价格情况,并升序显示

select price from book where price order by price asc

9.查看所有价格低于20元的图收信息

select publish from book where price <=20

10.所有图书的价格上调20%,并查看信息

select * from book

update book set price = price*1.2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • --1.创建classes表 CREATE TABLE classes( id INT, name VARCHAR...
    zesvzfv阅读 177评论 0 0
  • -- 创建一个班级表(classes),包含字段id,name CREATE TABLE classes( id...
    7fae9f0f608d阅读 297评论 0 0
  • -- 创建一个班级表(classes),包含字段id,name CREATE TABLE class( id I...
    gaoaoaoao阅读 333评论 0 0
  • 员工 -- 2. 在test数据库中创建yuangong表,表中添加如下记录,表 CREATE TABLE yua...
    gaoaoaoao阅读 209评论 0 0
  • 2.在test数据库中创建student表,表结构如下图所示(id设置为主键自增长) CREATE TABLE s...
    2640a8321f43阅读 515评论 0 0