【无标题】mysql

MYSQL

1.为什么需要数据库

◼ 任何的软件系统都需要存放大量的数据,这些数据通常是非常复杂和庞大的:

​  比如用户信息包括姓名、年龄、性别、地址、身份证号、出生日期等等;

​  比如商品信息包括商品的名称、描述、价格(原价)、分类标签、商品图片等等;

​  比如歌曲信息包括歌曲的名称、歌手、专辑、歌曲时长、歌词信息、封面图片等等;

◼ 那么这些信息不能直接存储到文件中吗?可以,但是文件系统有很多的缺点:

​  很难以合适的方式组织数据(多张表之前的关系合理组织);

​  并且对数据进行增删改查中的复杂操作(虽然一些简单确实可以),并且保证单操作的原子性;

​  很难进行数据共享,比如一个数据库需要为多个程序服务,如何进行很好的数据共享;

​  需要考虑如何进行数据的高效备份、迁移、恢复;  等等…

◼ 数据库通俗来讲就是一个存储数据的仓库,数据库本质上就是一个软件、一个程序。

2.常见的数据库有哪些?

◼ 通常我们将数据划分成两类:关系型数据库和非关系型数据库;

◼ 关系型数据库:MySQL、Oracle、DB2、SQL Server、Postgre SQL等;

​  关系型数据库通常我们会创建很多个二维数据表;  数据表之间相互关联起来,形成一对一、一对多、多对对等关系;

​  之后可以利用SQL语句在多张表中查询我们所需的数据;

​  支持事务,对数据的访问更加的安全;

◼ 非关系型数据库:MongoDB、Redis、Memcached、HBse等;

​  非关系型数据库的英文其实是Not only SQL,也简称为NoSQL;

​  相当而已非关系型数据库比较简单一些,存储数据也会更加自由(甚至我们可以直接将一个复杂的json对象直接塞入到数据库中);

​  NoSQL是基于Key-Value的对应关系,并且查询的过程中不需要经过SQL解析,所以性能更高;

​  NoSQL通常不支持事物,需要在自己的程序中来保证一些原子性的操作;

◼ 如何在开发中选择他们呢?具体的选择会根据不同的项目进行综合的分析,我这里给一点点建议:

​  目前在公司进行后端开发(Node、Java、Go等),还是以关系型数据库为主;

​  比较常用的用到非关系型数据库的,在爬取大量的数据进行存储时,会比较常见;

3.下载mysql软件

◼ 下载地址:https://dev.mysql.com/downloads/mysql/

◼ 根据自己的操作系统下载即可

◼ 这里我安装的是MySQL的版本:5.5

4.启动mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zQFEbjWw-1655883541508)(D:\面试题\my.png)]

5.mysql的链接操作

◼ 打开终端,查看 M y S Q L的安装:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-obmhVwv9-1655883541510)(D:\面试题\33.png)]

6.终端链接数据库

◼ 我们如果想要操作数据,需要先和数据建立一个连接,最直接的方式就是通过终端来连接;

◼ 有两种方式来连接:

 两种方式的区别在于输入密码是直接输入,还是另起一行以密文的形式输入;

7.Navicat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JWP8tfl7-1655883541510)(D:\面试题\55.png)]

8.创建数据库-表

◼ MySQL默认的数据库:

 infomation_schema:信息数据库,其中包括MySQL在维护的其他数据库、表、 字段、访问权限等信息;

 performance_schema:性能数据库,记录着MySQL Server数据库引擎在运行 过程中的一些资源消耗相关的信息;

 mysql:用于存储数据库管理者的用户信息、权限信息以及一些日志信息等;

 sys:相当于是一个简易版的performance_schema,将性能数据库中的数据汇 总成更容易理解的形式;

9.认识sql语句

◼ 我们希望操作数据库(特别是在程序中),就需要有和数据库沟通的语言,这个语言就是SQL:

 SQL是Structured Query Language,称之为结构化查询语言,简称SQL;

 使用SQL编写出来的语句,就称之为SQL语句;

 SQL语句可以用于对数据库进行操作;

◼ SQL语句的常用规范:

 通常关键字是大写的,比如CREATE、TABLE、SHOW等等;

 一条语句结束后,需要以 ; 结尾;

 如果遇到关键字作为表明或者字段名称,可以使用引号包裹;

10.数据库的操作

–查询数据库列表

SHOW DATABASES;

– 创建数据库

CREATE DATABASE corderhub;

– 选中数据库

USE corderhub;

CREATE TABLE users(
name VARCHAR(20),
age INT,
height DOUBLE
);

– 插入数据

INSERT INTO users VALUES(‘admin’,18,1.88);
INSERT INTO users VALUES(‘admin123’,20,1.78);

– 查询记录

SELECT * FROM users;

– 查询所有的数据库

SHOW DATABASES;

– 使用数据库

USE corderhub;

– 查看当前正在使用的数据库

SELECT DATABASE();

– 创建数据库

CREATE DATABASE bilibili;

– 如果不存在就创建

CREATE DATABASE IF NOT EXISTS bilibili;

– 删除数据库

DROP DATABASE corderhub;

– 如果存在就删除

DROP DATABASE IF EXISTS corderhub;

– 选中bilibili
USE bilibili;

– 查询选中数据库下的所有表

SHOW TABLES;

– 创建数据库表

CREATE TABLE IF NOT EXISTS user(
name VARCHAR(10),
age INT,
height double
);

– 查询表的结构

DESC user;

– 创建一个完整的表

CREATE TABLE IF NOT EXISTSgoods(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) UNIQUE,
price DOUBLE NOT NULL,

– 创建时间 默认值 是当前的时间

createAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

– 插入记录

INSERT INTO goods VALUES(null,‘华为’,4999.5,null);
INSERT INTO goods(name,price) VALUES(‘小米’,4999.5);

– 删除数据库表

DROP TABLE user;
DROP TABLE IF EXISTS user;

– 修改表
– 修改表名称

ALTER TABLE goods RENAME TO products;
– 添加一个新的字段
ALTER TABLE products ADD updateAt TIMESTAMP;
ALTER TABLE products ADD publishTime DATETIME;

– 删除字段

ALTER TABLE products DROP publishTime;

– 修改字段的名称(类型也可以修改)

ALTER TABLE products CHANGE updateAt updateTime DATETIME;

– 修改字段的数据类型

ALTER TABLE products MODIFY updateTime TIMESTAMP;
DESC products;

13.SQL的数据类型 – 日期类型

◼ MySQL的日期类型也很多:

◼ YEAR以YYYY格式显示值  范围 1901到2155,和 0000。

◼ DATE类型用于具有日期部分但没有时间部分的值:

 DATE以格式YYYY-MM-DD显示值 ;

 支持的范围是 ‘1000-01-01’ 到 ‘9999-12-31’;

◼ DATETIME类型用于包含日期和时间部分的值:

 DATETIME以格式’YYYY-MM-DD hh:mm:ss’显示值;

 支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59;

◼ TIMESTAMP数据类型被用于同时包含日期和时间部分的值:

 TIMESTAMP以格式’YYYY-MM-DD hh:mm:ss’显示值;

 但是它的范围是UTC的时间范围:‘1970-01-01 00:00:01’到’2038-01-19 03:14:07’;

◼ 另外:DATETIME或TIMESTAMP 值可以包括在高达微秒(6位)精度的后小数秒一部分

 比如DATETIME表示的范围可以是’1000-01-01 00:00:00.000000’到’9999-12-31 23:59:59.999999’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值