文章目录
什么是MYSQL
MYSQL数据库。数据库:存储数据的一种服务器
client:
1、MySQL自带的
2、cmd 配置环境变量
3、工具 Navicat
数据库和数据结构有什么区别?
数据结构一门学科,数据库是一个软件,数据库底层也用到了数据结构,且很依赖于这个数据结构。
数据库的优点
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
文件存储的缺点就是数据库的优点
数据库的分类
数据库大体可以分为 关系型数据库 和 非关系型数据库
- 关系型数据库(二维表格)
MySQL(开源,免费的)、 oracle(最好的数据库)、 SQL server
- 非关系型数据库(key-value)
Redis, hbase,MariaDB
但是MySQL不适用于 大型的复杂问题
客户端连接MySQL服务器
MySQL默认只允许在服务器本机 使用 root 用户登录,要开启 root 用户的远程登录,在MySQL服务器
本机执行:
mysql -u root -p
要求输入密码,没有设置密码则直接回车
进入MySQL命令行以后,可以看到 mysql>
-- 使用mysql数据库
use mysql;
-- 更新用户表的root账户,设置为任意ip都可以访问,密码修改为123456
update user set host="%",authentication_string=password('root') where user="root";
-- 刷新权限
flush privileges;
退出:quit
SQL语言
SQL语言也是一种编程语言。SQL是用来操作数据库的数据的。
DDL(用在项目开始的时候)
DML(使用频率最高的,CURD)
DCL(运维)
什么是存储引擎?
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法
关于库的操作
1.显示数据库:
show databases;
2.选中数据库
当你在使用某个数据库的时候,一定得先选中:use 数据库名;
use 数据库名
3.查看当前选中的数据库下的表
show tables;
4.删除数据库
DROP DATABASE [IF EXISTS] db_name;
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
5.创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
大写的表示关键字
[] 是可选项 CHARACTER SET
指定数据库采用的字符集 COLLATE:
示例:
创建名为 db_test1 的数据库
CREATE DATABASE db_test1;
如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建
CREATE DATABASE IF NOT EXISTS db_test2
如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建
CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;
utf8mb4其实在mysql当中 就是utf-8
常用的数据类型
在创建表的时候,表中的字段的数据类型
整型 : BIT (M) bit BIT(3) INT
浮点型: DECIMAL(M,D):小数
M:代表有效长度。13.45 的长度是4
D:代表小数点后几位
字符串类型: VARCHAR(SIZE):
varchar(4): 4个字节 String
TEXT 65535
日期类型:
DATATIME: 8个字节 表示的时间范围:1000-9999年
缺 点:不会进行时区的检索和转换。
TIMESTAMP: 4个字节。可以进行时区的检索和转换
缺 点:只能表示1970-2038年。
关于表的操作
1.创建表
CREATE TABLE 表名();
create table stu_test(
ID INT,
NAME VARCHAR(10) comment '姓名',
password VARCHAR(10),
age INT,
sex VARCHAR(1),
birthday timestamp,
amout decimal(6,2),
resume TEXT
);
可以使用comment增加字段说明
2.显示表
show tables;
3.删除表
DROP TABLE [IF EXISTS] tbl_name
-- 删除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;
作业:
有一个商店的数据,记录客户及购物情况,有以下三个表组成:
商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供应商provider)
客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证
card_id)
购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)
-- 创建数据库
create database if not exists bit32mall
default character set utf8 ;
-- 选择数据库
use bit32mall;
-- 创建数据库表
-- 商品
create table if not exists goods
(
goods_id int comment '商品编号',
goods_name varchar(32) comment '商品名称',
unitprice int comment '单价,单位分',
category varchar(12) comment '商品分类',
provider varchar(64) comment '供应商名称'
);
-- 客户
create table if not exists customer
(
customer_id int comment '客户编号',
name varchar(32) comment '客户姓名',
address varchar(256) comment '客户地址',
email varchar(64) comment '电子邮箱',
sex bit comment '性别',
card_id varchar(18) comment '身份证'
);
-- 购买
create table if not exists purchase
(
order_id int comment '订单号',
customer_id int comment '客户编号',
goods_id int comment '商品编号',
nums int comment '购买数量'
);