数据库篇1

数据库篇1

1.1、什么是数据库

数据库 (DB DateBase)

概念:数据仓库,软件,安装在操作系统(Window Linux max…)之上

作用:存储数据。管理数据

2.1、数据库分类

关系型数据库:

  • MySQL, Oracle,Sql Server DB2 Sql, SQlite
  • 通过表和表之间,行和列之间进行数据的存储

非关系型数据库 (NoSQL)Not Only

  • Redis,MongDB
  • 对象存储,通过对象自身的属性来决定

3、DBMS 数据库管理系统

  • 数据库管理软件。科学有效的管理我们的数据,维护和获得数据
  • MySQL,数据库管理系统

4、MySQL简介

前身:由瑞典My SQL AB 公司开发

现在:属于Oracle旗下产品

MySQL 是最流行的关系型数据库管理系统关系型数据库管理系统之一

开源数据库软件 体积小、速度快、总体拥有成本低。

中小型网站或者大型网站,集群

企业用到最多的是5.7版本数据库(稳定) 8.0也热门

1、安装建议:尽量不要使用exe安装,因为卸载的时候比较麻烦,会往注册表走。

2、尽可能使用压缩包安装

5、安装MySql教程

1、压缩版的安装教程如下:

2、解压安装包到相对的路径,

3、去我的电脑高级属性环境变量的path 在里面增加一个刚才安装包的bin目录 全部路径

4、新建mysql配置文件 ini后缀

//目录一定要换成自己的

[mysqld]
basedir=E:\Environment\mysql-5.7.19
datadir=E:\Environment\mysql-5.7.19\data
port=3306
skip-grant-tables

5、以管理员模式启动CMD,运行所有的命令。再打开MySQL文件的bin目录

6、然后输入: cd /d E:\Environment\mysql-5.7.19\bin (访问bin目录)

7、然后再输入:

mysqld -install               -- 安装数据库或者安装Mysql的服务

8、然后再输入:

mysqld --initialize-insecure --user=mysql          -- 初始化数据文件)会在mysql-5.7.19目录下自动生成一个data文件夹

9、然后启动Mysql,进去修改密码:

net start mysql       -- 启动数据库

10、启动成功之后通过命令行进入Mysql:

mysql -u root -p    -- 进入数据库

进入mysql管理界面 (密码可为空) 千万千万要记住-p后面不需要加空格。千万千万要记住-p后面不需要加空格。千万千万要记住-p后面不需要加空格!!!然后就显示输入密码;不需要输入;直接回车。

进入mysql>界面之后更改root密码:

mysql>:update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost';  -- 修改sql密码

11、最后输入

flush privileges;  -- 刷新权限

12、修改my.ini文件,删除最后一句,或者注释掉 #skip-grant-tables 在前面加个#

13、重启mysql即可正常使用

net stop mysql (停止mysql)

net start mysql (启动mysql)

14、进入mysql的两种方式:mysql -u root -p (回车加密码 现在密码是123456)
mysql -u root -p123456 (第二种在-p后面加密码)

15、最后附加一个命令:sc delete mysql; – 清空数据库信息

注:下面的是在sqlyog工具下进行操作的
安装sqlyog之后,激活码百度自己找。然后点击新建

密码:123456

数据库默认端口3306

6、连接接数据库

​ 1.命令行连接:以管理员身份打开CMD

  ```sql
  mysql -user -p123456      --连接数据库
  -- -------------------------------------------------------
  show databases;        -- 查看所有的数据库
  use school;        -- 切换数据库名  use切换!!
  show tables;         -- 查看数据库中所有的表
  describe student;   -- 查看数据库表中的信息
  show databases;     -- 创建一个数据库


​ – 所有的语句都是分号(;)结尾
​ ```

2、数据库xxx语言 (将要学习的东西)

DDL 定义

DML 操作

DQL 查询

DCL 控制

7、操作数据库

操作数据库 > 操作数据库中的表 > 操作数据库中表的数据 >

Mysql关键字不区分大小写

7.1 操作数据库

1、创建数据库

CREATE DATABASE westos; -- 创建数据库
CREATE DATABASE IF NOT EXISTS westos; -- 创建数据库  中间的IF NOT EXISTS 可选  用在数据库中已经创建了westos数据库;还想用这个名的时候用、

2、删除数据库

DROP DATABASE hello;       -- 删除hello这个数据库;没有这个数据库就会报错。
DROP DATABASE IF EXISTS hello;       -- 也是删除hello这个数据库.语句不一样,意思是 如果有这个hello数据库就会删除。

3、使用数据库

