数据库基础

数据库

对数据库的操作

  1. 创建数据库
    在大多数RDBMS中,我们都可以使用如下简单的SQL语句,创建整个数据库:

    CREATE DATABASE [IF NOT EXISTs] 数据库名 [CHARACTER set 'utf8mb4'];
    

    其中:数据库名在服务器中必须是唯一的,并且符合标识符规则。所谓标识符规则指:

    • 第一个字符必须是下列字符之—:
      a) Unicode标准3.0所定义的字母(Unicode中定义的字母包括拉丁字母a-z和A-Z,以及来自其它语言的字母字符)

      b)下划线(_)、at符号(@)或者数字符号(#)

    • 后续字符可以是:
      a) Unicode标准3.0所定义的字母。
      b)来自基本拉丁字母或其它国家/地区脚本的十进制数字

      c) at符号(@)、美元符号($)、数字符号或下划线。
      d)标识符不能是所用RDBMS的保留字,如create, drop, insert, delete, update, alter, select, return, use,grant, revoke等

      e)不允许嵌入空格或其它特殊字符。

    • UTF-8编码格式,对全球文字进行统一编码。如果只是ASCII,IS0-8859-1,ASClI码是由1byte来进行编码,1byte=8bit,表示有8个二进制位,0000 0000 ~1111 1111 对应0~ 255

汉卡对中文进行编码:GB2312、GBK、GB18030,在中文编码规范下,只支持ASCII+中文,但是不能支持日文等,中文编码规范由2byte = 16 bit,2416=65536,UTF-8除了ASCII码占1 byte,其他文字占3 byte = 24 bit = 2八24=16777216。
举例:

create database test character set 'utf8 ';
  1. 修改数据库字符集
    语法结构:

    语法:ALTER DATABASE db_name CHARACTER SET = charset_name
    例:  ALTER DATABASE test CHARACTER SET = UTF8MB4;
    

    字符集决定了数据库是否能够正常保存和显示非ASCII码字符。通常情况下,为了更好的兼容性,建议使用UTF8MB4,可以保存世界各国的文字,不会出现乱码。

  2. 删除数据库

    DROP DATABASE 数据库名;
    

    这是—条危险的命令,使用前,请务必确认数据库的确可以被删除。

对表的操作

  1. 创建表

    CREATE TABLE 表名(
    	列名 数据类型 约束,
    	列名 数据类型 约束
    )[ENGINE = engine_name | [DEFAULT] CHARACTER SET [=]charset_name];
    

    其中,表名在一个数据库中必须是唯一的,并且符合标识符规则。列的数据类型决定了什么样的数据可以存储在列中,而列的约束定义了创建列时的限制条件。Mysql引擎类型有InnoDB和MyISAM两种。建议使用InnoDB,功能更加强大,但是执行效率会稍低。

  2. 数据字典
    用于描述关系表结构和组成的字典表,通常用于数据库设计工作中,如:

    商品表(product)
    id name price date payway
    主键 商品名称 价格 生产日期 付款方式
    INT VARCHAR(10) INT DATETIME VARCHAR(10)
    PRIMARY KEY NOT NULL NOT NULL NOT NULL CHECK

常见数据类型

MySQL支持多种类型,大致可以分为三类:数值、字符串(字符)和日期/时间类型

  1. 数值类型
    MySQL支持所有标准SQL数值数据类型

    类型 大小 范围(有符号) 范围(无符号) 用途
    TINYINT 1 byte (-128,127) (0, 255) 小整数值
    SMALLINT 2 bytes (-32768 , 32767) (0,65535) 大整数值
    MEDIUMINT 3 bytes (-8 388 608 , 8 388 607) (0 , 16 777215) 大整数值
    INT或INTEGER 4 bytes (-2147 483648,2147 483647) (0, 4 294 967 295) 大整数值
    BIGINT 8 bytes (-9,223,372,036,854,775,808, 9 223372036854775807) (0,18446744 073 709 551615) 极大整数值
    FLOAT 4 bytes (-3.402 823466 E+38,-1.175 494 351E-38) , o,(1.175 494 351E-38,3.402 823 466 351 E+38) 0, (1.175 494 351 E-38,3.402 823 466E+38) 单精度浮点数值
    DOUBLE 8 bytes (-1.797 693134 862 3157E+308,-2.225 073858 507 201 4E- 308)o ,(2.225073858 507 201 4E-308,1.797 6931348623157 E+308) o,(2.225 073858 507 201 4 E-308 ,1.7976931348623157E+308) 双精度浮点数值
    DECIMAL 对DECIMAL(M,D)如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值
  2. 字符类型

    字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET

    类型 大小 用途
    CHAR 0-255 bytes 定长字符串
    VARCHAR 0-65535 bytes 变长字符串
    TINYBLOB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值