0
点赞
收藏
分享

微信扫一扫

mysql基础复习

悄然丝语 2022-04-22 阅读 33
dbamysql

计算机=硬件(cpu,内存,硬盘...)+软件(软件系统-操作系统+系统软件-应用软件)

数据库:数据的仓库,RDBMS - relationship database management system
                             关系型    数据库     管理      系统(软件)

张三   李四     
日常数据存储: 文件的形式存储数据--弊端  19岁
1.格式问题  :查找数据时不便
2.大小问题  :查找数据时不便
3.效率问题  :查找数据时不便

1EB=1024PB 1PB=1024TB 1TB=1024GB

数据库软件分类:
 i.按数据存储的大小划分
   大型数据库 :支持存储PB级的数据  oracle(神谕-甲骨文),db2(IBM)
   中型数据库 :支持存储TB级的数据  mysql,sqlserver(微软)
   小型数据库 :支持存储GB级的数据  sqlite,access(微软)

 ii.按数据存储的位置划分
   硬盘存储 :sql数据库-关系型数据库
   内存存储 :no(not only)-sql数据库 -非关系型数据库,redis,mongodb

mysql : 一款服务型关系型数据库管理系统(软件)
服务型:软件由客户端和服务端两部分组成, 客户端发送正确的指令(sql)
      控制服务端工作的

sql :structured query language
      结构化     查询   语言
结构化: 数据存储的结构方式  - table
    table :由行和列组成的一个二维的矩阵
    行: 必须存储一条完整的数据记录
    列: 必须存储相同类型的数据值

我                饭店
客户              服务

我    说红烧肉    饭店  --> 正常提供服务
我    说洗桑拿    饭店  --> 不搭理我


关系型:
表内关系(默认):表内的数据与数据之间存在关联关系
表间关系(重点):数据表与数据表之间存在的关联关系,一对一,一对多,多对多

计划生育:        父亲表        子女表
一对一             1      :      1

放开二胎:        父亲表        子女表
一对多             1      :      n

认干爹:           爹表         子女表
多对多             n      :      n


E-R模型:
E :entry 实体,数据表中的每一条记录都是现实中真实存在的,设计数据
   表格是参照实体的重要属性进行设计
R :relationship 关系,实体类和实体类之间存在的关联关系,设计多表关联
   时参照实体的共有属性

数据库设计的三范(规范)式:
1.列不可再拆分: 为了减少数据的冗余            -- 单列
2.唯一标识 :  为了保证行数据的完整有效性      -- 多列
3.引用唯一标识: 为了保证关联表的数据完整有效性 --多行多列

mysql 层级架构: database

DBMS层:数据库管理软件层,负责管理多个数据仓库:安装,卸载
     安装的方式: 1.图形安装   2.免安装版安装
     c:\soft\工具\mysql\mysql5.6.17.zip
        bin --> cmd

      mysql.exe-客户端          mysqld.exe-服务端
      安装: 
      mysqld.exe -install      :-指定 安装 mysql服务端程序
      net start mysql          :启动mysql软件服务

      登录:
      mysql.exe -u root -p     :u-username p-password   root-默认账户名
              --   客户端指定账号和密码登录
      exit                     :退出登录

      卸载:
      net stop mysql           :关闭mysql软件服务
      mysqld.exe -remove       :指定移除mysql服务端程序

      查询数据库版本:mysql -version 进入mysql查询
      
DB层:数据仓库层,负责管理多个数据表格 : 增,删,改,查
    -- I.查询数据库的语法:
        show databases;       显示软件中所有的数据仓库
        show create database 库名;   显示指定数据库的创建语句
         -- show create database test;

    -- II.增加数据库的语法:  中括号表示里面的内容是可选择添加
        create database 库名 [库选项];
          -- create database taobao;
          -- create database jingdong character set gbk;

    -- III.修改数据库的语法: mysql5.1版本(之后不让改库名)--分界版
        alter database 库名 character set 新编码;
          -- alter database taobao character set gbk;
          -- alter database jingdong character set utf8;

    -- IV.删除数据库的语法: 了解
        drop database 库名;     drop-废弃,遗弃
          -- drop database taobao;
          -- drop database jingdong;
      总结: show ,create ,alter ,drop
          语法:  倒装句


CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */
 创建   数据库    库名    代号    默认     字符集  设置 
符号:
`` :反单引号,着重号,强调引号里面的内容是用户自定义的内容
    自定义: 字母,数字,下划线,且数字不开头
    该符号是服务器自动添加的,用于区分系统和用户
/*注释的内容*/:注释,解释说明
! :声明,说明

字符集:一套编码规则,ASCII码,GBK码,UTF8码(万国码格式转换码),LATIN1(拉丁文)

information_schema  :信息(结果数据存放的库)库
mysql               :核心功能库
performance_schema  :附加功能库
test                :测试库

-- 注: 先选择操作的数据仓库  --> use 库名;

TABLE层:数据表格层,负责管理多个字段信息(列名) :增,删,改,查
     -- I.查询数据表格的语法:
        show tables; 
        show create table 表名;   
         -- show create table dept; 

     -- II.增加数据表格的语法:
        create table 表名(表的结构)[表选项];

     -- III.修改数据表格的语法:表名,表结构,表选项
        i.修改表名的语法: alter table 表名 rename to 新表名;
                          -- alter table t1 rename to t2;
        ii.修改表选项的语法: alter table 表名 engine=新引擎 charset=新编码;
                          --alter table t2 engine=myisam charset=gbk;
        iii.修改表结构的语法: 增,删,改,查
            1.查询列结构:  desc 表名;   describe -描述
            2.增加列结构:  alter table 表名 add 列名 数据类型 [约束] [位置];
                      #t2表新增整数列a  alter table t2 add a int;
                      #t2表第一列新增整数列b  alter table t2 add b int first;
                      #t2表第三列新增整数列c  alter table t2 add c int after bh;
            3.删除列结构:  alter table 表名 drop 列名;
                      -- alter table t2 drop a;
                      -- alter table t2 drop b;
                      -- alter table t2 drop c;
            4.修改列结构: modify,change
              alter table 表名 modify 列名 [新]类型 [新约束] [新位置];
              alter table 表名 change 列名 [新]列名 [新]类型 [新约束] [新位置];
              # 修改t2表sr列类型为datetime
                alter table t2 modify sr datetime;
              # 修改t2表sr列类型为date
                alter table t2 change sr sr date;
              # 修改t2表sr为birth,类型为datetime,位置到最后一列
                alter table t2 change sr birth datetime after gz;

     -- IV.删除数据表格的语法:
        drop table 表名;
          --   drop table t2;

create database db1 character set utf8;   -- 创建数据库db1
use db1;                                  -- 选择数据库db1
create table t1(
bh int,
mz varchar(20),
xb bit,
sr date,
gz decimal(7,2)
)engine=innodb charset=utf8;

        表的结构: 列名 数据类型 [约束] [注释]
    数据类型: 
           1.数字类型
             int :整数类型
             float:单精度浮点小数
             double:双精度浮点小数
             decimal(总位数,小数位数):定点小数  sal decimal(7,2) -- 55555.55 -- 00555.00
           2.日期类型
             datetime : 日期时间  年 月 日 hh:mm:ss
             date : 日期
             time : 时间
             timestamp: 时间戳,1970年1月1日整点到此刻经历的秒数
           3.字符串类型 ,引号引起来的各个国家的各种文字符号
             char(长度值):固长字符串,char(5) --"a" -- 消耗5个字符的内存
          varchar(长度值):变长字符串,varchar(5)--'a' -- 只消耗1个字符的内存
           4.布尔类型
             bit :二进制位,值只有两个 0,1  -->通常是用来表示两种状态
                     -- 男女,胖瘦,对错,高低,是否...
             
        表选项:ENGINE=InnoDB DEFAULT CHARSET=utf8;  charset=character set 字符设置
               engine : 引擎,发动机,产生动力和加速的
               默认的引擎:innodb-在不,大B? ,myisam-我的阿萨姆

