• 廖雪峰Java15JDBC编程-2SQL入门-2insert/select/update/delete


    1. INSERT用于向数据库的表中插入1条记录

    insert into 表名 (字段1,字段2,...) values (数据1,数据2,数据3...)
    

    示例

    -- 如果表存在,就删除
    drop table if exists classes;
    show tables;
    create table classes (id BIGINT not null auto_increment,
    	name varchar(10) not null,PRIMARY KEY(id)) default charset=utf8;
    
    select * from classes;
    -- 插入全部记录时,省略字段
    insert into classes VALUES(1,"一班");
    -- 掺入指定的字段
    insert into classes (name) VALUES ("二班");
    -- 插入多条数据
    insert into classes (name,id) values ("三班",3),("四班",4);
    select * from classes;
    
    ### 1.1 Insert语句总结: * 可以向指定表插入一条记录 * 语法:insert into 表名 (字段1,字段2,...) values (数据1,数据2,数据3...)

    2 select用于查询表的记录

    语法:select 列1,列2,列3,... from 表名 where ... ;

    show tables;
    create table students (
    	id BIGINT not null auto_increment,
    	class_id INT ,
    	name VARCHAR(10) not null,
    	gender char(1),
    	PRIMARY KEY(id)) default charset=utf8;
    
    INSERT into students (class_id,name,gender)VALUES 
    	(1,"小明","M"),
    	(1,"小红","F"),
    	(1,"小军","M"),
    	(2,"小白","F"),
    	(2,"小兵","M"),
    	(3,"小王","M"),
    	(3,"小丽","F");
    select * from students;
    -- where条件
    select * from student where id = 2;
    select * from student where id > 3;
    select * from student where class_id > 3;
    select * from student where gender = 'M';
    -- and
    select * from student where id > 3;
    -- 筛选特定的列
    select id,name from students;
    -- 聚合查询
    -- 获取记录数量
    select count(*) from students;
    --
    select count(*) from students group by class_id;
    select class_id,count(*) number from students group by class_id;
    -- 多表查询
    -- 查询的结果是一个4*7=28条的记录,即2个表的乘积,没什么用
    select * from classes,students; 
    -- 通常使用inner join来进行联合查询
    select * from classes inner join students on classes.id = students.class_id;
    -- 指定别名来更好的返回结果
    select c.id,c.name class_name,s.name student_name,s.gender from classes c inner join students s on c.id = s.class_id;
    

    2.1 select查询总结:

    • 可以指定查询的列
    • 可以通过where条件筛选符合条件的记录
    • 可以使用聚合查询
    • 可以多表联合查询
    • 查询结果仍然是一个关系表

    3 update更新记录操作

    update返回的结果是一个整数,代表更改了几条记录

    -- 全部记录的class_id都会改为5
    update students set class_id = 5 ;
    -- 修改指定记录
    update students set class_id = 5 where id = 3;
    -- 修改指定记录的多个字段
    update students set class_id = 5, gender = 'F' where id = 3;
    

    3.1 update总结

    • 可以设置某些列的值
    • 可以通过where筛选符合条件的行
    • 执行结果为符合更新条件的行数

    4 delete删除记录

    delete返回一个整数,代表删除记录的数目

    -- 删除表的全部记录
    delete from students;
    -- 删除某条记录
    delete from students where id=3
    -- 删除多条记录
    delete from students where id > 3 and gender = 'M';
    

    4.1 delete总结

    • 可以删除指定的行
    • 可以通过where条件筛选符合条件的行
    • 执行结果为删除的行数
  • 相关阅读:
    C++中获取高精度时间差
    有关宏的一个问题
    HDU 2504 又见GCD
    .NET中统一的存储过程调用方法(收藏)
    如何让你的SQL运行得更快
    最赚钱的5种成功创业可行方式
    SQL语句优化技术分析
    js document.getElementByID("aa")的位置
    写SQL时尽量不要对字段进行运算操作
    连接池的问题
  • 原文地址:https://www.cnblogs.com/csj2018/p/11436654.html
Copyright © 2020-2023  润新知