MySQL 目录结构

MySQL 的目录结构 描述
bin<目录> 所有 mysql 的可执行文件,如:mysql.exe
MySQLInstanceConfig.exe 数据库的配置向导,在安装时出现的内容
data<目录> 系统必须的数据库所在的目录
my.ini 文件 mysql 的配置文件,一般不建议去修改。

数据库管理系统

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理 系统访问数据库中表内的数据。

数据库管理系统、数据库和表的关系

数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体 User 的数据。
数据库管理系统、数据库和表的关系如图所示:

结论:

  1. 一个数据库服务器包含多个库
  2. 一个数据库包含多张表
  3. 一张表包含多条记录

SQL 语句分类

  1. Data Definition Language (DDL 数据定义语言) 如:建库,建表
  2. Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操作增删改
  3. Data Query Language(DQL 数据查询语言),如:对表中的查询操作
  4. Data Control Language(DCL 数据控制语言),如:对用户权限的设置

MySQL 的语法

  1. 每条语句以分号结尾,如果在 SQLyog 中不是必须加的。
  2. SQL 中不区分大小写,关键字中认为大写和小写是一样的
  3. 3 种注释:
注释的语法 说明
–空格 单行注释
/* */ 多行注释
# 这是 mysql 特有的注释方式

DDL 操作数据库

Data Definition Language (DDL 数据定义语言)
 创建数据库
CREATE DATABASE 数据库名;
 判断数据库是否已经存在,不存在则创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
 创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
6.3 修改数据库
6.3.1 修改数据库默认的字符集
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

创建数据库

创建数据库的几种方式

# 直接创建数据库db1
create database db1;
# 判断是否存在,如果不存在则创建数据库db2
create database if not exists db2;
# 创建数据库并指定字符集为 gb
create database db3 default character set gbk;

修改数据库

# 将db3数据库的字符集改成 utf8
alter database db3 character set utf8;
# 删除数据库
drop database db2;
# 使用数据库
# 查看正在使用的数据库
select database();
use db4;

创建表

MySQL数据类型

类型 描述
int 整型
double 浮点型
varchar 字符串型
date 日期类型,格式为yyyy-MM-dd,只有年月日,没有时分秒

详细数据类型

# 创建 student表包含 id,name,birthday 字段
create table student (id int,name varchar(20),birthday date
);
# 查看表
# 查看某个数据库中的所有表
show tables;
# 查看表结构  查看 student 表的结构
desc student;
# 查看 student 的创建表 SQL 语句
show create table student;
# 创建一个 s1 的表与 student 结构相同
create table s1 like student;
desc s1;
# 直接删除表 s1 表
drop table s1;
# 判断表是否存在并删除s1表
drop table if exists s1;
# 为学生表添加一个新的字段 remark,类型为 varchar(20)
alter table student add remark varchar(20);
# student 表中的 remark 字段的改成 varchar(100)
alter table student modify remark varchar(100);
# 将 student 表中的 remark 字段名改成 intro, 类型 varchar(30)
alter table student change remark intro varchar(30);
# 删除student表中的字段intro;
alter table student drop column intro;
# 将学生表 student 改名成 student2
rename table student to student2;
# 修改字符集character set 字符集
# 将 student2 表的编码修改成 gbk
alter table student2 character set gbk;

DML 操作表中的数据

用于对表中的记录进行增删改查

插入记录

create table student
(id      int,name    varchar(20),age     varchar(20),sex     varchar(20),address varchar(20)
);
# 插入所有的列,向学生表中
insert into student (id, name, age, sex)
values (1, "孙悟空", 20, "男");
insert into student (id, name, age, sex)
values (2, "孙悟天", 16, "男");
# 向表中插入所有字段
# 插入所有列
insert into student
values (3, "孙午饭", 18, "男", "龟仙人洞中");
# 如果只插入部分列,必须写列名
insert into student # 报错
values (5, "孙午饭", 18, "男");

