(本文章只适用于初学者)
1、数据库是什么
2、RDBMS
3、SQL
4、My SQL
5、服务端与客户端
5.1、服务端的操作
5.2、客户端的操作
6、数据类型与约束
7、数据库的备份与恢复
8、SQL语言
8.1、查询编辑器
8.2、数据表操作
8.3、数据操作-增删改
1.数据库是什么
数据库是存储有组织(结构化)的数据,为了高效的查询。
2.RDBMS
关系型数据库系统
关系型数据库的核心:用表存储数据
行:一条记录,代表一个事物信息
列:字段,代表一个事物的某一个特征(属性)
表:存储同一种事物的集合
仓库:由n个表组成
3.SQL
结构化查询语言,操作关系型数据库
不区分大小写,select,SELECT,SELEct
4.My SQL
由瑞典My SQL AB公司开发,后来被sun公司收购,sun公司后来又被oracle公司收购,目前属于oracle旗下产品
开源、免费、支持多平台。
5.服务端与客户端
MySQL是服务端,提供操作数据的服务
Navicat是客户端,提供界面,先链接服务端,操作mysql的数据
5.1 服务端的操作
找到mysql的服务。控制面板-管理工具-服务
MySQL有启动、停止、重启服务
5.2 客户端的操作
• 链接服务端
MySQL必须是已经启动状态
需要IP,端口,用户名,密码
• 数据库操作
-新建仓库
-使用仓库
-编辑仓库
-删除仓库
• 数据表操作
-新建表
-修改表(重命名)
-设计表
(添加字段) 
(修改字段)
(删除字段)
-删除表
• 数据的操作
-增
-删
-改
-查(打开表)
想在关系型数据库存数据,先有仓库,再有表,再存数据
6.数据类型与约束
数据类型
   整数:int默认有符号(可以存负数),无符号(不能存负数),长度没有意思
  小数:decimal,(5,3),整数占2位,小数点后占3位
  字符串:varchar,一个数字或一个字母或一个标点符号或一个中午占一个字符
  日期时间:datetime,格式:2020-0402 00:00:00
唯一且不能为空,通常一个表会有一个ID字段,设置为主键,通常设置为自动递增(从1开始自动增长),设置为无符号
  ID字段:主键,无符号的int,自动递增
不填写值,显示为(null),是空,字符串不是空
  惟一(unique):此字段的值不允许重复,SQL语法会提到
  默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准,给varchar或datetime字段设置默认值时,必须用英文引号
  外键:(foreign key):维护两个表之间的关联关系,SQL语法会提到
7.数据库的备份与恢复
备份
右键点击某个仓库-转储SQL文件-结构和数据
恢复
右键点击某个仓库-允许SQL文件-选择之前备份的文件
8.SQL语言
8.1  查询编辑器
某个仓库-查询-右键点击-新建查询
•  每一天SQL语句结尾需要一个英文分号
• 注释SQL语句:ctrl+/
         取消注释:ctrl+shift+/
8.2  数据表操作
创建表
语法:
create table 表名(字段名  类型  约束, 字段名  类型  约束,
.......)
例:创建学生表,字段要求如下
姓名(长度为10)
create table students(name varchar(10));
例:创建学生表,字段要求如下
姓名(长度为10),年龄
create table students2(name varchar(10),age int);
例:创建学生表,字段要求如下
姓名(长度为10),年龄,身高(保留小数点2位)
要一个主键字段:ID,无符号的整数,主键,自动递增
create table students3(
id int unsigned primary key auto_increment,
neme varchar(10)
age int,
height decimal(5,2));
删除表
语法:
语法一:drop table 表名
语法二:drop  table exists 表名
例:删除学生表
drop table students;
(如果表不存在,会报错)
drop table exists students2;
(如果表不存在,不会报错)
8.3  数据操作-增删改
增
添加一行数据
语法一:所有字段设置值,值的顺序与表中字段顺序相对应
insert into 表名values (值1,值2)
例:插入一个学生,设置所有字段信息
insert into students3 values(1,'亚瑟',12,123.44);
主键列是自动增长,插入是需要占位,通常使用0或者default或者null来占位
insert into students3  values (0,'亚瑟',12,123.2);
insert into students3  values (default,'亚瑟',12,123.2);
insert into students3  values (null,'亚瑟',12,123.2);
语法二:部分字段设置值,值得顺序与给出的字段顺序对应
insert into 表名(字段1,字段2)values(值1,值2);
例:插入一个学生,只设置姓名
insert into students3(name) values ('鲁班大师智商250')
插入一个学生,只设置姓名和年龄
insert into students3 (age,name)values (88,'夏侯惇')
 
 
添加多行数据
语法一:写多条insert语句,语句之间用英文分号隔开
insert into students3  values (default,'亚瑟',12,123.66);
insert  into  students3 (name)values('黄忠');
insert  into  students (age,name)values (42,'孙策');
语法二:写一条insert语句,设置多条数据,数据之间用英文逗号隔开
insert into students3 values(null,'钟无艳',11,221),(null,'老夫子',22,331),(null,'煤气罐',33,441);
 
insert into students3(age,name)values (233,'鲁班'),(244,'鲁班2'),(211,'鲁班6');
插入数据时,设置值为空字符串
insert into students3(age,name)values(111,'');    (第二个值我没有填写即是null(为空))