4.12学习笔记
一、数据库
1.持久化 — 将数据通过文件的方式保存到硬盘中。(普通文本文件、json文件、csv文件、excel文件、数据库文件)
2.分类:
关系型数据库(SQL):
非关系型数据(NoSQL):
NewSQL:
-- SQL(结构化查询语言) - 所有关系型数据库通用的语言
-- DDL(数据定义语言) - create、drop、alter
-- DML(数据操作语言) - insert、delete、update
-- DQL(数据查询语言) - select
-- DCL(数据控制语言) - grant、revoke
-- 注意:SQL中不区分大小写;一条SQL语句结束必须加分号
-- creat = CREATE = CrEaTe
-- 1.DDL
-- 1)创建数据库:create database if not exists 数据库名称 default charset utf8mb4;
create database if not exists school default charset utf8mb4;
-- 2)删除数据库(灵魂拷问): drop database if exists 数据库名称
drop database if exists school;
-- 3)使用数据库:use 数据库;
use school;
-- 4)创建表:create table 表名(字段名1 字段类型1 约束1 comment 说明1,字段名2 字段类型2 约束2 comment 说明2,...)
-- 注意:sql中字符串数据用单引号
-- 创建表的时候必须添加主键约束,主键是能够表示表中唯一一条记录的字段
create table if not exists `school`.`t_student`
(
`stu_id` int unsigned not null comment '学生的学号',
`stu_name` varchar(4) not null comment '姓名',
`stu_gender` boolean default 1 comment '性别',
`stu_birth` date comment '生日',
primary key (stu_id)
)engine=INNODB;
-- 5)删除表(灵魂拷问)
drop table if exists `t_student`;
-- 6)修改表 - 添加字段、删除字段、修改字段名称和类型
-- a.删除字段
alter table `t_student` drop `stu_birth`;
-- b.添加字段
alter table `t_student` add `stu_addr` varchar(5) comment '地址';
-- c.修改字段:alter table 表名 change 原字段名 新字段名 新字段类型 新的约束 comment '说明';
-- 注意:新的字段名和新类型必须写
alter table `school`.`t_student` change `stu_gender` `stu_sex` CHAR(1) default '男' COMMENT '性别';
alter table `school`.`t_student` change `stu_name` `name` varchar(4);
-- MySQL常用数据类型:
-- 数字:int(整数)、decimal(小数)
-- 字符串类型:char(N)、varchar(N)
-- 布尔:boolean、tinyint
-- 时间:date、timestamp
-- 常用约束:
-- 不为空:not null
-- 设置默认值:default(默认值)
-- 唯一的:unique
-- 自动增长:auto_increment
-- 2.DML
-- 1)插入数据:
use school;
insert into t_student values(101,'余婷','女','重庆开县');
insert into t_student values(102,'小明','男','四川成都');
insert into t_student(stu_id, `name`, stu_addr) values (103, '张三','四川成都');
insert into t_student(`name`, stu_addr, stu_id) values ('李四', '北京朝阳区', 104);
insert into school.t_student(stu_id, `name`, stu_sex, stu_addr) values
(105, '娜美', '女', '广东深圳'),
(106, '山治', '男', '辽宁大连'),
(107, '乌索普', '男', '内蒙'),
(108, '路飞', '男', '四川德阳');
-- 2)删除数据
-- sql的条件语句:
-- where 字段=值
-- where 字段>值/字段<值/字段>=值/字段<=值
-- where 字段 in (值1, 值2, , ...)
-- where 字段 between 值1 and 值2
delete from school.t_student where stu_id=101; -- 删除学号是101的记录
delete from school.t_student where stu_id>105; -- 删除学号大于105的记录
delete from school.t_student where stu_id in (102, 105 ,107); -- 删除学号是102,105,107的记录
delete from school.t_student where stu_id between 106 and 109; -- 删除学号在106到109之间的记录
-- 3)修改数据
update school.t_student set `name`='张三丰' where stu_id=102;
update school.t_student set `name`='小花', stu_sex='女' where stu_id=103;
-- 3.DQL
-- 查询整个表中所有的数据:select * from 表名;
-- 查询指定列中所有的数据:select 字段1,字段2,... from 表名;
-- 查询满足条件的所有列的数据:select * from 表名 where 条件;
-- 查询满足条件的指定列的数据:select 字段1,字段2,... from 表名 where 条件;
select * from school.t_student; -- 查整个表中所有的记录
select `name` from school.t_student;
select `name`, stu_addr from school.t_student;
select * from school.t_student where stu_id<105;
select stu_id,`name` from school.t_student where stu_id<105;
a’a