DDL,DML,DQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DDL,DML,DQL相关的知识,希望对你有一定的参考价值。
--DML操作:DML操作是对表中的数据进行增、删、改的操作.不要与DDL混淆了(INSERT、UPDATE、DELETE
---在mysql操作中字符串和日期都要用单引号,空值为null;
--增加
insert into t_class (class_no,class_name)VALUES(1004,"二年三班");
--删除
DELETE from t_subject where SUBJECT_no=‘B01‘;
select *from t_subject;
INSERT into t_subject values (‘B001‘,"mysql");;
--更新
update t_subject set SUBJECT_no="B01" where SUBJECT_no="B001";
select *from t_subject;
--DQl操作:数据库执行DQL语句不会对数据进行改动,而是hi数据库发送结果给客户端
---查询返回的结果是一张虚拟表
__查询关键字:SELECT
--1:基础查询
--1.1:查询所有列
select *from t_class;
--1.2:查询指定列
select class_no,class_name from t_class;
--2:条件查询:条件查询就是在查询时where后面给出查询条件
--2.1:查询指定列(查询class_no为1006的时候class_name的值)
select class_name from t_class where class_no=1006; --当要查询的字符串条件值为数值时可以省略引号
--3:模糊查询:当只知道查询结果的一部分时
---通配符:
----任意一个字母用:-;
---- 任意0~n个字母用:%;
--3.1.1查询姓名中含有字母a的学生的信息:
select *from t_student where stu_name like ‘%a%‘;
--3.1.2查询姓名中第二个字母是h的学生的信息
select *from t_student where stu_name like ‘_h%‘;
--3.2:字符段的控制查询
--3.2.1:去除重复记录
select *from t_subject
--distinct
select distinct subject_no from t_subject;
---3.4排序
select * from t_student order by stu_no ASC--升序
select *from t_student order by stu_no desc --降序
--3.5聚合函数
--count():指定列不为bull的记录行数
select count(stu_no) from t_student;
max():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
select max(score) from t_score ;
select max(subject_no) from t_score;
min :计算指定列的最小值
select min(score) from t_score;
--sum():计算指定列的数值和,如果指定类型不是数值类型.那么计算结果为0
select sum(score) from t_score;
select sum(subject_no) from t_subject;--结果为0;
avg():计算指定列的平均值,如果指定列类型不是数值类型,那么计算 结果为0;
select avg(score) from t_score;
select avg(subject_no) from t_subject;--结果为0;
--3.6:分组查询
--注:凡和聚合函数同时出现的列名,则一定要写在group by 之后;
--查询学生的编号,和学生成绩之和
select stu_no, sum(score) from t_score group by stu_no;
--注:having 和where 的区别:
1:having 是在分组后的对数据进行过滤;
where 是在分组前对数据进行过滤
2 :having 后面可以使用分组函数(既统计函数);
where 后面不可以使用分组函数;
where 是对分组前记录的调件,如果某行记录没有满足where 的条件,那么这条记录不会参加分组
having 是对分组后的数据的约束;
--3.7
LIMIT分页
LIMIT用来限定查询结果的起始行,以及总行数
select *from t_score limit 0,2;--起始行从0开始,既第一行开始!
select *from t_score limit 2,2;查询两行记录,起始行从第三行开始
insert into t_score values(88,2017001,‘B01‘,4);
select *from t_score
分页查询:
查询语句书写顺序:select-from -where group by -having -order by-limit;
查询语句执行顺序:from-where_group by-having-select-order by-limit;
4:DDL操作:使用的关键字:CREATE,ALTER,DROP
4.1:操作数据库
创建
create database lihangdb1;
create database lihangdb1 character set UTF8;--设置字符集,默认utf-8
查询
查看当前数据服务器中的所有数据库
show databases;--资料库,数据库
查看创建的lihangdb1数据库的定义信息
show create database lihangdb1;
删除前面创建的lihangdb1数据库
drop database lihangdb1
查看当前使用的数据库;
select database();
切换数据库
use db_student;
当前数据库中的所有表
show TABLES;
查看表的字段信息
desc t_student;
在上面的学生表再加一个age 列
alter table t_student add age blob;
alter table t_student add age DOUBLE;--后面列跟创建列的类型
查看表格的创建细节
show create table t_student
删除 age列
alter table t_student drop age;
--查询
select *from t_student;
以上是关于DDL,DML,DQL的主要内容,如果未能解决你的问题,请参考以下文章