zoukankan      html  css  js  c++  java
  • MySQL基础学习

    1. 初识MySQL

    JavaEE、前端(页面:展示数据)、后台(连击点:JDBC连接前端)、数据库(存数据)

    1.1 为什么要学数据库

    1. 岗位需求
    2. 大数据时代
    3. 被迫需求,去IOE
    4. 数据库是所有软件体系中最核心的存在 DBA

    1.2 什么是数据库

    数据库DB、DataBase

    概念:数据仓库、软件、安装在操作系统之上(windows、linux、mac)

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

    1.3 数据库分类

    关系型数据库(SQL)

    • MySQL、oracle、sql server、 DB2、 SQLlite
    • 通过表和表之间,行列之间的关系进行数据存储(学院信息表、考勤表)

    非关系型数据库(NoSQL)not only

    • Redis、MongoDB
    • 非关系型数据库,对象存储,通过对象的自身属性来决定

    DBMS(数据库管理系统)

    数据库管理软件,科学有效管理我们的数据,维护和获取数据

    1.4 新建数据库

    这里用到了Navicat 可视化工具

    image-20210302143016633

    1.5 新建数据表

    image-20210302143346518

    1.6 命令行基本命令

    mysql -uroot -p****  --连接数据库
    update mysql.user set authentication_string=password('***') where user='root' and Host='localhost'; -- 修改用户密码
    flush privileges; -- 刷新权限
    ---------------------------
    -- 所有语句都是用;结尾
    show databases; -- 查看所有数据库
    mysql > use school -- 切换数据库 use 数据库名
    Database changed
    show tables; -- 查看数据库中所有的表
    describe student; -- 显示数据库中所有表的信息
    create database westos; -- 创建一个数据库
    exit; -- 退出连接
    
    -- 单行注释
    /*
    多行注释
    */
    

    1.7 数据库xxx语言 (CRUD、 CV、 API)

    DDL定义、DML操作、DQL查询、DCL控制

    2. 操作数据库

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

    mysql关键字不区分大小写

    2.1 创建数据库

    CREATE DATABASE [IF NOT EXISTS] hospital;
    

    2.2 删除数据库

    DROP DATABASE [IF EXISTS] hospital;
    

    2.3 使用数据库

    -- 如果表名是一个特殊字符 需要带``
    USE 'xxx'
    

    2.4 查看数据库

    SHOW DATABASES -- 查看所有数据库
    

    2.5 数据库的列类型

    数值

    类型 备注 大小(字节)
    tinyint 十分小的数据 1
    smallint 较小的数据 2
    mediumint 中等大小 3
    ☆ int 标准的整数 4
    bigint 较大的数据 8
    float 浮点数 4
    double 浮点数 8精度
    double 字符串形式浮点数

    字符串

    类型 备注 长度
    char 字符串固定大小 0-255
    ★varchar 可变字符串 0-65535
    tinytext 微型文本 2^8-1
    ★text 文本串 2^16-1 大文本

    时间日期

    类型 备注 格式
    date 日期格式 YYYY-MM-DD
    time 时间格式 HH:MM:SS
    ★datetime 常用时间格式 YYYY-MM-DD HH:MM:SS
    ★timestamp 时间戳 1970.1.1到现在的毫秒数
    year 年份

    null

    没有值,不要使用其进行运算

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

    unsigned

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

    zerofill

    • 填充0
    • 不足位数用0填充 Int(3) > 5 -- 005

    自增

    • 自动在上一条记录的基础上+1(默认)
    • 通常用来设计唯一的主键 index 必须为整数
    • 可以自定义设计主键自增的起始值和步长

    非空

    • null or NULL
    • 假设为not null,不给其赋值就会报错
    • NULL,不填写默认为null

    默认

    • 设置默认的值、不写自动填充

    2.7 sql语句创建数据库

    -- 利用语句创建school表
    -- 创建学生表包含学号id、登录密码varchar(20)、姓名、性别varchar(2)、出生日期(datatime)、家庭住址、email
    -- attention
    -- 使用英文() 表的名称和字段用 `` 括起来
    -- 除最后一行语句不加 ,
    -- 一个表只有一个主键 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 '密码',
    		`gender` VARCHAR ( 6 ) NOT NULL DEFAULT 'male' COMMENT '性别',
    		`birthday` DATETIME DEFAULT NULL COMMENT '生日',
    		`address` VARCHAR ( 120 ) DEFAULT NULL COMMENT '地址',
    		`email` VARCHAR ( 50 ) DEFAULT NULL COMMENT 'email',
    	PRIMARY KEY ( `id` ) 
    	) ENGINE = INNODB DEFAULT charset=utf8
    

    成功返回

    image-20210303155625086

    格式

    CREATE TABLE [IF NOT EXISTS] `表名`(
    	'字段名' 列类型 [属性][索引][注释],
      '字段名' 列类型 [属性][索引][注释],
       .....
      '字段名' 列类型 [属性][索引][注释],
    )[表类型][字符集设置][注释]
    

    常用显示命令

    SHOW CREATE DATABASE school
    SHOW CREATE TABLE student
    DESC student
    

    2.8 修改、删除表

    -- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
    ALTER TABLE teacher RENAME AS teacher
    -- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
    ALTER TABLE teacher ADD age INT(11)
    -- 修改表的字段(重命名,修改约束)
    ALTER TABLE teacher MODIFY age VARCHAR(11) -- 修改约束
    ALTER TABLE teacher CHANGE age  age1 INT(1) -- 字段重名名
    
    -- 删除表的字段
    ALTER TABLE teacher DROP age1
    
    -- 删除表(如果表存在再删除)
    -- 所有的创建和删除操作尽量加上判断 以免报错
    DROP TABLE IF EXISTS teacher
    

    3. MySQL数据管理

    3.1 外键(了解即可)

    为数据库级别的物理外键,不建议使用,故不做练习

    最佳实践

    • 数据库就是作为单纯用来存数据、只有行数据、列字段的表
    • 使用多张表的数据,想使用外键就用程序去实现

    3.2 DML语言★

    3.3 添加

    3.4 修改

  • 相关阅读:
    matlab cell
    matlab linux 快捷键设置——有问题还是要解决
    latex 小结
    TOJ 1258 Very Simple Counting
    TOJ 2888 Pearls
    HDU 1248 寒冰王座
    TOJ 3486 Divisibility
    TOJ 3635 过山车
    TOJ 1840 Jack Straws
    HDU 4460 Friend Chains
  • 原文地址:https://www.cnblogs.com/coderzjz/p/14471173.html
Copyright © 2011-2022 走看看