zoukankan      html  css  js  c++  java
  • MySQL操作数据库

    2.操作数据库

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

    Mysql关键字不区分大小写

    2.1操作数据库

    2.1.1创建数据库

     create database if not EXISTS hello 
     --创建数据库hello并判断是否存在数据库(如果不存在则创建)
     ​

     

    2.1.2删除数据库

     drop database if exists hello
     --删除数据库hello并判断如果存在则删除数据库

     

    2.1.3使用数据库

     use hello
     --选中数据库hello,对其进行操作

    2.1.4查看数据库

     show databases
     --查看所有的数据库
     ​
     DESC student  --显示表的结构

    2.2数据库的列类型

    数值:

      -tinyint 十分小的数据 1字节

      -smallint 较小的数据 2字节

      -int 标准的整数 4字节

      -bigint 较大数据 8字节

      -float 浮点数 4字节

      -double 浮点数 8字节

    字符串:

      -char 字符串固定大小 0~255

      -varchar 可变字符串 0~65535 常用的变量String

      -tinytext 微型文本 2^8-1

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

    时间日期:

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

      -time HH: mm: ss 时间格式

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

      -timestamp 时间戳,较为常用

      -year 年份表示

    null:

      -没有值,未知

      -注意不要使用null进行运算,结果为null

     

    2.3数据库字段属性(重点)

    Unsigned:

      -无符号的整数

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

    zerofill:

      -0填充的

      -不足的位数,使用0来填充,int(3),5 --- 005

    自增:

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

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

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

    非空:

      -not null

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

      -如果不填写值,默认就是null

    默认:

      -设置默认的值

      -sex,默认值为男,如果不指定该列的值,则会有默认的值

    2.4创建数据库表(重点)

     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` TIMESTAMP DEFAULT null COMMENT '出生日期',
      `address` VARCHAR(100) DEFAULT null COMMENT '地址',
      `email` VARCHAR(50) DEFAULT null COMMENT '邮箱',
      PRIMARY KEY(id)
     
     )ENGINE=INNODB DEFAULT CHARSET=utf8
     /*
     目标:使用SQL语言创建一个school数据库,创建学生表(列、字段)
     注意:
     1、使用英文符号,表的名称和字段尽量使用``括起来
     2、AUTO_INCREMENT 自增设置
     3、字符串引用,用单引号括起来
     4、所有的语句后面加,(英文,)最后一个语句不用加
     5、PRIMARY KEY。主键;一般一个表只有一个主键
     */

    格式:

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

    2.5数据表的类型

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

    常规使用操作:

      -InnoDB:安全性高,多表多用户操作

      -MYISAM:节约空间,速度较快

    在物理空间存在的位置:

      所有的数据库文件都存在于data目录下;本质还是文件的存储。一个文件夹对应一个数据库

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

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

      ·MYISAM对应文件

      *.frm :表结构的定义文件

      *.MYD : 数据文件(data)

      *.MYI : 索引文件(index)

    设置数据库表字符集编码(utf-8)

     
     DEFAULT CHARSET=utf8

    my.ini中配置默认编码

     character-set-server=utf-8

    2.6修改删除表

    修改

     --alter table 旧表名 rename as 新表名
     alter table student rename as student1 --修改表的名称(重命名为student1)
     ​
     --alter table 表名 add 字段名 列属性(大小)
     alter table student1 add age int(11) --增加表的字段
     ​
     --alter table 表名 MODIFY 字段名 字段属性
     alter table student1 MODIFY age VARCHAR(11)  --修改表的字段的约束
     ​
     --alter table 表名 change 旧的字段名 新字段名 字段属性
     alter table student1 change age age1 int(10) --修改字段名(重命名-change)
     ​
     --删除表的字段
     alter table student1 drop age1

    删除

     --删除表,如果表存在则删除
     drop table if exists student1  --drop table if exists 表名

     

    注意点:

     - `` 字段名,使用这个将字段名包裹
     - 注释:--(单行注释)   /**/(多行注释)
     - SQL关键字大小写不敏感,建议小写
     - 所有的符号全英文状态
  • 相关阅读:
    大batch任务对structured streaming任务影响
    spark 集群优化
    linux神器 strace解析
    打个 hadoop RPC的栗子
    netty 入门
    c#硬件对接数值转换
    RabbitMQ 消息队列入门
    RabbitMQ 开发环境安装部署
    Nginx-4.Nginx如何处理请求
    Nginx-3.控制nginx
  • 原文地址:https://www.cnblogs.com/joey-413/p/13282547.html
Copyright © 2011-2022 走看看