更新表记录

select *
from db4.student;
# 不带条件修改数据,将所有的性别改成女
update db4.student
set sex="女"
where id = 2;
# 带条件修改数据,将 id 号为 2 的学生性别改成男
update db4.student
set sex="男"
where id = 2;
# 一次修改多个列,把 id 为 3 的学生,年龄改成 26 岁,address 改成北京
update db4.student
set age=26,address="北京"
where id = 3;

删除表记录

# 删除表记录
# 带条件删除数据,删除 id 为 1 的记录
delete
from student
where id = 1;
# 不带条件删除数据,删除表中的所有数据
delete
from student;

DQL查询表数据

比较运算符

逻辑运算符


between关键字


# 查询所有的学生
select *
from db4.student;
# 查询 student 表中的 name 和 age 列
select name, age
from student;
# 使用别名
select name as 姓名, age as 年龄
from student;
# 查询学生来自于哪些地方
select address
from student;
# 去掉重复的记录
select distinct address
from student;
CREATE TABLE student3
(id      int,          -- 编号name    varchar(20),  -- 姓名age     int,          -- 年龄sex     varchar(5),   -- 性别address varchar(100), -- 地址math    int,          -- 数学english int           -- 英语
);INSERT INTO student3(id, NAME, age, sex, address, math, english)
VALUES (1, '马云', 55, '男', '杭州', 66, 78),(2, '马化腾', 45, '女', '深圳', 98, 87),(3, '马景涛', 55, '男', '香港', 56, 77),(4, '柳岩', 20, '女', '湖南', 76, 65),(5, '柳青', 20, '男', '湖南', 86, NULL),(6, '刘德华', 57, '男', '香港', 99, 99),(7, '马德', 22, '女', '香港', 99, 99),(8, '德玛西亚', 18, '男', '南京', 56, 65);
select *
from student3;
# 给所有的数学加 5 分
select math + 5
from student3;
# 查询 math + english 的和
select *
from student3;
select *, (math + english) as 总成绩
from student3;
# as 可以省略
select *, (math + english) 总成绩
from student3;
# 查询 math 分数大千 80 分的学生
select *
from student3
where math > 80;-- 查询 english 分数小千或等千 80 分的学生
select *
from student3
where english <= 80;-- 查询 age 等千 20 岁的学生
select *
from student3
where age = 20;-- 查询 age 不等千 20 岁的学生,注:不等千有两种写法
select *
from student3
where age <> 20;
select *
from student3
where age != 20;
# 查询 age 大千 35 且性别为男的学生(两个条件同时满足)
select *
from student3
where age > 35and sex = '男';
# 查询 age 大千 35 或性别为男的学生(两个条件其中一个满足)
select *
from student3
where age > 35or sex = '男';
# 查询 id 是 1 或 3 或 5 的学生
select *
from student3
where id = 1or id = 3or id = 5;
# 查询 id 是 1 或 3 或 5 的学生
select *
from student3
where id in (1, 3, 5);
# 查询 id 不是 1 或 3 或 5 的学生
select *
from student3
where id not in (1, 3, 5);
# 查询 english 成绩大千等千 75,且小千等千 90 的学生
select * from student3 where english between 75 and 90;
# 查询姓马的学生
select * from student3 where name like '马%';
select * from student3 where name like '马';
# 查询姓名中包含'德'字的学生
select * from student3 where name like '%德%';
# 查询姓马,且姓名有两个字的学生
select * from student3 where name like '马_';
show databases;
use db1;
create table student
(id   int,name varchar(20),age  int
)
show create table student;
desc student;
use db4;
# 查询所有数据,使用年龄降序排序
select *
from student3
order by age desc;
# 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序
select *
from student3
order by age desc, math asc;
# 查询学生总数
select count(id) as 总人数
from student3;
select count(*) as 总人数
from student3;
# 查询 id 字段,如果为 null,则使用 0 代替
select ifnull(id, 0)
from student3;
# 利用 IFNULL()函数,如果记录为 NULL,给个默认值,这样统计的数据就不会遗漏
select count(ifnull(id, 0))
from student3;
# 查询年龄大于 20 的总数
select count(*)
from student3
where age > 20;
# 查询数学成绩总分
select sum(math) # 总分
from student3;
# 查询数学成绩平均分
select avg(math) # 平均分
from student3;
# 查询数学成绩最高分
select max(math) # 最高分
from student3;
# 查询数学成绩最低分
select min(math) # 最低分
from student3;
# 按性别进行分组,求男生和女生数学的平均分
select sex, avg(math)
from student3
group by sex;
# 查询男女各多少人
# (1) 查询所有数据,按性别分组
# (2) 统计每组人数
select sex, count(*)
from student3
group by sex;
# 查询年龄大于 25 岁的人,按性别分组,统计每组的人数
# 1)    先过滤掉年龄小于 25 岁的人。
# 2)    再分组。
# 3)    最后统计每组的人数
select sex, count(*)
from student3
where age > 25
group by sex;
# 查询年龄大于 25 岁的人,按性别分组,统计每组的人数,并只显示性别人数大于 2 的数据
select sex, count(*)
from student3
where age > 25
group by sex
having count(*) > 2;
INSERT INTO student3(id, NAME, age, sex, address, math, english)
VALUES (9, '唐僧', 25, '男', '长安', 87, 78),(10, '孙悟空', 18, '男', '花果山', 100, 66),(11, '猪八戒', 22, '男', '高老庄', 58, 78),(12, '沙僧', 50, '男', '流沙河', 77, 88),(13, '白骨精', 22, '女', '白虎岭', 66, 66),(14, '蜘蛛精', 23, '女', '盘丝洞', 88, 88);
-- 查询学生表中数据,从第 3 条开始显示,显示 6 条。
select * from student3 limit 2,6;
-- 如果第一个参数是 0 可以省略写:
select * from student3 limit 5;
-- 最后如果不够 5 条,有多少显示多少
select * from student3 limit 10,5;

