SQL2|6期青训营2

71 阅读3分钟

CRUD

create read update delete

数据库的CRUD语句

Insert 添加数据

 INSERT INTO TableName (column1,column2,column3) VALUES (value1,value2,value3);
 #col与val是对应的
  • 插入的数据应与字段的类型数据相同

  • 数据的长度应该在列的规定范围内

  • VALUES中列出的数据位置必须与被加入的列的排列位置相应

  • 字符和日期型数据应该包含在单引号中

  • 列可以插入空值[前提是该字段允许为空] insert into table value(null)

  • 添加多条记录

    INSERT INTO TableName (column1,column2,column3)

    VALUES (value1,value2,value3),

    (value1,value2,value3);

  • 默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错

    如果某个列没有指定 not null,那么添加数据时,没有给定值,就会默认给null

    如果希望指定某个列的默认值,可以在创建表的时候指定

Update 更新数据

 UPDATE TableName 
     SET col1=expr1,col2=expr2 [WHERE expr];
  • UPDATE可以用新值跟新原有列表中的割裂
  • SET语句指示要修改哪些列和要赋予那些值
  • WHERE子句指定更新哪些行,没有WHERE全更新
  • 如果要更新多个字段 通过 set 字段1=值1,字段2=值2=

Delete 删除数据

 DEALETE FROM TableName [WHERE expr;];
  • 不使用WHERE子句,将删除表中所有的数据
  • DELETE 不能删除某一列的值(可使用update设为null或者' ')
  • DELETE 语句仅删除记录,不删除表本身,如果要删除表,使用drop table语句

Select 查找数据

查询
 SELECT [DISTINCT] *| {col1,col2,col3...} FROM tablename;
  • SELECT指定查询哪些列的数据
  • col指定列名
  • *代表查询所有列
  • FROM指定查询哪张表
  • DISTINCT可选,指显示结果时,是否去掉重复数据,每个字段都相同才会去重
 create TABLE student
 (
     id      int         not null DEFAULT 1,
     `name`   VARCHAR(20) not null DEFAULT '',
     chinese FLOAT       not null DEFAULT 0.0,
     english FLOAT       not null DEFAULT 0.0,
     math    FLOAT       not null DEFAULT 0.0
 );
 ​
 INSERT INTO student (id, `name`, chinese, english, math)
       VALUES(1, 'NAME1', 89, 78, 90),
             (2, 'NAME2', 67, 98, 56),
             (3, 'NAME3', 87, 78, 77),       
             (4, 'NAME4', 88, 98, 90),
             (5, 'NAME5', 82, 84, 67),
             (6, 'NAME6', 55, 85, 45),
             (7, 'NAME7', 75, 65, 30),
             (8, 'NAME8', 45, 65, 99);  
 SELECT *FROM student;

image-20230727165933712

 SELECT `name`,english FROM student;

image-20230727170445096

 SELECT DISTINCT english FROM student;

image-20230727170617849

使用表达式对查询的列运算与别名
 SELECT *|{column|expression , column2|expression,...} FROM TableName;
 SELECT columnName AS 别名 FROM TableName;
 SELECT `name`,(chinese+math+english) AS 'SUM' FROM student;

image-20230727172523470

WHERE子句常用运算符
比较运算符描述
= != > < >= <=等于,不等于,大于,小于,大于等于,小于等于
BETWEEN ...AND...在某个范围内,左右闭区间
LIKE NOT LIKE模糊搜索某种模式
IN指定针对某个列的多个可能值
IS NULL判断是否为空
逻辑运算符描述
AND多个条件同时成立
OR多个条件任一成立
NOT不成立
 SELECT * FROM student WHERE `name`='name1';
 SELECT * FROM student WHERE english > 90;
 SELECT * FROM student WHERE english BETWEEN 80 AND 90;
 SELECT * FROM student WHERE english IN ( 89,90,91);
 SELECT *FROM student WHERE 
                 (english+math+chinese)>200 
                 AND math < chinese 
                 AND `name` LIKE '韩%';
 #查询总分大于200,数学小于语文,姓"韩"的学生