• MySQL---操作数据库


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

    1.操作数据库

    1.1、创建数据库

    create database [if not exists] database_name;

    1.2、删除数据库

    drop database if exists database_name;

    1.3、使用数据库

    -- 如果你的表名或者字段名是一个特殊字符,就需要带  ``这个符号
    use  `school`

    1.4、查看数据库

    show databases;  -- 查看所有的数据库

    2.数据库的列类型

    2.1、数值

    • tinyint:十分小的数据 1个字节

    • smallint:较小的数据 2个字节

    • mediumint:中等大小的数据 3个字节

    • int:标准的整数 4个字节 常用的

    • bigint : 较大的数据 8个字节

    • float:单精度浮点数 4个字节

    • double:双精度浮点数 8个字节

    • decimal:字符串形式的浮点数 金融计算的时候一般使用这个类型

    注意:对于int类型,int(M),这个M指示的是最大显示宽度,并不是限制你只能插入规定的长度为M的数据,比如Int(1),可以插入1,也可插入100、1000。

    2.2、字符串

    • char:字符串的大小固定 0-255

    • varchar:可变字符串 0-65535 对应Java中的String

    • tinytext:微型文本 2^8-1

    • text:文本串 2^16-1 保存大的文本

    2.3、时间日期

    java.util.Data

    • date YYYY-MM-DD,日期格式

    • time HH:mm:ss,时间格式

    • datatimw YYYY-MM-DD HH:mm:ss ,最常用的时间格式

    • timestamp 时间戳,1970.1.1到现在的毫秒数

    • year 年份表示

    2.4、null

    • 没有值,未知

    • 注意,不要使用NULL进行计算,结果为NULL

    3.数据库的字段属性

    Unsigned

    • 无符号的整数

    • 声明了该列不能声明为负数

    zerofill:

    • 0填充

    • 不足的位数,使用0来填充,比如 定义int(3) , 5 ---- 005

    自增:

    • 通常理解为自增,自动在上一条记录的基础上+1(默认)

    • 通常用来设计唯一的主键,必须是整数类型

    • 可以自定义设计主键自增的起始值和步长

    非空

    • 假设设置为 not null,如果不给它赋值,就会报错

    默认:

    • 设置默认的值

    • 如果不指定该列的值,则会有默认的值

    4.拓展

    每个表都必须存在以下五个字段,做项目要用的,表示一个记录存在的意义:

    id 主键
    `version`  乐观锁
    id_delete  伪删除
    gmt_create  创建时间
    gmt_updat  修改时间

    5.创建数据库表

    书写创建数据库表的语句的时候需要注意:

    • 使用英文的圆括号"()"

    • 表的名称和字段尽量使用 `` 括起来

    • 字符串使用单引号或者双引号括起来

    • 所有的语句后面加 "," 注意这个逗号应该是英文的,最后一个语句不用加

    • auto_increment表示自增

    • 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 '' 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

    格式:

    create table [if not exists] `表名` (
        `字段名1`  列类型  [属性] [索引] [注释],
        `字段名2`  列类型  [属性] [索引] [注释],
        `字段名3`  列类型  [属性] [索引] [注释],
                                ……
         `字段名`  列类型  [属性] [索引] [注释]
    )[表类型][字符集设置][注释]

    6.三个常用的命令

    show create database school;
    show create table student;
    desc student;

    1.查看创建数据库的语句

    show create database school;
    CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */'

    2.查看创建数据库表的语句

    show create table student;
    CREATE TABLE `student` (
      `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
                              `name` varchar(30) NOT NULL DEFAULT '' COMMENT  '姓名',
                              `pwd` varchar(20) NOT NULL DEFAULT  '' 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

    3.显示表的结构:

    desc student;
    'id', 'int(4)', 'NO', 'PRI', NULL, 'auto_increment'
    'name', 'varchar(30)', 'NO', '', '', ''
    'pwd', 'varchar(20)', 'NO', '', '', ''
    'sex', 'varchar(2)', 'NO', '', '', ''
    'birthday', 'datetime', 'YES', '', NULL, ''
    'address', 'varchar(100)', 'YES', '', NULL, ''
    'email', 'varchar(50)', 'YES', '', NULL, ''

    7.数据表的类型

    -- 关于数据库引擎
    /*
    INNODB 默认使用
    MYISAM 早些年使用
    */
     MYISAMINNODB
    事务支持 不支持 支持
    数据行锁定 不支持 支持
    外键约束 不支持 支持
    全文索引 支持 不支持
    表空间的大小 较小 较大,约为MYISAM的2倍

    常规的使用操作:

    • MYISAM 节约空间,速度较快

    • INNODB 安全性高,事务的处理,多表多用户操作

    在物理空间存在的位置:

    • 所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库

    • 本质还是文件的存储

    MySQL引擎在物理文件上的区别:

    • InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件

    • MYISAM对应的文件

      • *.frm文件 - 表结构的定义文件

      • *.MYD - 数据文件(data)

      • *.MYI - 索引文件(index)

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

    CHARSET=utf8

    不设置的话,会是mysql的默认字符编码(不支持中文)

    8.修改删除表

    修改

    -- 修改表名
    alter  table  table_old_name  rename  as  table_new_name
    -- 增加表的字段
    alter  table  table_name  add  字段名  列属性
    -- 给表的字段增加外键约束
    alter  table  table_name  add  constraint  约束名称  foreign key  (`字段名称`)  references  table_name  (`字段名称`)
    -- 修改表的字段(重命名、修改约束)
    alter  table  table_name  modify  字段名字  [字段属性]
    alter  table  teacher  modify  age  varchar(11)           -- 修改约束
    alter  table  table_name  change  旧的字段名  新的字段名  [字段属性]
    alter  table  teacher  change  age  age1  int(1)           -- 字段重命名
    -- 删除表的字段
    alter table table_name drop 字段名
    alter table teacher1 drop age1

    change用于字段重命名

    modify用来修改字段类型和约束

    删除

    drop  table  if exists  table_name

    所有的创建和删除操作尽量加上判断 ,以免报错

    注意点

    • `` 字段名,使用这个反引号括起来

    • 注释 -- /**/

    • sql关键字大小写不敏感,建议写小写

    • 所有的符号用英文符号,不要用中文符号。

  • 相关阅读:
    py-day2-4 python 集合
    LR_问题_控制器不能使用定义的负载生成器
    LR_问题_无法使用LR的Controller,提示缺少license
    LR_问题_在导入wsdl时出现parsing error
    class, extends和super es6语法
    格式化日期
    CLR
    【sqlserver】批量插入10万数据
    php正则表达式匹配函数
    css overflow
  • 原文地址:https://www.cnblogs.com/yxym2016/p/12680779.html
Copyright © 2020-2023  润新知