数据库表的约束

数据库表的约束

数据库约束的概述

约束的作用:

对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。

约束种类:

约束名 约束关键字
主键 primary key
唯一 unique
非空 not null
外键 foreign key
检查约束 check

主键约束

主键的作用

用来唯一标识数据库中的每一条记录

哪个字段应该作为表的主键?

通常不用业务字段作为主键,单独给每张表设计一个 id 的字段,把 id 作为主键。主键是给数据库和程序使用的,不是给最终的客户使用的。所以主键有没有含义没有关系,只要不重复,非空就行。
如:身份证,学号不建议做成主键

创建主键

  • 主键关键字: primary key
  • 主键的特点:
    1) 非空 not null
    2) 唯一
  • 创建主键方式:
  1. 在创建表的时候给字段添加主键
字段名 字段类型 PRIMARY KEY
  1. 在已有表中添加主键
    alter table 表名 add primary key(字段名);
# 创建表学生表st5,包含字段(id, name, age),将id作为主键
create table st5(id int primary key,name varchar(20),age int
);

删除主键

# 删除主键
## 删除st5表的主键
alter table st5drop primary key;
## 添加主键
alter table st5add primary key (id);

5.2.5 主键自增
主键如果让我们自己添加很有可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值
修改自增长的默认值起始值
默认地 AUTO_INCREMENT 的开始值是 1,如果希望修改起始值,请使用下列 SQL 语法

  • 创建表时指定起始值
  • 创建好以后修改起始值
create table st4
(id   int primary key auto_increment,name varchar(20)
) auto_increment = 1000;
select * from st4;
alter table st4 auto_increment=2000;
insert into st4 values (null, "liubei");
insert into st4(name)
values ("小乔");
insert into st4(name)
values ("大乔");
insert into st4
values (null, "周瑜");

