数据的查询

 

-- 求出java的平均分
SELECT AVG(java) AS'平均分' FROM stu;

INSERT INTO bookcategory(category_id,category,parent_id) VALUES(1,'计算机',0);//指定插入的顺序
INSERT INTO bookcategory VALUES(1,'计算机',0);//按照默认的插入
INSERT INTO bookcategory(category_id,category,parent_id) VALUES(1,'计算机',0),(2,'xxx',3)(3,'xxxxx',4);//同时插入多条数据
INSERT INTO bookcategory SELECT * FROM test WHERE id>5//将查询结果插入表中
CREATE TABLE TEXT(
category_id INT PRIMARY KEY AUTO_INCREMENT,
parent_id INT NOT NULL
)AUTO_INCREMENT=5; //auto_increment让这一列自动设置编号,默认初始值为,最后为设置初始值为5
ALTER TABLE bookcategory MODIFY category_id INT AUTO_INCREMENT=X//为已有表添加自增列
ALTER TABLE bookcategory MODIFY category_id INT;//去掉自增列
//有外键关系的话添加自增,要先去掉外键关系。
ALTER TABLE bookinfo DROP FOREIGN KEY fk_bcid//去掉外键
ALTER TABLE bookinfo ADD CONSTRAINT fk_bcid FOREIGN KEY(bookcdategory_id) REFERENCES bookcategory(category_id);//添加外键
SELECT price FROM bookinfo WHERE book_id=201501;//查询book_id为201501书的价格
SELECT * FROM readerinfo//查看读者信息表
SELECT xxx,xxx,xxx FROM readerinfo//查询指定列
SELECT xxx,xxx,xxx FROM readerinfo WHERE press='机械工业'//设置外加条件的查询
SELECT DISTINCT press FROM bookinfo;//显示不重复的查询
SELECT * FROM readerinfo WHERE age IS NULL;//查询为空的列
UPDATE readerinfo SET balance =balance -18.9*0.05 WHERE card_id='xxxxxxxx'//更新readerinfo这个表中的card_id为xxx的balance
DELETE FROM readerinfo WHERE card_id='201531513133'//单表数据记录的删除,不加where则为全部删除
TRUNCATE TABLE readerinfo;//删除原表再创建空表
SELECT COUNT(*) FROM readerinfo WHERE sex='男'//对查询结果的分组
SELECT sex FROM readerinfo GROUP BY sex;//查询有多少种性别
SELECT sex COUNT(*) FROM readerinfo GROUP BY sex;//统计每种性别的人数
SELECT sex FROM readerinfo GROUP BY sex WHERE COUNT(sex)>3;//也可以加限制条件。统计每种性别的人数
SELECT * FROM bookinfo ORDER BY price//对查询结果排序,默认为升序
SELECT * FROM bookinfo ORDER BY price,store;//price相同的,按照库存排序
SELECT * FROM bookinfo ORDER BY price ASC,store DESC;//asc升序,desc降序
SELECT * FROM bookinfo LIMIT 3;//limit限制查询数量,偏移量为0开始,显示前三行
SELECT * FROM bookinfo LIMIT 2,2;//显示第二条语句的后两个语句
SELECT store,COUNT(*) FROM bookinfo GROUP BY store ORDER BY store DESC LIMIT 4;//统计库存个数,并降序排序,并查看前四条语句

-- 3.查询的时候增常量列
SELECT id,NAME,sex,address, 'java2版' FROM stu;
-- 4.查询的时候起一个别名
SELECT id AS '编号' ,NAME AS'姓名',sex AS '姓别','java1版' AS '班级' FROM stu;

 

INSERT INTO stu3 (NAME)VALUES('小黄');

INSERT INTO bookcategory(category_id,category,parent_id) VALUES(1,'计算机',0);//指定插入的顺序


INSERT INTO bookcategory VALUES(1,'计算机',0);//按照默认的插入


INSERT INTO bookcategory(category_id,category,parent_id) VALUES(1,'计算机',0),(2,'xxx',3)(3,'xxxxx',4);//同时插入多条数据


INSERT INTO bookcategory SELECT * FROM test WHERE id>5//将查询结果插入表中


CREATE TABLE TEXT(

    category_id INT PRIMARY KEY AUTO_INCREMENT,

    parent_id INT NOT NULL

)AUTO_INCREMENT=5;    //auto_increment让这一列自动设置编号,默认初始值为,最后为设置初始值为5



ALTER TABLE bookcategory MODIFY category_id INT AUTO_INCREMENT=X//为已有表添加自增列



ALTER TABLE bookcategory MODIFY category_id INT;//去掉自增列


//有外键关系的话添加自增,要先去掉外键关系。


ALTER TABLE bookinfo DROP FOREIGN KEY fk_bcid//去掉外键


ALTER TABLE bookinfo ADD CONSTRAINT fk_bcid FOREIGN KEY(bookcdategory_id) REFERENCES bookcategory(category_id);//添加外键


SELECT price FROM bookinfo WHERE book_id=201501;//查询book_id为201501书的价格


SELECT * FROM readerinfo//查看读者信息表


SELECT xxx,xxx,xxx FROM readerinfo//查询指定列


SELECT xxx,xxx,xxx FROM readerinfo WHERE press='机械工业'//设置外加条件的查询


