DML:增删改表中数据 DQL:查询表中的记录

DML:增删改表中数据

  1. 添加数据

语法:

insert into 表名(列名1,列名2,…列名n)values (值1,值2,…值n);

注意:

  1. 列名要和值一一对应

  2. 如果表名后,不定义列名,则默认给所有的列添加值:insert into 表名 values(值1,值2,…值n)

  3. 处理数字类型,其他类型需要使用引号(单双都可以)引起来

  4. 删除数据

语法:delete from 表名[where 条件]

注意:

  1. 如果不加条件,则删除表中所有记录;

  2. 如果要删除所有记录:1. delete from 表名:–不推荐使用。有多少条记录就会执行多少次删除操作,2.TRUNCATE TABLE 表名;–先删除表,然后再创建一张一样的表

  3. 修改数据

语法:update 表名 set 列名1 = 值1,列名2 =值2,。。。[where条件]

注意:1.如果不加任何条件,则会将表中所有记录全部修改;

##DQL:查询表中记录

select from 表名;

INSERT INTO stu(id,NAME,age)VALUES(1,'张无忌',20);
INSERT INTO stu VALUES(2,'pofenx',17,99.9,NULL,NULL);
INSERT INTO stu VALUES(3,"张三",17,99.99,"1893-01-16",NULL);
SELECT*FROM stu; 
SHOW DATABASES;
SELECT*FROM stu;
UPDATE stu SET age =17 WHERE id = 3;
UPDATE stu SET age =18,score=100 WHERE id =2;
UPDATE stu SET age =20;


DQL:查询表中的记录

select*from 表名;

  1. 语法

    select

    字段列表

    from

    表名列表

    where

    条件列表

    gorup by

    分组字段

    having

    分组之后的条件

    order by

    排序

    limit

    分页限定

    1. 基础查询

    2. 多个字段的查询:select 字段名1,字段名2,…from表名;

注意:如果查询所有字段,这可以使用*来代替字段列表

  1. 去除重复:distinct
  2. 计算列:一般可以使用四则运算计算一些列的值(一般是只会进行数值类型的计算)

ifnull(表达式1,表达式2):null参与的运算,计算结果都为null,如果该字段为nul后的替换值

起别名:as:as也可以省略


CREATE TABLE student(
id INT ,
NAME VARCHAR(20) ,
age INT ,
sex VARCHAR(5),
address VARCHAR(100),
math INT,
english INT );


INSERT INTO student(id,NAME,age,sex,address,math,english)
 VALUES
  (1,'马云',55,'男','杭州',66,78),
 (2,'马化腾',45,'女','深圳',98,87),
 (3,'马景涛',55,'男','香港',56,77),
 (4,'柳岩',20,'女','湖南',76,65),
 (5,'柳青',20,'男','湖南',86,NULL),
 (6,'刘德华',57,'男','香港',99,99),
 (7,'马德',22,'女','香港',99,99),
 (8,'德玛西亚',18,'男','南京',56,65); 
SELECT * FROM student;
-- 去除重复的结果集;
SELECT DISTINCT address FROM student;
SELECT DISTINCT NAME,address FROM student;

-- 计算math和english的和
SELECT NAME,math,english,math+english FROM student;
-- 如果有null 参与的运算,计算的结果都为null
SELECT NAME ,math,english,math+IFNULL(english,0) FROM student;

-- 起别名
SELECT NAME ,math,english,math+IFNULL(english,0) AS 总分 FROM student;
SELECT NAME 姓名 ,math 数学,english 英语,math+IFNULL(english,0) 总分  FROM student;

  1. 条件查询

  2. where子句后跟条件

  3. 运算符:>,<,<=,>=,=,<>,between …and , in(集合),like(模糊查询), is null,and 或&&,or或||,not或!;

  • like:模糊查询: _: 单个任意字符,%多个任意字符
CREATE TABLE student(
id INT ,
NAME VARCHAR(20) ,
age INT ,
sex VARCHAR(5),
address VARCHAR(100),
math INT,
english INT );


INSERT INTO student(id,NAME,age,sex,address,math,english)
 VALUES
  (1,'马云',55,'男','杭州',66,78),
 (2,'马化腾',45,'女','深圳',98,87),
 (3,'马景涛',55,'男','香港',56,77),
 (4,'柳岩',20,'女','湖南',76,65),
 (5,'柳青',20,'男','湖南',86,NULL),
 (6,'刘德华',57,'男','香港',99,99),
 (7,'马德',22,'女','香港',99,99),
 (8,'德玛西亚',18,'男','南京',56,65); 
SELECT * FROM student;
-- 去除重复的结果集;
SELECT DISTINCT address FROM student;
SELECT DISTINCT NAME,address FROM student;

-- 计算math和english的和
SELECT NAME,math,english,math+english FROM student;
-- 如果有null 参与的运算,计算的结果都为null
SELECT NAME ,math,english,math+IFNULL(english,0) FROM student;

-- 起别名`student`
SELECT NAME ,math,english,math+IFNULL(english,0) AS 总分 FROM student;
SELECT NAME 姓名 ,math 数学,english 英语,math+IFNULL(english,0) 总分  FROM student;

-- 查询年龄大(小)(等于)(不等于)于20岁

SELECT * FROM student WHERE age >20; 
SELECT * FROM student WHERE age <20; 
SELECT * FROM student WHERE age = 20; 
SELECT * FROM student WHERE age != 20; 
 -- 查询年龄大于等于20小于等于30
 SELECT * FROM student WHERE age>= 20 && age <=30;
  SELECT * FROM student  WHERE age>= 20 AND age <=30;
   SELECT * FROM student WHERE age BETWEEN 20 AND 20 ;
    -- 查询年龄22岁 ,19 岁 ,25 岁的信息
    SELECT * FROM student WHERE age = 20 OR age =19 OR age =25;
     SELECT * FROM student WHERE age IN (18,22,25);
     --  查询英语程序为null
     SELECT * FROM student WHERE english =NULL -- 不对,null不能用=判断
     SELECT * FROM student WHERE english IS NULL;
     -- 查询英语成绩不为null
     SELECT * FROM student WHERE english IS NOT NULL;
     -- 查询姓马的有哪些
     SELECT * FROM student WHERE NAME LIKE '马%';
     -- 查询姓名第二个字是化的人
     SELECT * FROM student WHERE NAME LIKE '_化%';
     -- 查询姓名是三个字的人
     SELECT * FROM student WHERE NAME LIKE '___';
     -- 查询姓名中包含德的人;
     SELECT * FROM student WHERE NAME LIKE '%德%';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pofenx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值