DELETE 和 TRUNCATE 对自增长的影响

  • DELETE:删除所有的记录之后,自增长没有影响。
  • TRUNCATE:删除以后,自增长又重新开始。

唯一约束

什么是唯一约束: 表中某一列不能出现重复的值

唯一约束的基本格式

字段名 字段类型 UNIQUE

实现唯一约束

非空约束

  • 什么是非空约束:某一列不能为 null。

非空约束的基本语法格式

默认值

什么是默认值:

  • 疑问:如果一个字段设置了非空与唯一约束,该字段与主键的区别?
  1. 主键数在一个表中,只能有一个。不能出现多个主键。主键可以单列,也可以是多列。
  2. 自增长只能用在主键上
# 创建学生表st7,包含字段(id,name),name这一列设置唯一约束,不能出现同名的学生
create table st7(id int,name varchar(20) unique
);
insert into st7 values (1, "张三");
select *
from st7;
insert into st7 values (2, "张三"); # 报错
# 重复插入多个null,不存在重复问题
insert into st7 values (2,null);
insert into st7 values (3,null);create table st8(id int,name varchar(20) not null,gender char(1)
);
insert into st8 values (1, "zhangsan", "男");
insert into st8 values (2, null, "男"); # 报错
select * from st8;
create table st9(id int,name varchar(20),address varchar(20) default "广州"
);
# 添加一条记录使用默认地址
insert into st9 values (1, "lisi", default);
select * from st9;
insert into st9(id, name) values (2, "李白");
insert into st9 values (3, "李四光", "深圳");
# 添加一条记录,不使用默认地址

外键约束

单表的缺点

创建一个员工表包含如下列(id, name, age, dep_name, dep_location),id 主键并自动增长,添加 5 条数据

  • 以上数据表的缺点:
  1. 数据冗余
  2. 后期还会出现增删改的问题

解决方案:

INSERT INTO employee (NAME, age, dep_id) VALUES (‘李四’, 21, 1);
INSERT INTO employee (NAME, age, dep_id) VALUES (‘王五’, 20, 1);
INSERT INTO employee (NAME, age, dep_id) VALUES (‘老王’, 20, 2);
INSERT INTO employee (NAME, age, dep_id) VALUES (‘大王’, 22, 2);
INSERT INTO employee (NAME, age, dep_id) VALUES (‘小王’, 18, 2);
select * from employee;

  • 问题:当我们在 employee 的 dep_id 里面输入不存在的部门,数据依然可以添加.但是并没有对应的部门, 实际应用中不能出现这种情况。employee 的 dep_id 中的数据只能是 department 表中存在的 id
  • 目标: 需要约束 dep_id 只能是 department 表中已经存在 id
  • 解决方式: 使用外键约束

什么是外键约束

  • 什么是外键:在从表中与主表主键对应的那一列,如:员工表中的 dep_id
  • 主表: 一方,用来约束别人的表
  • 从表: 多方,被别人约束的表

创建约束的语法

  • 新建表时增加外键:
    [CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名)
  • 已有表增加外键:
  • 具体操作:

外键的级联

  • 出现新的问题:
  • 什么是级联操作:
    在修改和删除主表的主键时,同时更新或删除副表的外键值,称为级联操作
    级联操作语法 描述
  • ON UPDATE CASCADE 级联更新,只能是创建表的时候创建级联关系。更新主表中的主键,从表中的外键
    列也自动同步更新
  • ON DELETE CASCADE 级联删除