-- tab 键的上面那个`  叫着重号。如果表明或者字段是一个特殊字符,就需要带``
USE `school`
SELECT USER FROM student;   -- 这句sql语句的意思是 我想从student这个表中差user的信息,但是可以看到 user是高量的,这时候就应该用着重号 ``
SELECT `user` FROM student;   -- 用这个

4、查看数据库

SHOW DATABASES;      -- 查看所有的数据库

学习思路:

1、对照sqlyog可视化历史记录查看sql

2、固定的语法或者关键字必须要强行记住!

8、数据库表的列类型

数值

            - tinyint       十分小的数据        一个字节
            - smallint            较小的数据        2个字节
            - mediumint        中等大小的数据          3个字节
            - **int                     标准整数          4个字节**               常用的
            - big                   较大的数据         8字节
            - float                浮点数                 4字节
            - double            浮点数                8字节
            - decamal         字符串形式浮点数             金融计算的时候,一般使用decamal

字符串

  • char 字符串固定大小 0~255
  • varchar 可变字符串 0-65535 常用的变量 一把都是用varchar去保存
  • tingtext 微型文本 2^8-1
  • text 文本串 2^16-1

时间和日期

  • java.util.Date
  • date YYY-MM-DD 日期格式
  • time HH:mm:ss 时间格式
  • datatime YYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳,1970.1.1到现在的毫秒数! 也较为常用
  • year 年份表示

null

  • 没有值 未知

  • 注意:不要使用null进行运算 运算了结果也是为null

    9、数据库的字段属性(重点)

Unsigend:

  • 无符号的整数
  • 声明了该列不能声明为负数

zerofill:

  • 0填充 比如写了一个长度为10的int类型 但是只写了一个1,它会显示0000000001;意思就是不足的位数使用0来填充

自增:

  • ​ 通常理解位自增,自动在上一条的基础上+1;(默认)
  • 通常用来设置唯一的主键~index;必须是整数类型
  • 可以自定义设置主键自增的起始值和步长

非空 Null not null

  • 假设设置为 not null,如果不给它赋值。就会报错!
  • Null,如果不填写值,默认就是null!

默认

  • 设置默认的值!
  • sex,默认值为 男,如果不指定该列的值;则会有默认的值
-- //拓展:每一个表,都必须存在一下五个字段;未来做项目用的,表示一个记录存在的意义。

--     id    主键

--     version  乐观锁

--     is_delete   伪删除

--     gmt_create        创建时间

--     gmt_update       修改时间

10、代码方式创建表

-- 目标:创建一个school的数据库
-- 创建学生表(列,字段);使用SQL创建
-- 学号 int  登录密码varchar(20) 姓名 性别varchar(2)  出生日期(datatime),家庭住址,email
-- 注意点:使用英文(),表的名称 和字段  尽量使用 ` ` 括起来	
-- AUTO_INCREMENT 自增单词	
-- 字符串使用单引号或者双引号括起来
-- 所以的语句后面加英文逗号,最后一个字段不用加	
-- DEFAULT默认
-- PRIMARY KEY 主键  一般一个表只有一个,唯一的
CREATE TABLE IF NOT EXISTS `student`(
  `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` VARCHAR(30) NOT NULL DEFAULT'匿名' COMMENT'姓名',
  `pwd` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
  `sex` VARCHAR(2) NOT NULL DEFAULT'男' COMMENT'性别',
  `birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
  `address` VARCHAR(100) DEFAULT NULL COMMENT'家庭住址',
  `email` VARCHAR(50) DEFAULT NULL COMMENT'邮件',
  PRIMARY KEY(`id`)
  
)ENGINE=INNODB DEFAULT CHARSET=utf8




-- 常用命令
SHOW CREATE DATABASE school       -- 查看创建数据库的语句
SHOW CREATE TABLE DATABASE student    -- 查看student数据表的定义语句	
DESC student              -- 显示表的结构

11、关于数据库引擎MYISAM 和INNODB的区别

  • INNODB 默认使用
  • MYISAM 早些年使用的
MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约为2倍
  • 常规使用操作
    • MYISAM 节约空间 速度较快
    • INNODB 安全性高 支持事务的处理,支持多表多用户操作

在物理空间存在的位置(data)

所有的数据库文件都存在data目录下

本质还是文件的存储!

  • MySQL引擎在物理文件上的区别
    • INNODB在数据表中只有一个*.frm文件,以及上级目录ibdata1文件
    • MYISAM 有三个。

设置数据库表的字符集编码

  • CHARSET=utf8
  • 不设置的话。会是数据库默认的字符集编码 (反正不写的话就是不支持中文)
  • 在my.ini中配置默认的编码
character-set-server=utf8 -- 在my.ini中配置默认的编码

12、修改和删除表

  • 修改表明
ALTER TABLE student RENAME teacher      -- ALTER TABLE student(旧表明) RENAME teacher(新表明) 
  • 增加表的字段

    ALTER TABLE student ADD age INT(11)       -- 增加表的字段  ALTER TABLE 表明 add 字段名 列属性
    
    • 增加表的字段

      ALTER TABLE student MODIFY age VARCHAR(11)     -- 修改约束
      ALTER TABLE student CHANGE age age1 VARCHAR(11) -- 字段重命名
      
  • 删除表的字段

    ALTER TABLE student DROP age1      -- 删除表的字段	
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值