SQL入门(structured query language)
https://www.bilibili.com/video/BV1yw4m1S7Be/?spm_id_from=333.337.search-card.all.click&vd_source=6471d0151b53b51537e2101947d0a09d
SQL:用来与关联式资料库系统交流的语言
tables and keys
primary key(主键):唯一表示每一条资料
foreign key(外键):表格与表格直接产生关联
不仅可以由employee对应到branch,也可以由branch中的最后一列对应到第一列
一列可以同时设置为主键和外键
创建和删除
CREATE DATABASE sql_tutorial;
SHOW DATABASES;
DROP DATABASE `database`;
DROP DATABASE `sql_tutorial`;
USE `sql_tutorial`; #选择资料库
#常见资料形态
#INT 用于存储整数,比如数量、年龄等
#DECIMAL(m,n) 用于存储精确的小数,适用于财务、货币计算等对精度要求高的场景
#VARCHAR(n) 用于存储可变长度的字符串,如姓名、地址等
#BLOB 用于存储二进制大文件,如图片、音频、PDF文档等
#DATA 专门用于存储日期,格式为 'YYYY-MM-DD',如生日、有效期
#TIMESTAMP 用于存储日期和时间,通常自动记录数据的创建或最后修改时间# 创建表格
CREATE TABLE student(`student_id` INT ,`name` varchar(100),`major`varchar(100),primary key(`student_id`)
);describe `student`; #展示表格drop table `student`; #删除表格alter table `student` add gpa decimal(3,2); #添加属性:小数-三位数,其中两位小数
alter table `student` drop column gpa; #删除gpa
插入内容
USE `sql_tutorial`; #选择资料库
CREATE TABLE student(`student_id` INT ,`name` varchar(100),`major`varchar(100),primary key(`student_id`)
);
describe `student`;select * from `student`; #选择全部
insert into `student` values (1, '小白','历史'); #插入内容
insert into `student` values (2, '小x',NULL); #插入内容
insert into `student`(`major`,`student_id`) values ('英语',5);
限制
USE `sql_tutorial`; #选择资料库
# 在创建表格时新建约束
CREATE TABLE student(`student_id` INT auto_increment, # 自动加一`name` varchar(100),`major`varchar(100) default 'history', # 默认历史primary key(`student_id`)
);
describe `student`; #展示表格
删改
set sql_safe_updates =0;
USE `sql_tutorial`; #选择资料库
CREATE TABLE student(`student_id` INT auto_increment, # 自动加一`name` varchar(100),`major`varchar(100) default 'history', # 默认历史primary key(`student_id`)
);
select * from `student`; #选择全部
#-------------------改---------------------------
update `student` # 将major为英语的全改为数学
set `major` = '数学'
where `major` = '英语'; #major 也可替换为其他条件筛选update `student` # 将student_id=1的major改为地理
set `major` = '地理'
where `student_id` = '1';update `student` # 将所有major改为物理
set `major` = '地理';
#-------------------删除--------------------------
delete from `student`
where `student_id` =1;delete from `student`
where `student_id` =3 and `major`='数学';alter table `student` add score int default 80; #添加属性:小数-三位数,其中两位小数
alter table `student` drop column score; #删除
delete from `student`
where score <=80; #删除所有成绩小于80的delete from `student`; # 删除student表中所有内容