CREATE TABLE `dept` (
  `deptno` int(4) NOT NULL COMMENT '部门编号',
  `dname` varchar(14) NOT NULL COMMENT '部门名称',
  `loc` varchar(13) DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`deptno`),
  UNIQUE KEY `dname` (`dname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

FIELD层:字段信息层,负责描述该列具体存放的数据(DATA)-增,删,改,查(重点)
     I.查询数据的基本的语法:
       select 列名 from 表名 [where 条件];
       select 列名          3.选择列上存放的数据值       找什么
       from 表名            1.定位数据源                从哪找
       where 条件;          2.筛选数据,提升查询的效率    怎么找

       * :通配符,匹配所有的列
       select * from 表名;

     II.增加数据的语法:
       insert into 表名(列1,列2,...) values(值1,值2,...);

       # 全列插入: 每列都插入了数据值,全列插入实际可以省略字段信息的
       insert into t1(bh,mz,xb,sr,gz) 
       values(1,"tom",1,'1990-1-1',12345.67);

       #省略了字段信息必须按照建表顺序给值
       insert into t1
       values(2,'lucy',0,'1997-1-1',23456.78);

       # 缺省插入: 只给部分列插入数据值,没给值的列会用null值填充
       insert into t1(bh,mz,xb)
       values(3,'jack',1);

       # 同时插入多条数据记录
       insert into t1(bh,mz) values(4,'lili'),(5,'tom1'),(6,'tom2');

     III.修改数据的语法:
       update 表名 set 列1=值1,列2=值2,... [where 条件];
       -- 修改t1表中tom2的工资为8888,性别为1
       update t1 set gz=8888,xb=1 where mz='tom2';
       -- 修改t1表所有人的生日为 1999-9-9
       update t1 set sr='1999-9-9';

     IV.删除数据的语法:
       delete from 表名 [where 条件];
       -- 删除t1表中tom2的数据
       delete from t1 where mz='tom2';

     删除lucy的工资 :update t1 set gz=null where mz='lucy';
   
     
###练习:
1. 创建数据库newdb并使用, 里面创建员工表t_emp只有name字段 引擎为myisam 字符集   为gbk
2. 修改表名为emp
3. 修改引擎为innodb 字符集为utf8
4. 添加部门编号字段deptno 在最后面
5. 添加员工编号 empno在最前面
6. 添加salary字段在name的后面
7. 修改salary字段名字为sal,把sal放在empno的后面
8. 删除sal字段 
9. 删除表
10.删除数据库

###练习:
1.创建hero表如果存在则先删除再创建, id 姓名name 类型type 金币money
2.插入以下数据   1 诸葛亮 法师 18888 , 2 孙悟空 打野 18888 ,3 小乔 法师 6888  ,4 黄忠 射手 8888, 5 刘备 战士 6888
3.修改所有18888的为28888
4.修改所有打野为刺客
5.删除价格为6888的英雄
6.修改孙悟空为猪八戒
7.删除id为1,2,3的英雄
8.修改所有英雄类型的为已阵亡
9.删除所有数据
10.删除表

数据库备份

mysqldump -uroot -p test>d:\\test2.sql

drop database test;      #删除测试库   

create database test character set utf8;   #创建数据库并设置字符集
use test;
source d:\test.sql         #恢复数据库

show create table emp;
desc emp;
select * from emp;     #查看是否有乱码 (字符集问题)

举报

相关推荐

基础型复习

Mysql的复习

java基础复习篇

Java基础再复习

Java基础复习:注解

MySQL个人复习总结

牛客MySQL复习

0 条评论