MySQL入门(一)

MySQL基础内容(一)

目录

MySQL学习笔记(一)

一、常用命令

1、语句

2、导入数据

3、查看表结构

4、表中的数据

5、常用命令

6、查看创建表的语句

二、SQL语句

1、简单查询语句

2、重命名

3、条件查询

4、删除语句

三、排序

1、升序降序

2、条件排序(order by)

四、分组函数(多行处理函数)

1、count 计数

2、sum 求和

3、avg 平均值

4、max 最大值

5、min 最小值

6、注意事项

五、分组查询(查询)

1、group by——分组

2、having ——过滤

3、查询结果去重

完整的DQL语句如何写?

六、连接查询

1、连接查询的分类

2、连接查询中的笛卡尔积现象

3、内连接

4、外连接

5、三张表查询


一、常用命令

1、语句

数据查询语言:select
数据操作语言:insert delete updata ,对表中的数据进行增删改
数据定义语言:create drop alter ,对表结构的增删改

drop语句使用实例

事务控制语言:commit 提交事务,rollback 回滚事务
数据控制语言:grant 授权,revoke撤销权限

2、导入数据

第一步:登录
第二步:查看数据库——show databases;
第三步:创建数据库——create database 库名称;
第四步:使用数据库——use 库名称;
第五步:查看数据库中的表——show tables;
第六步:初始化数据——source 数据库路径

3、查看表结构

desc 表名;

4、表中的数据

select * from 表名;

5、常用命令

select database();——查询数据库名 select version();——查询版本 \c 结束一条语句

6、查看创建表的语句

show create table 表明;

二、SQL语句

1、简单查询语句

语法格式: select 字段名1,字段名2,字段名3,...,from 表名; 字段可以参与数学运算!!!

2、重命名

select 字段名1,字段名2,...as 新名字 from 表名; ​ 如果新名字是中文,应是select 字段名1,字段名2,...as '新名字' from 表明;

3、条件查询

语法格式: select 字段,字段.... from 表名 where 条件: 执行顺序:先from,然后where,最后select

条件:
1、等于 =
2、大于小于> <
3、不等于 用<>或!=表示≠
4、在xxx和xxx之间——select ....from....where....between ... and ...;(条件限制为闭区间)
5、用select 字段 from 表名 where 字段 is null;查询数据是否为空
6、or代表或者,and代表并且
7、and和or同时使用时,and的优先级高,用括号
8、in:等同于or select 字段 from 表名 where 字段 in (字段1,字段2,...); not in(in的非情况)
9、like:模糊查询 %代表任意多个字符,代表任意1个字符 找出特定字符:select ... from....where...like '%特定字符%' 找出特殊位置字符:select ... from....where...like ' _ _ 特定字符%' 找出带有_的字符时,这么写% \ _ %,找出带%的同理

4、删除语句

1、删除一行

delete from 表名 where 条件;————条件如上所示

2、删除多行

delete from 表明 where 字段 in (字段...);

三、排序

1、升序降序

语法:select 字段 from 表名 order by 字段;——默认为升序

select 字段 from 表名 order by 字段 asc;——升序

select 字段 from 表名 order by 字段 desc;——降序

2、条件排序(order by)

1、select 字段 from 表名 order by 字段 (排序方式),字段(排序方式),...;
注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。
​2、select 字段1,字段2,... from 表名 order by 1/2/...;按照列进行排序。

语法格式: ​ select ​
                        字段,字段..  ​
                    from ​
                        表名 
                     where ​
                        条件 
                     order by
                        字段 排列方式;

order by 最后执行

四、分组函数(多行处理函数)

输入多行→输出一行 共5个函数 PS:分组函数都是对“某一组”数据进行操作的。

1、count 计数

语法:select count(字段) from 表名;select count() from 表名;* * 代表总记录条数的意思 (字段)代表不为Null的字段的条数

2、sum 求和

语法:select sum(字段) from 表名;

3、avg 平均值

语法:select avg(字段) from 表名;

4、max 最大值

语法:select max(字段) from 表名;

