本文中介绍的结构型数据库MySQL
的基本知识,能够让你快速入门MySQL
,具体内容包含:
MySQL
(以Ubuntu
为例)4
种语言MySQL
内置函数<!--MORE-->
database
:以某种有组织的方式存储的数据集合。通常是一个文件或者一组文件。table
:结构化的文件,用来存储某种特定类型的数据。存储在表中的数据是同一种类型的数据或者清单。表名具有唯一性,表的特性:- 数据在表中如何存储
- 存储什么类型的数据
- 数据如何分解
- 各个部分的信息如何命名列
- 任意两行都不具有相同的主键值
- 每一行必须有一个主键值(主键列不允许NULL值)
- 主键的值不允许修改或者更新
- 主键值不能重用
MySQL
数据库中主要的数据类型有四种:
float(m,d)
:单精度,8位精度;m表示总个数,d表示小数位double(m,d)
:双精度,16位精度;m表示总个数,d表示小数位decimal(m,d)
:定点数,m表示总长度,d表示小数位用的最多的是char
和varchar
以及text
,其中
char
:定长,不够补空格,多了减掉;比如char(10)
:输入12345678**
,后面自动补两个空格。特点:存取速度快,占空间varchar
:变长,根据实际自动改变长度。特点:存取速度慢,节省空间text
:主要是用于存储文本信息类型 | 大小 | 格式 | 用途 |
---|---|---|---|
DATE | 3 | YYYY-MM-DD | 日期值 |
TIME | 3 | HH:MM:SS | 时间值或者持续时间 |
YEAR | 1 | YYYY | 年份值 |
DATETIME | 8 | YYYYMMDD | 混合日期和时间值 |
TIMESTAMP | 8 | HHMMSS | 混合日期和时间值,时间戳 |
常见的字段修饰语:
修饰语 | 作用 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
unsigned | 无符号 | ||||||||||||||||||||
auto_increment | 自增 | ||||||||||||||||||||
default | 默认值 | ||||||||||||||||||||
comment | 字段解释说明 | ||||||||||||||||||||
not null | 非空 | ||||||||||||||||||||
null | 空 | ||||||||||||||||||||
unique | 唯一索引 | ||||||||||||||||||||
index | 普通索引 | ||||||||||||||||||||
primary key | 主键,必须指定为auto_increment常见运算符常用的运算符有:符号含义=赋值或者判断!=或者<>不等于<小于>大于<=、>=小于等于或者大于等于OR或AND与BETWEEN…AND…在….和….之间IN、NOT IN在或者不在安装MySQL下面是以Ubuntu18为例安装MySQL数据库。官网下载进入MySQL数据库的官网。里面有各种版本,MySQL5.5,MySQL5.6,MySQL5.7,MySQL8.0。其中前三者是应用最广泛的,8.0目前刚出来,属于起步阶段,问题还是很多;而且网上的资源比较少。MySQL5.7社区版本文件下载这里是以安装5.7版本为例选择对应的系统和版本下载DEB文件点击开始安装安装客户端和环境进入到安装包所在的文件目录下,笔者是Downloads下:1sudo dpkg -i mysql-community-source_5.7.26-1ubuntu18.04_amd64.deb 2# 更新软件源3sudo apt-get upgrade安装客户端和环境的具体步骤:1# 安装mysql服务2sudo apt-get install mysql-server3# 安装客户端4sudo apt install mysql-client5# 安装依赖6sudo apt install libmysqlclient-dev7# 检查状态8sudo netstat -tap | grep mysql配置root密码mysql5.7安装完成后普通用户不能进mysql,原因:root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password,直接用root权限登录就不用密码,修改root密码和登录验证方式:1$sudo su # 进入root账户2# mysql # 输入mysql,进入mysql服务 ;root账户下分隔符是#,普通用户是$34mysql> select user, plugin from mysql.user;5+------------------+-----------------------+6| user | plugin |7+------------------+-----------------------+8| root | auth_socket |9| mysql.session | mysql_native_password |10| mysql.sys | mysql_native_password |11| debian-sys-maint | mysql_native_password |12+------------------+-----------------------+134 rows in set (0.00 sec)14mysql> update mysql.user set authentication_string=PASSWORD('renrenren'), plugin='mysql_native_password' where user='root'; # 修改root账户密码15mysql> flush privileges; # 刷新权限16mysql> exit # 退出msyql服务17Bye18# exit # 退出root账户,进入普通账户(第一个星号不是注释)19$ sudo /etc/init.d/mysql restart # 重启msyql服务20$ mysql -uroot -p # 进入mysql服务中,接下来输入上面步骤中设置的密码21Enter password: (上面的密码)配置远程登录默认的MySQL服务是只允许本地服务的,但是大部分时候需要远程服务,下面进行配置:1$sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # 进入配置文件,注释掉bind-address = 127.0.0.1 ![]() ![]() ![]() ![]() ![]() ![]() | 符号 | 含义 | = | 赋值或者判断 | !=或者<> | 不等于 | < | 小于 | 大于 | <=、>= | 小于等于或者大于等于 | OR | 或 | AND | 与 | BETWEEN…AND… | 在….和….之间 | IN、NOT IN | 在或者不在 | |
符号 | 含义 | ||||||||||||||||||||
= | 赋值或者判断 | ||||||||||||||||||||
!=或者<> | 不等于 | ||||||||||||||||||||
< | 小于 | ||||||||||||||||||||
大于 | |||||||||||||||||||||
<=、>= | 小于等于或者大于等于 | ||||||||||||||||||||
OR | 或 | ||||||||||||||||||||
AND | 与 | ||||||||||||||||||||
BETWEEN…AND… | 在….和….之间 | ||||||||||||||||||||
IN、NOT IN | 在或者不在 |
MySQL
数据库的官网。里面有各种版本,MySQL5.5,MySQL5.6,MySQL5.7,MySQL8.0
。8.0
目前刚出来,属于起步阶段,问题还是很多;而且网上的资源比较少。MySQL5.7
**社区版本**
文件下载
安装客户端和环境
进入到安装包所在的文件目录下,笔者是Downloads
下:
1
sudo dpkg -i mysql-community-source_5.7.26-1ubuntu18.04_amd64.deb
2
3
sudo apt-get upgrade
安装客户端和环境的具体步骤:
1
2
sudo apt-get install mysql-server
3
4
sudo apt install mysql-client
5
6
sudo apt install libmysqlclient-dev
7
8
sudo netstat -tap | grep mysql
配置root密码
mysql5.7
安装完成后普通用户不能进mysql
,原因:root
的plugin
被修改成了auth_socket
,用密码登陆的plugin
应该是mysql_native_password
,直接用root
权限登录就不用密码,修改root
密码和登录验证方式:
1
$sudo su # 进入root账户
2
3
4
mysql> select user, plugin from mysql.user;
5
+------------------+-----------------------+
6
| user | plugin |
7
+------------------+-----------------------+
8
| root | auth_socket |
9
| mysql.session | mysql_native_password |
10
| mysql.sys | mysql_native_password |
11
| debian-sys-maint | mysql_native_password |
12
+------------------+-----------------------+
13
4 rows in set (0.00 sec)
14
mysql> update mysql.user set authentication_string=PASSWORD('renrenren'), plugin='mysql_native_password' where user='root'; # 修改root账户密码
15
mysql> flush privileges; # 刷新权限
16
mysql> exit # 退出msyql服务
17
Bye
18
19
$ sudo /etc/init.d/mysql restart # 重启msyql服务
20
$ mysql -uroot -p # 进入mysql服务中,接下来输入上面步骤中设置的密码
21
Enter password: (上面的密码)
配置远程登录
默认的MySQL
服务是只允许本地服务的,但是大部分时候需要远程服务,下面进行配置:
1
$sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # 进入配置文件,注释掉bind-address = 127.0.0.1
保存退出,进入MySQL
服务,执行授权命令:
1
$sudo -uroot -p
2
Enter password: (上面的密码)
3
mysql> grant all on *.* to root@'%' identified by 'renrenren' with grant option;
4
Query OK, 0 rows affected, 1 warning (0.00 sec)
5
mysql>flush privileges;
6
mysql> exit
7
Bye
8
9
$sudo /etc/init.d/mysql restart # 重启mysql配置服务
4种语句
语句分类
结构化查询语言Structured Qurey Language
,语句必须是以分号结束,且关键词不区分大小写,主要包含四种语句:
DDL,data defination language
数据定义语言DML,data manipulation language
数据操作语言DCL,data control language
数据控制语言DQL,data query language
数据查询语言DDL
data defination language
,数据定义语言;作用主要是:创建、删除、修改库表结构
。DML
data manipulation language
,数据操作语言;作用主要是:增、删、改表的记录表
的操作DCL
data control language
,数据控制语言;用户创建及授权操作用户
DQL- `data query language`,数据查询语言;查询数据
- 主要是`查询`功能
学习资料
1. 首先推荐是一本书《**SQL必知必会**》,一本非常经典的`SQL`入门书籍📚
2. 一个网站:`sqlzoo`,是一个非常适合新手和提升SQL的练习网站
3. 一门课程:《网易课程-`MySQL`从入门到精通》
4. 菜鸟课程:提供很多`MySQL`的学习资料
MySQL内置函数大全
介绍MySQL
中常见的内置函数:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。