语句以;分号结尾
数据库类型:关系型数据库、非关系型数据库
什么是关系型数据库?
以表的形式存储数据,表与表之间可以有很多复杂的关系
什么是非关系型数据库?
以数据集的关系存储数据,大量的数据集中存储在一起
foreign key: 外键约束---如果一张表中的一个字段指向了另一张表中的主键,就将该字段叫做外键;外键的数据类型必须和指向的主键一致;定义外键的表称为从表,被外键引用的表称为主表
create table if not exists user(
id int unsigned primary key auto_increment,
username varchar(20) not null
)
desc user;
create table if not exists dynamic(
id int unsigned primary key auto_increment,
content varchar(255) not null,
user_id int unsigned
)
create table if not exists dynamic_1(
id int unsigned primary key auto_increment,
content varchar(255) not null,
user_id int unsigned,
foreign key(user_id) references user(id)
)
create table if not exists dynamic_2(
id int unsigned primary key auto_increment,
content varchar(255) not null,
user_id int unsigned,
foreign key(user_id) references user(id) on update cascade on delete set null
)
SQL约束
SQL约束:
primary key:主键约束 --- 1、区分记录的唯一性;2、值不能重复也不能为空;3、一张表中只能有一个主键;4、同时将多个字段作为一个主键来使用,多个字段联合起来的值不能重复
例:
create table if not exists stu1 (
id int unsigned primary key,
name varchar(20)
)
create table if not exists stu2 (
id int unsigned,
name varchar(20),
primary key(id)
)
create table if not exists stu2 (
id int unsigned,
name varchar(20),
primary key(id,name)
)
auto_increment:自动递增
create table if not exists stu6 (
id int unsigned primary key auto_increment,
name varchar(20),
)
unique: 唯一约束: 1、保证某个字段值永远不重复;2、允许多个NULL值存在;3、一张表中只能有一个主键,但是可以有多个unique
create table if not exists stu7 (
id int unsigned primary key auto_increment,
name varchar(20) unique,
)
not null:非空约束
create table if not exists stu8 (
id int unsigned primary key auto_increment,
name varchar(20) not null,
)
default:默认值
create table if not exists stu9 (
id int unsigned primary key auto_increment,
name varchar(20) not null,
gender enum('男', '女', '保密') default '保密'
createdAt timestamp default current_timestamp
updateAt timestamp default current_timestamp on update current_timestamp
)
foreign key:外键约束
查询数据表(查)--查找当前使用的数据库
select database()
选择数据库
use demo
查看当前数据库中的所有表
show tables
查看表结构
desc student;
创建数据表(增)
create table if not exists student (
id int unsigned,
name varchar(20)
age tinyint unsigned
gender enum('男','女','保密')
createAt timestamp
)
已存在才删除表
drop table if exist student
修改数据表
alter table student rename to stu 修改表名
添加字段
alter table student add updatedAt timestamp
删除字段
alter table student drop updateAt
修改字段的数据类型
alter talbe student modify createdAt datetime
修改字段的名称和数据类型
alter table student change createdAt createAt timestamp
SQL数据类型:
什么是SQL数据类型?
数字、字符串、日期时间等类型
为什么需要数据类型?
告诉数据库以多大的储存空间储存数据
合理分配储存空间
常见的SQL数据类型有哪些?
数字类型:整型、浮点型、定点型等
字符串类型:字符型、文本型、枚举型、集合型等
日期时间类型:日期型、日期时间型、时间戳型等
整数类型:
专门用来保存整数
区分有符号和无符号,默认是有符号的(有符号可以表示负数,无符号不能表示负数)
可以在数据类型后加上unsigned表示无符号
show databases; 显示所有的数据库
select database(); 选择使用的数据库
use demo;使用demo数据库
create database demo; 创建一个数据库(如果数据库存在就会报错)
create database demo if not exists demo; 创建数据库(如果数据库存在就不会创建,否则就创建数据库)推荐使用这种方式创建数据库
drop database demo; 删除数据库(如果存在就删除,否则就会报错)
drop database if exists demo; 删除数据库(如果存在就删除,不存也不会报错)推荐使用这种方式
alter database demo character set utf8mb4 collate utf8mb4_0900_ai_ci;
utf8mb4 :字符集,兼容utf8,且比utf8 能表示更多的字符
utf8mb4_0900_ai_ci:字符集对应的排序规则,声调/重音不敏感(accent insensitive),大小写不敏感(case insensitive)
SQL规范
记录知识点
-- 显示所有数据库 show databases; -- 查看当前使用的数据库 select database(); -- 使用数据 use mydemo; -- 创建一个叫“mydemo”的数据库 create database mydemo; -- 查询是否存在一个叫“mydemo”的数据库,没有的话创建 create database if not exists mydemo; -- 删除数据库 drop database mydemo; -- 查询是否存在这个数据库,存在删除 drop database if exists mydemo; -- 修改数据库“字符集”与“排序规则” alter database mydemo character set utf8mb4 collate utf8mb4_0900_ai_ci; -- utf8mb4: 字符集,兼容utf8,且比utf8能表达更多的字符 -- utf8mb4_0900_ai_ci:字符集对应的排序规则,声调/重音不敏感,大小写不敏感
配置path环境变量设置,方便cmd指令直接运行
新建path变量地址
查看当前数据库
Select database
显示所有数据库
Show database;
show database
什么是数据库
存储和管理数据的仓库,本质上就是一个软件。
存储和管理:对数据的增,删,改,查。
数据库分为
关系型数据库
非关系型数据库
关系型数据库
是以表的形式存储数据,表与表之间可以有很多复杂关系
MySQL,Oracle,SQL Server等
非关系型数据库
以数据集的方式存储数据,大量的数据集中存储在一起
MongoDB,Redis,Memcached等
什么是MySQL
关系型数据库
免费开源的,也是最受欢迎的数据库之一
SQL约束,主表从表
SQL约束
命令行连接MySQL
为什么找不到我的笔记了
约束
主键id并不为空,类型int,是正数
再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记再来一个笔记
图片插入一个笔记
字符串类型
字符串专门用来保存字符串,而文本类型不会直接保存在表中,文本欸行保存了引用实际保存数据的地址。
浮点类型:
专门保存小数,会丢失精度;
不要用来保存不希望丢失精度的数据;
定点类型:
专门保存小数,不会丢失精度;
SQL 数据类型:数字、字符串、日期时间
为什么需要数据类型:告知数据库以多大空间存储数据,合理分配存储空间
常见的数据类型:
-数字类型:整数、浮点、定点
-字符串类型:字符、文本、枚举、集合
-日期时间:日期型,日期时间型,时间戳型
整数类型:专门保存整数,分有无符号,默认有符号,可以在数据类型后加unsigned表示无符号
---查询数据表(查)---
--查找当前使用的数据库--
select database();
--选择数据库
use demo;
--查看当前数据库中的所有表
show tables;
--查看表结构
desc student;
---创建数据表(增)---
create table student(
id int unsingned,
name varchar(20),
age tinyint unsigned,
gender enum(‘男’,‘女’,‘保密’),
createdAt timestamp
)
--不存在才创建(推荐使用)
create table if not exists student(
id int unsingned,
name varchar(20),
age tinyint unsigned,
gender enum(‘男’,‘女’,‘保密’),
createdAt timestamp
)
---删除数据表(删)---
--不存在会报错
drop table student;
--已存在才删除(推荐使用)
drop table if exists student;
---修改数据表(改)---
alter table student rename to stu;
alter table stu rename to student;
--添加字段
alter table student add updatedAt timestamp;
--删除字段
alter table student drop updatedAt
--修改字段的数据类型
alter table student modify createdAt datetime;
--修改字段的名称和数据类型
alter table student change createdAt createAt timestamp;
---显示所有的数据库---查--
show databases;
--查看当前使用的数据--
select database();
--使用想选定的数据库--
use demo;
---创建数据库---
create database demo;(如果数据库存在会报错)
create database if not exists dmeo;
(如果数据库不存在则创建,存在什么也不做;数据库存在不会报错,推荐使用)
---删数据库---
drop database demo;(如果数据库不存在会报错)
drop database if exists demo;
(如果数据库存在则删除,不存在什么也不做;数据库不存在不会报错,推荐使用)
---修改---
alter database demo character set utf8mb4 coaaate utf8mb4_0900_ai_ci;
-utf8mb4:字符集,兼容utf8,且比utf8能表示更多的字符;
-utf8mb4_0900_ai_ci:字符集对应的排序规则