# 删除 employee 表,重新创建 employee 表,添加级联更新和级联删除drop table employee;
drop table employee;
# 创建从表employee并添加外键约束emp_depid_fk
# 多方,从表
create table employee
(id     int primary key auto_increment,name   varchar(20),age    int,dep_id int,constraint emp_depid_fk foreign key (dep_id) references department (id)on update cascade on delete cascade
);
-- 再次添加数据到员工表和部门表
insert into db4.employee(name, age, dep_id)
values ('张三', 20, 1);
INSERT INTO employee (NAME, age, dep_id)
VALUES ('李四', 21, 1);
INSERT INTO employee (NAME, age, dep_id)
VALUES ('王五', 20, 1);
INSERT INTO employee (NAME, age, dep_id)
VALUES ('老王', 20, 2);
INSERT INTO employee (NAME, age, dep_id)
VALUES ('大王', 22, 2);
INSERT INTO employee (NAME, age, dep_id)
VALUES ('小王', 18, 2);
# 删除部门表?能不能直接删除?
drop table department; # 报错
# 把部门表中 id 等于 1 的部门改成 id 等于 10
update department
set id=10
where id = 1;
select * from db4.employee;
select * from db4.department;
# 删除部门号是 2 的部门
delete from department where id=2;

数据约束小结

表与表之间的关系

表关系的概念

现实生活中,实体与实体之间肯定是有关系的,比如:老公和老婆,部门和员工,老师和学生等。那么我们在设计表的时候,就应该体现出表与表之间的这种关系!
表与表之间的三种关系
一对多:最常用的关系 部门和员工
多对多:学生选课表 和 学生表, 一门课程可以有多个学生选择,一个学生选择多门课程
一对一:相对使用比较少。员工表 简历表, 公民表 护照表

一对多

一对多(1:n) 例如:班级和学生,部门和员工,客户和订单,分类和商品
一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键

多对多

多对多(m:n) 例如:老师和学生,学生和课程,用户和角色
多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。

-- 创建旅游线路分类表 tab_category
-- cid 旅游线路分类主键,自动增长
-- cname 旅游线路分类名称非空,唯一,字符串 100
create table tab_category
(cid   int primary key auto_increment,cname varchar(100) not null unique
);-- 添加旅游线路分类数据:
insert into tab_category (cname)
values ('周边游'),('出境游'),('国内游'),('港澳游');select *
from tab_category;-- 创建旅游线路表 tab_route
/*
rid 旅游线路主键,自动增长
rname 旅游线路名称非空,唯一,字符串 100 price 价格
rdate 上架时间,日期类型
cid 外键,所属分类
*/
create table tab_route
(rid   int primary key auto_increment,rname varchar(100) not null unique,price double,rdate date,cid   int,foreign key (cid) references tab_category (cid)
);
delete from tab_route;
alter table tab_route auto_increment=1;
-- 添加旅游线路数据
INSERT INTO tab_route
VALUES (NULL, '【厦门+鼓浪屿+南普陀寺+曾厝垵 高铁 3 天 惠贵团】尝味友鸭面线 住 1 晚鼓浪屿', 1499, '2018-01-27', 1),(NULL, '【浪漫桂林 阳朔西街高铁 3 天纯玩 高级团】城徽象鼻山 兴坪漓江 西山公园', 699, '2018-02-22', 3),(NULL, '【爆款¥1699 秒杀】泰国 曼谷 芭堤雅 金沙岛 杜拉拉水上市场 双飞六天【含送签费 泰风情 广州往返 特价团】', 1699, '2018-01-27', 2),(NULL, '【经典•狮航 ¥2399 秒杀】巴厘岛双飞五天 抵玩【广州往返 特价团】', 2399, '2017-12-23', 2),(NULL, '香港迪士尼乐园自由行 2 天【永东跨境巴士广东至迪士尼去程交通+迪士尼一日门票+香港如心海景酒店暨会议中心标准房 1 晚住宿】', 799, '2018-04-10', 4);select *
from tab_route;/*
创建用户表 tab_user uid 用户主键,自增长
username 用户名长度 100,唯一,非空password 密码长度 30,非空
name 真实姓名长度 100 birthday 生日
sex 性别,定长字符串 1
telephone 手机号,字符串 11
email 邮箱,字符串长度 100
*/
create table tab_user
(uid       int primary key auto_increment,username  varchar(100) unique not null,password  varchar(30)         not null,name      varchar(100),birthday  date,sex       char(1) default '男',telephone varchar(11),email     varchar(100)
);-- 添加用户数据
INSERT INTO tab_user
VALUES (NULL, 'cz110', 123456, '老王', '1977-07-07', '男', '13888888888', '66666@qq.com'),(NULL, 'cz119', 654321, '小王', '1999-09-09', '男', '13999999999', '99999@qq.com');select *
from tab_user;
/*
创建收藏表 tab_favorite rid 旅游线路 id,外键date 收藏时间
uid 用户 id,外键
rid 和 uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次
*/
create table tab_favorite
(rid  int,date datetime,uid  int,
-- 创建复合主键primary key (rid, uid),foreign key (rid) references tab_route (rid),foreign key (uid) references tab_user (uid)
);-- 增加收藏表数据
INSERT INTO tab_favorite
VALUES (1, '2018-01-01', 1), --   老王选择厦门(2, '2018-02-11', 1), --    老王选择桂林(3, '2018-03-21', 1), --    老王选择泰国(2, '2018-04-21', 2), --    小王选择桂林(3, '2018-05-08', 2), --    小王选择泰国(5, '2018-06-02', 2); --    小王选择迪士尼
select *
from tab_favorite;

