zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    winfrom 获取当前系统时间
    netcore3.1API+efcore快速搭建
    php
    php
    php
    php-array的相关函数使用
    php-正则表达式
    vim的复制与粘贴
    vim的多窗口和文件切换操作
    laravel教程中出现500问题
  • 原文地址:https://www.cnblogs.com/lihang2017-3-19/p/6846584.html
Copyright © 2011-2022 走看看