MySQL基础(进阶)

本文是关于MySQL数据库的详细教程,涵盖了从SQL基础到高级特性的全面内容,包括SQL语言、MySQL简介、连接数据库、数据检索、排序、过滤、通配符与正则表达式、联结表、创建视图、使用存储过程和游标等。通过这个教程,读者将深入了解如何有效地管理和操作MySQL数据库。
摘要由CSDN通过智能技术生成

一、了解SQL

数据库是一个以某种有组织的方式储存的数据集合

数据库保存有组织的数据的容器(通常是一个文件或一组文件)

: 某种特定类型数据的结构化清单

 不能把不同的清单放在同一个表中  

​ 每张表在同一个数据库中的名字是唯一的

: 表由列组成,列中储存着表中某部分的信息

数据类型: 所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据

​ 数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要作用

: 表中的数据是按行储存的, 网格中垂直为列,水平为行

**备注: **提到行(row)时称其为数据库记录(record),这两个属于是可以互相替代的,但是,行才是正确

**主键: ** 一列或一组列,其值能够唯一区分表中每个行(唯一表示表中每行的这个列(或这组列)成为主键

虽然,并不总是都需要主键,但大多数程序猿都应保证创建的每个表都具有一个主键,以便于以后的数据操纵和管理

任意两行都不具有相同的的主键值,每个行都必须具有一个主键值(主键不能为NULL)

普遍认为的几个好习惯:

1,不更新主键列中的值

2,不重用主键列的值

3,不在主键列中使用可能会更改的值(列如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键)

**SQL:**是一种专门用来与数据库通信的语言

优点: 1,开放,使用所有数据库

​ 2,SQL简单易学(全都是英文单词组成)

​ 3,强有力,灵活的语言元素。

二、MySQL简介

1,什么是MySQL

​ 优点:1,免费使用

​ 2,性能快

​ 3,可信赖,大公司都在用

​ 4,简单

​ 用户--------->>客户机--------->> 服务器--------------->>数据库

2,MySQL命令使用程序

​ 可以直接在终端输入mysql就可以进入

​ 个别需要输入

mysql -u root -p 

启动 -u 是用户登录 root 是用户名 -p 是使用密码登录 -h 服务器地址 -P 端口

​ 用;结束

输入help或者\h获取帮助

quit或者exit

三、使用MySQL

1,连接

主机名:localhost 或者 127.0.0.1

端口:默认3306

用户名

密码

列如:数据库名字movie

切换数据库:

use movie

显示数据库:

show databases

显示所有的表:

show tables

选择当前数据库可用的表

show columus from 表名

或者

describe  表明

支持的其他语言

show status 显示服务器状态
show create database/table  显示创建特定数据库或表的mysql语句
show grants 显示安全权限
show errors/warnings 显示服务器错误或警告
show help 显示所有允许的show语句

四、检索数据

1,检索单列
select 列名 from 表
2,检索多列
select 列名,列名,列名 from 表名
3,检索所有
select * from 表名
4,检索不同的行
select distinct 列 from 表名

distinct 不能被部分使用,除非都不同否则所有行都将检索

5,限制结果

显示前数字个

select 列名 from 表名 limit 数字

显示从数字1开始,后面的数字2个

select 列名 from 表名 limit 数字1,数字2
或
select 列名 from 表名 limit 数字1 offset 数字2

检索的第一行是行0 不是行1

检索不够,直接返回能返回的行数

6,使用完全限定表名
select 表名.行名 from 表名
select 表名.行名 from 数据库.表名

五、排序检索数据

不加排序条件,直接检索出来的顺序是无序的。

单列排序

select 列名 from 表名 order by 列名

多列排序

select 列名1, 列名2 from 表名 order by 列名1, 列名2

先按列名1的排序,不同时,才开始排列名2

指定排序方向

默认是升序,加了desc变为降序

select 列名1, 列名2 from 表名 order by 列名1, 列名2 desc

需要的后列名后面加desc

用limit要加在最后

select 列名1, 列名2 from 表名 order by 列名1, 列名2 desc limit 数字

六、数据过滤

1,where子句

select 列名1 from 表名 where 列名1 = 数字 

order by 要位于where之后

= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的两个值之间
select 列名,列名 from 表 where 列名 != 数字    这种只能用!=

七、数据过滤

1,and 操作符号

两个条件并列。

select 列1,列2 from 表 where 条件1 and 条件2

两个条件筛选。

每添一条过滤条件就要使用一个and

2,or操作符号

两个条件有一个成立就行

select 列1,列2,列3 from 表 where 条件1 or 条件2
3、计算次序

这种SQL不能判断

select 列1,列2,列3 from 表 where 条件1 or 条件2 and 条件3

必须加()

select 列1,列2,列3 from 表 where (条件1 or 条件2) and 条件3
4、in操作符
select 列1,列2 from 表 where in (起点,终点) order by 列1

in和or的功能差不多的

5、not操作符
select 列1,列2 from 表 where not 条件

not可以和in 、between 和exists

八、用通配符进行过滤

1,like后跟通配符匹配

%表示任何字符出现任意次数

select 列1,列2 from 表 where 列 like ' 部分字符%'

这里要区分大小写。

例如

'abc%'	abc开头
'%abc'	abc结尾
'a%b'	a开头,b结尾
'%ab%'	无论哪里有ab

不能匹配NULL

2、下划线通配符

_ 和%的用途是一样的。但是,_只能匹配单个字符

有几个_匹配多少个位置

select 列1,列2 from 表 where 列 like '_部分字符'

通配符比其他搜索所花的时间更长

1,不要过度使用通配符。

2,没必要的情况下,不要用在搜索的开始

3,确定通配符所在的位置,否则返回不是想要的数据

九、正则表达式进行搜索

1,regexp 类型

regexp正则表达式

regexp的用法和like一样,但是,like是整行,regexp是包括行内值

select 列1,列2 from 表 where 列 regexp '部分字符'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值