表与表之间的关系小结

数据库设计

数据规范化

什么是范式:

好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储,这些规则就称为范式。

三大范式:

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF,)其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。

1NF

概念:

数据库表的每一列都是不可分割的原子数据项,不能是集合、数组等非原子数据项。即表中的某个列有多个值时,必须拆分为不同的列。简而言之,第一范式每一列不可再拆分,称为原子性。

班级表

2NF

概念:

在满足第一范式的前提下,表中的每一个字段都完全依赖于主键。
所谓完全依赖是指不能存在仅依赖主键一部分的列。
简而言之,第二范式就是在第一范式的基础上所有列完全依赖于主键列。
当存在一个复合主键包含多个主键列的时候,才会发生不符合第二范式的情况。
比如有一个主键有两个列,不能存在这样的属性,它只依赖于其中一个列,这就是不符合第二范式。
第二范式的特点:

  1. 一张表只描述一件事情。
  2. 表中的每一列都完全依赖于主键

示例:

3NF:

概念:

在满足第二范式的前提下,表中的每一列都直接依赖于主键,而不是通过其它的列来间接依赖于主键。
简而言之,第三范式就是所有列不依赖于其它非主键列,也就是在满足 2NF 的基础上,任何非主列不得传递依赖于主键。所谓传递依赖,指的是如果存在"A → B → C"的决定关系,则 C 传递依赖于 A。因此,满足第三范式的数据库表应该不存在如下依赖关系:主键列 → 非主键列 x → 非主键列 y

示例:学生信息表

三大范式小结:

