MySQL基础笔记-1

(1)什么是数据库,数据库的作用,数据库的使用场景
数据的仓库
数据库的作用:
数据库的使用场景:能产生数据的地方
(2)数据库的发展史
实体的空间 ----》 随着计算机的发展 文件系统的发展
数据存储到文件中(磁盘) Mysql、sql server
(3)什么是数据库管理系统 — 是数据库价值体现
Mysql 关系型数据库
sql server 关系型数据库
redis 非关系型数据库
Mysql是如何管理数据库的?
例如学校的数据库 ,通过一张一张的二维表(关系)对数据库进行管理。
学校的数据库
常识 定义关系
定义一张学生表
学生学号 姓名 性别 年龄
±-----±-------------±--------------------±-----+
| SID | Sname | Sage | Ssex |
±-----±-------------±--------------------±-----+
| 01 | 赵雷 | 1990-01-01 00:00:00 | 男 |
| 02 | 钱电 | 1990-12-21 00:00:00 | 男 |
| 03 | 孙风 | 1990-05-20 00:00:00 | 男 |

行 : 元组
列 : 属性
域 : 属性取值范围
数据类型 : 属性数据类型

(4)什么是数据库系统
数据库管理系统 + 数据库 = 数据库系统

(5)如何使用MySQL操作数据库(重点)
Mysql 基于C/S模型的数据库管理系统
C/S模型 : 客户端服务器系统
mysql 客户端 登录 mysql 的服务器
使用cmd在只安装路径下进入

基本语法:
创建数据库:create database 数据库名;
查看所有数据库: show databases;
userName

user_name 数据库中的写法
进入数据库
use 数据库名;
删除数据库
drop database 数据库名;

int a
a int
定义二维表:
create table tableName (
属性名 数据类型 完整性约束, //(可以不加完整性约束)
属性名 数据类型 完整性约束,
属性名 数据类型 完整性约束,
属性名 数据类型 完整性约束,

)
完整性约束 对插入数据的时候有约束

完整性约束 |说明
primary key |表示当前属性为该表的主键,可以区分不同的行记录
foreign key |修饰的属性为该表的外键,表之间关联使用的键
not null | 表示属性不能为空
unique |表示属性的值是唯一的
auto_increment | MYSQL特色,表示属性是自增的,自增类型为整形
default |给属性设定默认值

例如学生表
stu_id(主键+自增) class_id (班级号)corse_id(课程号)
name(唯一) age(默认0) sex(非空) score(小数)
mysql : 大小写不敏感的
1 ~ 10
整数:考虑取值范围,如果小的可以就尽量选小的 节省空间
字符串类型 varchar(int) char(int)
数据类型的取值范围 表示数据类型最大能存放int个字符

varchar(10) 占用的空间 1 ~ 10个字符之间变化的
当你存放一个字符进来的时候:对字符串长度不确定时候选择varchar
(1)计算这个字符需要的存储空间
(2)为这个字符串开辟空间
(3)再将这个字符串放进去

char(10) 占用的空间10个字符
(1)将这个字符串放进去
对所占的字符我们确定他占多少空间

enum(‘m’,‘w’) 单选
set(‘java’,‘mysql’,‘linux’) 多选
text 文本

定点数类型和浮点数类型
DOUBLE/FLOAT/dec(M,D)
M:小数的长度 、
D:小数点后保留多少位

日期“

text 文本文件
二进制:存储文件 照片 视频 —》 转成二进制文件存储到mysql中

AUTO_INCREMENT:属性不能重复
PRIMARY KEY: 属性不能重复

例如:
create table student(
stu_id int PRIMARY KEY AUTO_INCREMENT,
class_id tinyint,
corse_id int,
name VARCHAR(20) UNIQUE,
age int DEFAULT 0,
sex enum(‘m’,‘w’) NOT NULL,
score dec(6,2),
skill set(‘java’,‘mysql’,‘linux’)
);

范式
create table student2(
stu_id int primary key auto_increment,
class_id tinyint,
name varchar(20) unique,
age int default 0,
sex enum(‘m’,‘w’)not null,
skill set(‘java’,‘mysql’,‘linux’)
);
create table course(
corse_id int primary key,
corse_name varchar(10)
);

create table score(
stu_id int ,
corse_id int,
score dec(6,2),
primary key(stu_id,corse_id)
);

B/S模型 : 浏览器服务器系统

show tables;
可以查看创建好的表
删除表
drop table tableName;

查看表结构:
desc tableName;
mysql> desc student;
±---------±----------------------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±---------±----------------------------±-----±----±--------±---------------+
| stu_id | int(11) | NO | PRI | NULL | auto_increment |
| class_id | tinyint(4) | YES | | NULL | |
| corse_id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | UNI | NULL | |
| age | int(11) | YES | | 0 | |
| sex | enum(‘m’,‘w’) | NO | | NULL | |
| score | decimal(6,2) | YES | | NULL | |
| skill | set(‘java’,‘mysql’,‘linux’) | YES | | NULL | |
±---------±----------------------------±-----±----±--------±---------------+
create table student(
stu_id int PRIMARY KEY AUTO_INCREMENT,
class_id tinyint,
corse_id int,
name VARCHAR(20) UNIQUE,
age int DEFAULT 0,
sex enum(‘m’,‘w’) NOT NULL,
score dec(6,2),
skill set(‘java’,‘mysql’,‘linux’)
);

show create table tableName;

±--------±-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
±--------±-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE student (
stu_id int(11) NOT NULL AUTO_INCREMENT,
class_id tinyint(4) DEFAULT NULL,
corse_id int(11) DEFAULT NULL,
name varchar(20) DEFAULT NULL,
age int(11) DEFAULT ‘0’,
sex enum(‘m’,‘w’) NOT NULL,
score decimal(6,2) DEFAULT NULL,
skill set(‘java’,‘mysql’,‘linux’) DEFAULT NULL,
PRIMARY KEY (stu_id),
UNIQUE KEY name (name)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
±--------±-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
InnoDB 存储引擎 CHARSET=latin1 表的编码形式

CREATE TABLE student1 (
stu_id int(11) NOT NULL AUTO_INCREMENT,
class_id tinyint(4) DEFAULT NULL,
corse_id int(11) DEFAULT NULL,
name varchar(20) DEFAULT NULL,
age int(11) DEFAULT ‘0’,
sex enum(‘m’,‘w’) NOT NULL,
score decimal(6,2) DEFAULT NULL,
skill set(‘java’,‘mysql’,‘linux’) DEFAULT NULL,
PRIMARY KEY (stu_id),
UNIQUE KEY name (name)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

使用流程:
观察:
学校 公司 练习sql_test;
use databaseName;

选择合适的数据类型 约束条件

delete from course where int age >60;
delete from course where int age =30;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

拨浪鼓手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值