MySQL数据库查询语句总结和数据库基本操作

数据库查询语句:
– 修改学生主键是1的学生性别
UPDATE student set sex=‘男’ WHERE stuid=1
– 删除所有男学生
DELETE FROM student WHERE sex=‘男’
– 删除student表中的所有数据
DELETE FROM student

– 查询(DQL语句)
– 查询班级表中的所有班级所有字段信息
SELECT * from classinfo;
– 查询所有班级名和班级人数
SELECT cName,stuCount from classinfo
– 查询6班的学生信息
SELECT * from student WHERE cid=6
– 查询所有女生姓名和生日,并且按照由小到大的年龄排序
– ORDER BY 属性名2[ASC|DESC] ASC:升序 默认升序 DESC:降序
– datatime类型比较大小的时候转成数值比较
SELECT name,birthday from student WHERE sex=‘女’
ORDER BY birthday DESC
– 查询姓于的学生(模糊查询)信息,并按照电话号码进行升序排列
– LIKE关键字可以匹配字符串是否相等 [NOT] LIKE ‘字符串’
– 通配字符。 “%”可以代表任意长度的字符串,长度可以为0。
– “_”只能表示单个字符。
– VARCHAR类型的排序单个字符比较大小
SELECT * from student WHERE name LIKE ‘于%’ ORDER BY phone
– 查询名字中带有’谦’这个字的男性
SELECT * from student WHERE name like ‘%谦%’ AND sex =‘男’
– 查询6班和7班的学生
SELECT * from student WHERE cid=6 or cid = 7
– 如果多个限制条件是对同一个字段进行等于限制的,
– 可以换写下边的方式。
– [NOT] IN(元素1,元素2,…,元素n)
SELECT * from student WHERE cid in(6,7)
– 查询不在6班和7班的学生信息
SELECT * from student WHERE cid !=6 and cid !=7
SELECT * from student WHERE cid not in(6,7)
– 查找生日在‘2016-01-01’到’2018-12-31’之间的学生信息
select * from student
WHERE birthday >‘2016-01-01’ and birthday <‘2018-12-31’
– 如果两个限制条件是对同一个字段进行大小的限制的,可以换用
– BETWEEN AND关键字可以判断某个字段的值是否在指定的范围内
– [NOT] BETWEEN 取值1 AND 取值2
select * from student
WHERE birthday BETWEEN ‘2016-01-01’ AND ‘2018-12-31’
– 查找6班中年龄第大二的学生
– 使用LIMIT限制查询结果的数量
– LIMIT [初始位置],记录数 初始位置从0开始
select * from student WHERE cid = 6
ORDER BY birthday LIMIT 1,1
– 查询电话号码(不)为空的学生
select * from student WHERE phone is NOT null

– 得到科目1的学生总成绩(求和)
SELECT SUM(score) from score WHERE subid = 1
– 得到有科目1的学生总数(计数)
SELECT COUNT(stuid) 学生总数 from score WHERE subid = 1
– 得到学生11一共有几门成绩(计数)
SELECT COUNT(subid) 科目数 from score WHERE stuid=11
– 得到学生11的总成绩(求和)
select SUM(score) from score WHERE stuid=11
– 得到学生11的平均成绩
select AVG(score) 平均成绩 from score WHERE stuid=11
– 得到学生11的最高成绩和最低成绩
select MAX(score) 最高成绩,MIN(score) 最低成绩 from score
WHERE stuid=11
– 得到每个科目的平均成绩
– GROUP BY <字段列表> 分组
select subid 科目号,AVG(score) 平均成绩 from score
GROUP BY subid

– 从成绩表中得到所有的科目
– 去重 DISTINCT
SELECT DISTINCT subid from score

– 得到每个学生的总成绩
select stuid,SUM(score) from score GROUP BY stuid

– 得到平均成绩大于60的科目号和成绩

– 1.得到每个科目的平均成绩
– 2.从步骤1的结果中挑选成绩大于60的科目

– GROUP BY属性名1[HAVING 条件表达式2]]
select subid 科目号,AVG(score) 平均成绩 from score
GROUP BY subid
HAVING AVG(score) > 60

– 得到学生总成绩小于100的学生和成绩
– 1.得到每个学生总成绩
– 2.分组之后的总成绩条件筛选
select stuid,SUM(score) sumScore from score
GROUP BY stuid
HAVING sumScore < 100

数据库基本操作:
新建数据库:CREATE DATABASE 数据库名;
查看数据库的定义:SHOW CREATE DATABASE 数据库名;
查看存在的数据库:SHOW DATABASES;
删除数据库:DROP DATABASE 数据库名;
查看支持的引擎:SHOW ENGINES;
修改存储引擎:ALTER TABLE 表名 ENGINE=新存储引擎;

创建表的数据库:USE 数据库名;
查看数据表:SHOW TABLES;
查看表结构:DESC 表名;
新建数据表:CREATE TABLE 表名
(
字段名1 数据类型 [列级别约束条件] [默认值],
字段名2 数据类型 [列级别约束条件] [默认值],
字段名3 数据类型 [列级别约束条件] [默认值]
……
[表级别约束条件(可加多个字段用“,”隔开)]
);
删除数据表: DROP TABLE 表名; (先删除外键约束,再删除数据表)
删除表中数据:DELETE FROM 表名;
修改数据表名:ALTER TABLE 表名 RENAME 新表名;
查看数据表基本结构:DESCRIBE 表名;
查看数据表详细结构:SHOW CREATE TABLE <表名\G>;

创建外键约束:CONSTRAINT 外键约束名称 FOREIGN KEY(外键名) REFERENCES 建立连接的朱标的某个字段;
删除外键约束:ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;
非空约束:字段名 数据类型 NOT NULL;
唯一约束:字段名 数据类型 UNIQUE;
默认约束:字段名 数据类型 DEFAULT;
属性自增:字段名 数据类型 AUTO_INCREMENT;
增加主键:ALTER TABLE 表名 ADD PRIMARY KEY (id);
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY ;
修改字段位置:ALTER TABLE 表名 MODIFY 字段名 (数据类型) AFTER 字段名;
修改字段数据类型:ALTER TABLE 表名 MODIFY 字段名 数据类型 ;
修改字段名:ALTER TABLE 表名 CHANGE 字段名 新字段名 新数据类型;
增加字段:ALTER TABLE 表名 ADD 增加字段名 数据类型;
第一行增加字段:ALTER TABLE 表名 ADD 增加字段名 数据类型 FIRST;
指定列之后添加字段:ALTER TABLE 表名 ADD 增加字段名 数据类型 AFTER 列名;
删除字段:ALTER TABLE 表名 DROP 字段名;
查看警告、错误信息:SHOW WARNINGS;
查看结果:SELECT * FROM 表名;
插入数据:INSERT INTO 表名 values
(数据,数据,数据,数据,数据,数据),
(数据,数据,数据,数据,数据,数据),
(数据,数据,数据,数据,数据,数据),
(数据,数据,数据,数据,数据,数据);

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值