MySql基础语法-java学习相关推荐

  1. MySQL基础——DML语言学习\插入数据\删除数据\更新数据

    接上篇文章 MySQL基础--DDL语言学习 DML语言学习 Data Manipulation Language 数据操纵语言 主要包括表记录的插入(INSERT).更新(UPDATE).删除(DE ...

  2. 韩顺平 2021零基础学Java 学习笔记

    韩顺平 2021零基础学Java 学习笔记(1)(自用)_丨shallow丨的博客-CSDN博客_韩顺平java笔记 韩顺平 2021零基础学Java 学习笔记(2)(自用)_丨shallow丨的博客 ...

  3. java基础语法之学习武林秘籍入门版(由助手完成)

    在这本武侠版本的 Java 入门教程中,我们将会以一个武侠世界为背景来学习 Java 语言的基础知识.我们会介绍如何安装和配置 Java 开发环境,然后通过实例来学习 Java 的基础语法,包括变量. ...

  4. Mysql 基础语法应用

    第一章 MySQL基础介绍 1.数据库的基本概念数据库: DataBase 简称 DB作用: 用于永久性存储和管理数据的仓库 2.常见的数据库A.MySQL 简单的免费的数据库 ---> 现在学 ...

  5. MySQL基础——DDL语言学习\数据库的建立\MySQL数据类型\MySQL常见约束\表的增删改

    接上篇文章 MySQL基础--数据库和SQL概述\MySQL基本使用\DQL语言学习 DDL语言学习 Data Definition Language 数据定义语言 主要用于数据库和数据表的管理和操作 ...

  6. MySQL基础语法大全(尚硅谷)

    文章目录 一.为什么要学数据库 二.数据库的相关概念 DBMS DB SQL 数据库的好处 数据库相关概念 三.数据库存储数据的特点 四.初识MySQL 1.MySQL产品的介绍和安装 2.MySQL ...

  7. MySQL基础语法与JDBC

    文章目录 前言 (一)什么是SQL (二)什么是MySQL (三)MySQL的体系结构 ①连接层 ②服务层 ③可插拔存储引擎层 ④存储层 (四)MySQL的启动.停止.连接 一.基础知识 (一)基本术 ...

  8. MySQL基础语法总结

    MySQL基本语法 注:使用到的数据库表在文章末尾 文章目录 MySQL基本语法 基础查询 条件查询 排序查询 常见函数 分组查询 连接查询 基础查询补充 子查询 分页查询 联合查询 查询总结 插入 ...

  9. 黑马程序员 C++ 基础语法入门 学习记录

    基础语法入门 文章目录 一.初识C++ 1.1 新建项目 1.2 编写项目 1.3 运行程序 1.4 注释 1.5 变量 1.6 常量 1.7 关键字 1.8 标识符命名规则 二.数据类型 2.1 整 ...

最新文章

  1. ZOJ 2334 HDU 1512 Monkey King
  2. mybatis开发常见SQL使用手册
  3. Angular 应用 bootstrapModule 映射的 app Component 的初始化逻辑
  4. 苹果电脑怎么删除软件_误格式化,删除文件怎么恢复?3款最好用的数据恢复软件推荐...
  5. docker镜像打包save,载入load,启动run
  6. Python解决 Cannot uninstall 'pyparsing' 问题
  7. 3-37Pytorch与torchvision
  8. v-for和v-if一起使用的坑。。。
  9. BZOJ2555:SubString(SAM,LCT)
  10. 《啊哈!算法》.pdf
  11. STM32F429之DCMI 数字相机接口
  12. 1288元,苍井空“空系列”内衣微博开卖
  13. MybatisPlus联合查询
  14. ROS源代码之Publish底层实现(一)
  15. mysql spider引擎安装_【转】MySQL之Spider存储引擎原理详解
  16. JavaScript键盘按键侦测
  17. 2022-2028年全球与中国辐射屏蔽纺织品行业深度分析
  18. 每天盯着桌面,送你几个4k、8k壁纸资源的网站,请收好
  19. VR智慧家装,给业主带来别样的家装体验!
  20. 配置eclipes中java、javascript的自动代码提示

热门文章

  1. 血族服务器暂时无法登录,天之炼狱归来服务端7.01架设教程问题解答
  2. greasemonkey_Firefox中Greasemonkey用户脚本的初学者指南
  3. 经典再读 | 认知控制和失匹配对N2成分的影响
  4. 基于YOLOV3的通用物体检测项目实战---(5)利用DarkNet框架进行YOLOV3模型训练实操(笔记)
  5. Word2Vec教程 - Skip-Gram模型
  6. C++多态的好处和作用(用实例说话)
  7. 2022年牛客多校第三场补题记录
  8. htc a620d 刷android,千元WP8双核智能机 HTC 8S电信版评测
  9. Ubuntu Linux 双网卡 局域网 共享上网 很简单的操作
  10. [zz][ZOJ Monthly]October 2008解题报告