5、min 最小值

语法:select min(字段) from 表名;

6、注意事项

· 分组函数自动忽略“空”

· 数据库中只要NULL参与的运算结果一定是NULL,除非使用的是分组函数 ifnull()空处理函数——语法 :select 字段, ifnull(字段,0) from 表名; 用于实现对NULL进行预处理,是一种单行处理函数

· 分组函数不可直接使用在where子句中 未进行分组,则无法进行分组函数的执行,因为group by 在 where 执行之后才执行,,所以where之后不能直接跟着分组函数,必须先分组才可进行分组函数的执行,否则会报错

· 分组函数也可以组合使用

· 分组函数一般都会和group by 联合使用,且在group by语句执行之后执行

五、分组查询(查询)

1、group by——分组

group by :按照某个字段或者某些字段进行分组

语法:select 字段1,字段2,字段3,... from 表名 group by 字段;

PS:使用group by时,select 后面只允许参加分组的字段分组函数存在 ,其他的字段无意义,MySQL中错误写法不会报错但数据不匹配;在Oracle中直接报错

多个字段联合进行分组 语法:select (字段1,字段2,... + 分组函数(max/min/avg/...) ) from 表名 group by 字段1,字段2,...;

2、having ——过滤

having :having是对分组之后(group by)的数据进行再次过滤

语法:select 字段1,字段2,字段3,... from 表名 group by 字段 having 条件;

如果能够在where后面将需要的数据过滤完成,则使用where,效率高;实在用where无法解决,则使用having,但效率较低

3、查询结果去重

关键字:distinct ​ 语法:select distinct 字段 from 表名; ​ PS:distinct关键字只能出现在所有字段的最前面

当出现select distinct 字段1,字段2,... from 表名;时,代表将distinct之后的所有字段进行联合去重

完整的DQL语句如何写?

六、连接查询

引入:实际开发中,大多数情况下都不是在单表中进行查询,一般一个业务都会对应多张表

多表查询时如果不加限制,查询结果为各表记录数的乘积

1、连接查询的分类

内连接 ​ 等值连接 ​ 非等值连接 ​ 自连接

外连接 ​ 左外连接(左连接) ​ 右外连接(右连接)

全连接(很少用)

2、连接查询中的笛卡尔积现象

 2.1、表的别名

例:select e.ename,d.dname from emp e,dept d; ​ emp e 代表给表emp起别名e,e.ename代表在表e中(即表emp中)查找ename字段

优点:1、执行效率高;2、可读性高

2.2、避免笛卡尔积现象

PS:避免笛卡尔积现象,不会减少记录的匹配次数;显示的为有效记录所以匹配次数不会减少

通过添加条件避免

语法:select e.ename,d.dname from emp e,dept d where 条件;

3、内连接

3.1、等值连接

内连接:a,b两张表没有主副表之分 ​
关键:条件是等量关系
语法:select ...(需要筛选的字段) from 表名1 (inner) join 表名2 on 表名1.字段 = 表名2.字段 where ....;

3.2、非等值连接

非等值连接与等值连接的区别在于join后面的条件为非等量关系

3.3自连接

特点:一张表看作两张表 例:table a,table b——将同一张表命名两次,形成两张表

语法:select a.字段,b.字段 from 表a inner join 表 b on 条件; ​ 自连接的条件可以是等量关系也可以是非等量关系

4、外连接

外连接:a,b两张表有主副表之分;当副表中数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配;根据业务判断是否用外连接

4.1、左外连接

定义:表示左表是主表

语法:select a.字段,b.字段 from 表a left (outer) join 表b on 条件;

4.2、右外连接

定义:表示右表是主表

语法:select a.字段,b.字段 from 表a right (outer) join 表b on 条件;

PS:左右外连接能够相互转化

以左表为主表:
      select a.字段,b.字段 from 表a left join 表b on 条件;

= select a.字段,b.字段 from 表b right join 表a on 条件;

查谁,谁做主表

5、三张表查询

示例:

 

 · ≥2张表的查询同理

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值