SELECT DISTINCT press FROM bookinfo;//显示不重复的查询


SELECT * FROM readerinfo WHERE age IS NULL;//查询为空的列


UPDATE readerinfo SET balance =balance -18.9*0.05 WHERE card_id='xxxxxxxx'//更新readerinfo这个表中的card_id为xxx的balance


DELETE FROM readerinfo WHERE card_id='201531513133'//单表数据记录的删除,不加where则为全部删除


TRUNCATE TABLE readerinfo;//删除原表再创建空表


SELECT COUNT(*) FROM readerinfo WHERE sex='男'//对查询结果的分组


SELECT sex FROM readerinfo GROUP BY sex;//查询有多少种性别


SELECT sex COUNT(*) FROM readerinfo GROUP BY sex;//统计每种性别的人数


SELECT sex FROM readerinfo GROUP BY sex WHERE COUNT(sex)>3;//也可以加限制条件。统计每种性别的人数


SELECT     * FROM bookinfo ORDER BY price//对查询结果排序,默认为升序


SELECT     * FROM bookinfo ORDER BY price,store;//price相同的,按照库存排序


SELECT * FROM bookinfo ORDER BY price ASC,store DESC;//asc升序,desc降序


SELECT * FROM bookinfo LIMIT 3;//limit限制查询数量,偏移量为0开始,显示前三行


SELECT * FROM bookinfo LIMIT 2,2;//显示第二条语句的后两个语句


SELECT store,COUNT(*) FROM bookinfo GROUP BY store ORDER BY store DESC LIMIT 4;//统计库存个数,并降序排序,并查看前四条语句

-- 10 排序查询
-- order by
-- asc 正序 升序
-- desc 倒序
-- 默认的情况下时按照数据插入的顺序来进行查询的

 

-- 判空查询 is null not null =”“ 《》”“

-- 自增长
-- 字段不用进行赋值 可以自动的增加 每次增加1

SELECT * FROM stu WHERE NAME LIKE '小_';
-- 8 聚合查询 (使用聚合函数的查询)
-- 常用的函数 sum() avg() max() min() count()

-- 查询学生的性别 男 女
SELECT DISTINCT sex FROM stu;

-- 查询姓名为 ‘小’学生信息
SELECT * FROM stu WHERE NAME LIKE '小%';
-- 查询姓名为'小 '且小的后面只有一个字符

INSERT INTO stu (id,NAME,sex,age,address,java,jsp) VALUES(1,'小明','男',25,'山东2',78,99);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp) VALUES(2,'小黄','男',23,'河南',65,55);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp) VALUES(2,'小黄','女',23,'太远',65,55);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp) VALUES(4,'小黄','女',23,'太远',45,85);
INSERT INTO stu (id,NAME,sex,age,address,java,jsp) VALUES(NULL,NULL,'',23,'太远',45,85);

-- 查询第三页
SELECT * FROM stu LIMIT 4,2;
-- 查询第四页
SELECT * FROM stu LIMIT 6,2

-- 主键
-- 非空+唯一性
-- 通常情况下 每一张表都会设置一个字段 为主键 用来表示表的每条记录都唯一的
CREATE TABLE stu2(
id INT PRIMARY KEY,-- 主键
NAME VARCHAR(20));

-- 查询1.2 条记录 一页显示两条记录
-- 查询的是第一页数据
SELECT * FROM stu LIMIT 0,2

SELECT * FROM stu3

-- 查询所有的java成绩大于65的是、学生信息

CREATE TABLE stu3(
id INT PRIMARY KEY AUTO_INCREMENT, -- 自增长 从0开始
NAME VARCHAR(10)
)

SELECT id,NAME,sex,age,address, (java+jsp) AS '总成绩' FROM stu;
-- 在合并的时候 合并的只能进行数字类型
SELECT id ,NAME,sex ,(address+sex) AS '总' FROM stu;
-- 6 查询时去除重复的记录

-- 求出最高分
SELECT MAX(java) AS '最高分' FROM stu;
-- 统计出一共有多少条记录 cont(字段) 不包括null元素
SELECT COUNT(*) FROM stu;

DROP TABLE stu3;

-- 女 2
-- ”“ 2
SELECT sex,COUNT(*) FROM stu GROUP BY sex;
-- 12 分组之后 进行刷选

-- 需求 查询 id 为 1 并且性别为男 信息
SELECT id,NAME,sex,address,java,age FROM stu WHERE id=1 AND sex='男';
-- 比较条件 > < >= <= =(等于) <>(不等于) between ...and... 等价于 》= and <=)

-- 创建数据
CREATE DATABASE day2;
-- 使用数据库
USE day2;
-- 创建一个表格
CREATE TABLE stu(
id INT,
NAME VARCHAR(20),
sex VARCHAR(2),
age INT ,
address VARCHAR(30)
);

SELECT * FROM stu ORDER BY java ASC ,jsp DESC;

SELECT * FROM stu WHERE java>=65;
-- 查询java成绩大于等于65 并且小于等于75

SELECT * FROM stu LIMIT 2,2

-- 模糊查询

SELECT * FROM stu ORDER BY java ASC;
-- 需求 jsp的成绩重高到低进行排序

本文由金沙官网线上发布于数据库,转载请注明出处:数据的查询

您可能还会对下面的文章感兴趣: