关系型数据库系统 RDBMS -MySQL基础入门(一)

RDBMS 网络 关系型数据管理系统; 关系数据库模型; 关系数据库管理; 关系数据模型; 关系数据 --relationship database managerment system
SQL 简介
SQL 是用于访问和处理数据库的标准的计算机语言。
SQL 是什么?

SQL,指结构化查询语言,全称是 Structured Query Language。
SQL 让您可以访问和处理数据库。
SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。

数据库:缺点:读取效率慢 生产环境不存视频,音频,图片,文本(不适合)
效率:CPU>内存>磁盘>数据库
应用:淘宝:用户注册,登录.订单管理
先天优势\企业至关重要: 支持负载查询功能
元数据:描述数据的数据 -iNode
–用户密码描述信息

表 --图片表(表头) --50w(字符) 5G
名称大侠描述地址

Oracle \mysql \ --postgreSQL
Sql server
DB2
Redis --nosql
Memcache
MongoDB

SequoiaDB 巨杉数据库是一款金融级分布式关系型数据库。

DB 数据库
DBMS
DBS

支持语言:Python java perl php
支持系统:Linux unix macos windows
平台 : lamp --apache httpserver
LNMP --nginx

LANG=en growpart /dev/vda 1
Xfs_growfs /dev/vda1
Lvxtend -L +120G /dev/vda1
Resize2fs \ xfs_growfs /dev/vda1
Df -h

主配置文件/etc/my.cnf
错误日志文件/var/log/mysqld.log
传输协议:TC区分大小写P
默认端口号:3306
进程名:mysqld
数据库目录: /var/lib/mysql

一些最重要的 SQL 命令

SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

Alter user
(使)改变,更改区分大小写,改动;修改(衣服使更合身)
He had altered so much I scarcely recognized him.
他变得我几乎认不出来了。
It doesn’t alter the way I feel.这并没有改变我的感受。


构建MySQL
1 准备环境
2 安装MySQL
Mysql-community*
3 启动
4 配置MySQL管理员密码(默认管理员为root)
Grep password /var/log/mysqld.log

Mysql -uroot -p初始密码
Set global validate_possword_policy=0;
Set global validate_password_length-6;

修改密码:Alter user root@”localhost” identified by “123456”

Validate_password_policy 长度\数字\字典文件

(**************************************************************

数据库管理工具: ----------navicate
Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接到 MySQL、Oracle、PostgreSQL、SQLite 及 SQL Server 数据库,让管理不同类型的数据库更加方便

二 数据库操作基本流程

◼ 连接登陆数区分大小写据库
◼ 创建数据库
◼ 创建数据表
◼ 插入数据记录
◼ 断开连接
连接 MySQL 数据库的命令语法格式: mysql -h ip\域名 -u -p

1 Ps意事项:
操作指令不区分大小写(密码和变量除外)
每条 SQL 语句都以分号;结束
默认不支持 Tab 键补齐
(可以自行下载安装 https://github.com/dbcli/mycli 工具实现自动补齐功能)
\c 可以取消书写错误的命令

2 常用的 SQL 命令分类:
DDL 数据定义语言(create,alter,drop)
DML 数据操作语言(insert,update,delete)
DCL 数据控制语言(grant–授予权限,revoke–回收权限) revoke --取消;废除;使无效
DTL 数据事务语言(commit–保存提交,rollback,--回滚 savepoint)

3 .数据库相关指令练习
mysql> show databases; --查看数据库
mysql> use mysql; --切换数据库
mysql> select database();   --查看当前数据库
±-----------+
| database()
|
±-----------+
| mysql
|
±-----------+
1 row in set (0.00 sec);
mysql> create database tts character set utf8mb4; --创建数据库
mysql> drop database tts; --删除数据库
#查看数据库      --show
#切换数据库 --use mysql
#查看当前数据库 —select database();
#创建数据库 --create database

#删除数据库 --delete database


提示:数据库命名规则
(数字、字母、下划线,不能纯数字;区分大小写;不能使用关键词(select)或特殊符(+*^)

4 数据表
Create table 数据库名称 数据表名称(
字段1 数据类型(宽度) 约束条件
字段2 数据类型(宽度) 约束条件 );

(1)mysql> show character set; --#查看所有可用编码
(2)mysql> create database school character set utf8mb4; ----#创建数据库
若要修改MySQL服务的默认字符集,可以更改服务器的my.cnf配置文件,添加character_set_server=utf8 配置,然后重启数据库服务
Vim /etc/my.cnf

[mysqld]

Character_set_server=utf8
Systemctl restart mydsqld
Show variables like “%character%”

        mysql> create table school.student(

学号 char(20),
姓名 char(20),
性别 char(5),
手机号 int(11),
通信地址 char(50));
#创建数据表

mysql> CREATE TABLE mydb.student(
-> 学号 char(9) NOT NULL,
-> 姓名 varchar(4) NOT NULL,
-> 性别 enum(‘男’,‘女’) NOT NULL,
-> 手机号 char(11) DEFAULT ‘’,
-> 通信地址 varchar(64),
-> PRIMARY KEY(学号)
-> ) DEFAULT CHARSET=utf8; //手工指定字符集,采用utf8
Query OK, 0 rows affected (0.31se

1
查看数据:mysql > seclect * from school.student;

Update 数据库.数据表 set 字段=值[where条件]
Delete from

2查看指定表的字段结构
当前库为mysql,查看columns_priv表的结构,以列表形式展现:
mysql> desc columns_priv\G //查看表结构,以列表形式展现,末尾不用分号
3删除表
Drop table school;

******************************************
5 MySQL 数据类型
数值 : 体重 身高 工资 橙子 金额  --计算 tinyint int
字符 : 姓名 地址 邮箱 --不变 -char vachar
枚举 : 爱好 性别 专业 -自己选择 enum(单选) set(多选)
   日期时间 : 出生 注册  time \ date \datetime \timestamp \year


1字符类型

Char() 固定 最大255   --不够自动补空格 超出无法写入
性能高
Varchar 可变 超出无法写入
时间CPU \节约空间

Text\blob  字符>65535
2 数字类型

Create table school.num(
Id tinyint,
Age int(3),
Score float(4,2)); -4为总宽度,2为小数位(保留两位小数)
浮点型定义格式:float(总宽度,小数位),当字段值与类型不匹配时,字段值作为0处理。

3 时间日期now( ) year( ) month( ) day( ) date( ) time( )
curtime( ) curdate( )

1 使用now()查看当前的日期和时间
mysql> SELECT now();

2)使用curdate()获得当前的日期
mysql> SELECT curdate();
| curdate() |
±-----------+
| 2019-07-03 |
3 使用curtime()获得当前的时间
mysql> SELECT curtime();

| curtime() |
±----------+
| 04:04:55 |

4)分别获取当前日期时间中的年份、月份、日
mysql> SELECT year(now()) , month(now()) , day(now());
±------------±-------------±-----------+
| year(now()) | month(now()) | day(now()) |
±------------±-------------±-----------+
| 2019 | 7 | 3 |

Datetime  占8个字符 --1000-01-01 - 9999-12-31 不给数
据复制.则默认null
Timestamp   占4个字符 -1970 -2038 不给赋值mysql 自动分配时间
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

千禧年2000
人工-程控交换-
时间格式:YYYYmmddhhmmss
date 日期类型,占用 4 个字节
范围 0001-01-01~9999-12-31
默认使用 4 位数字表示,当只用 2 位数字负值时:
01~69 自动识别为 2001~2069
70~99 自动识别为 1970~1999

year 年份类型,占用 1 个字节
范围 1901-2155
time 时间类型,占用 3 个字节
范围 HH:MM:SS
Date 日期值 占3个字节

(name) value(‘lucy’);

Select mow(), sysdate;
Select time

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~上善若水~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值