MySQL 数据的查询(单表,多表)

目录

1.INSERT :

 2.REPLACE语句:

3.UPDATE语句:

4.DELETE 和TRUNCAT语句:

5.SELECT语句:

6.多表关联查询:

7.练习:

        单表练习

        多表连接查询



1.INSERT :

       介绍: 在数据中添加或者插入数据

        语法:

INSERT INTO table [(column [, column...])]  VALUES(value [, value...]); 默认情况下,一次插入操作只插入一行;如果为每列都指定值,则表名后不需列出插入的列名

一次性插入多条记录: INSERT INTO table [(column [, column...])] VALUES(value [, value...]),(value [, value...])

如果不想在表名后列出列名,可以为那些无法指定的值插入null 可以使用如下方式一次插入多行

insert into 表名[(列名,…)]

 2.REPLACE语句:

        介绍: 在数据中添加或者插入数据

        语法:

语法格式1:

replace into 表名 [(字段列表)] values (值列表)

语法格式2:

replace [into] 目标表名[(字段列表1) select (字段列表2) from 源表 where 条件表达式

语法格式3:

replace [into] 表名 set 字段1=值1, 字段2=值2

         replace语句的功能与insert语句的功能基本相同,不同之处在于:使用replace语句向表插入新记录时, 如果新记录的主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录 删除时也不能违背外键约束条件),然后再插入新记录。

         使用replace的最大好处就是可以将delete和insert合二为一(效果相当于更新),形成一个原子操作,这样 就无需将delete操作与insert操作置于事务中了

3.UPDATE语句:

        介绍:修改数据

        语法:

UPDATE table SET column = value [, column = value] [WHERE condition];

         修改可以一次修改多行数据,修改的数据可用where子句限定,where子句里是一个条件表达式,只有 符合该 条件的行才会被修改。没有where子句意味着where字句的表达式值为true。也可以同时修改多列,多列的修改中间采用逗号(,)隔开

4.DELETE 和TRUNCAT语句:

        介绍:

        delete:删除数据,保留表结构,可以回滚,如果数据量大,很慢

        truncate: 删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快

        drop: 删除数据和表结构,删除速度最快

        语法:

DELETE FROM table_name [where 条件];

TRUNCATE TABLE table_name

5.SELECT语句:

        介绍:匹配表中数据 同时支持多种规则以及多种表匹配

        语法:

SELECT {*, column [alias],...} FROM table; // *:表明匹配所有    from:提供数据源(表名或视图);默认选择所有行。

对数值型数据列、变量、常量可以使用算数操作符创建表达式(+ - * /) 对日期型数据列、变量、常量可以使用部分算数操作符创建表达式(+ -) 运算符不仅可以在列和常量之间进行运算,也可以在多列之间进行运算。

SELECT last_name, salary, salary*12 FROM employees;

MySQL的+默认只有一个功能

运算符 SELECT 100+80; # 结果为180

SELECT '123'+80; # 只要其中一个为数值,则试图将字符型转换成数值,转换成功做预算,结果为203

SELECT 'abc'+80; # 转换不成功,则字符型数值为0,结果为80

SELECT 'This'+'is'; # 转换不成功,结果为0

SELECT NULL+80; # 只要其中一个为NULL,则结果为NULL

优先级

乘法和除法的优先级高于加法和减法

同级运算的顺序是从左到右

表达式中使用括号可强行改变优先级的运算顺序

SELECT last_name, salary, salary*12+100 FROM employees;

SELECT last_name, salary, salary*(12+100) FROM employees;

NULL值的使用:

空值是指不可用、未分配的值

空值不等于零或空格

任意类型都可以支持空值

包括空值的任何算术表达式都等于空

字符串和null进行连接运算,得到也是null.

安全等于<=>

1.可作为普通运算符的=

2.也可以用于判断是否是NULL

如:where salary is NULL/(is not NULL) ->where salary NULL

示例1:

查询emp表奖金为空的员工信息。 select * from emp where comm NULL;

示例2:

查询emp表奖金为50000的员工信息 select * from emp where comm 50000;

利用 as 定义字段的别名:

改变列的标题头

用于表示计算结果的含义

作为列的别名

如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都可以通过为别名添加加双引号实现。

SELECT last_name as “姓名”, salary “薪水” FROM employees;

SELECT last_name, salary*12 “年薪” FROM employees;

重复记录:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值