nextdoorloureed

MySQL数据库操作语法

1.数据库的库操作

  • 创建数据库(如果不存在)
CREATE DATABASE [IF NOT EXISTS] `name`
  • 删除数据库(如果存在)
DROP DATABASE [IF EXISTS] `name`
  • 选择数据库
USE `name`;
  • 显示所有数据库
SHOW DATABASES

2.MySQL的列数据类型

  • 数值

    类型名称 占用大小
    tinyint 1字节
    smallint 2字节
    mediumint 3字节
    int(常用) 4字节
    bigint 8字节
    float 4字节
    double 8字节
    decimal(金融专用) 8字节
  • 字符串

类型名称 占用大小
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到现在的毫秒数
  • NULL

没有值 未知

3.MySQL的字段属性

  • 主键
    1. 设置为主键的字段值唯一,通常只有1个,是记录的识别ID.
    2. 同时非空
  • 非空:其值不能为空,否则报错!
  • Unsigned
    1. 是否能出现负值,适用于整型(decimal是浮点型!)。
    2. 用此类型可以增加数据范围,如tinyint的范围可以变成0-127*2
  • 自增:产生新记录时,是否自动根据上一条记录,更改值
  • Zerofill
    1. 是否根据长度,补充0。
    2. 适用于整型,不改变实际的值。
    3. 默认会自动加unsigned(无符号)属性。
    4. 不改变长度时,zerofill默认为int(10)。
    5. 如果实际整型长度大于设定的长度,则按实际长度显示。
  • 长度
    1. 对于整型来说,只有zerofill之后才会有不同。
    2. 只控制实际显示的长度,不控制数据值的范围!

4.创建数据库表的语法

--格式
CREATE TABLE [IF NOT EXISTS] `表名`(
    `字段名` 列类型 [属性][索引][注释],
    `字段名` 列类型 [属性][索引][注释],
    `字段名` 列类型 [属性][索引][注释],
    ......
    `字段名` 列类型 [属性][索引][注释]
)
--样例
CREATE TABLE IF NOT EXISTS `student` (
     `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT \'学号\',
     `name` VARCHAR(20) 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(20) DEFAULT NULL COMMENT \'家庭地址\',
     `email` VARCHAR(50) DEFAULT NULL COMMENT \'邮箱\',
     PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8  --数据库表的引擎,以及字符集编码(不设置会是mysql默认的字符集编码Latin1,不支持中文!)

-- 关键点:`字段名字`  \'注释\' 最后没有逗号! 
--补充
SHOW CREATE DATABASE `name`   --查看创建数据库的语句
SHOW CREATE TABLE `student`   --查看数据表的创建语句
--补充      
character-set-server=utf8   -- 在myini配置文件,可以默认的字符集编码为utf8,但最好不要,兼容性差,别人的电脑不一定改了这个!

5.MYISAM和Innodb的区别(补充了解)

数据库引擎的类型:

  1. INNODB (默认使I用)Y
  2. MYISAM
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持I 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 2倍于MYSAM
  • MYISAM : 节约空间,速度块
  • INNODB : 安全性高,事务的处理,多表多用户操作

MYSQL 引擎在物理文件上去区别:

INNODB:*.frm文件,以及上级目录下的ibdata1文件

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

​ *.MYD---数据文件

​ *.MYI ---索引文件

  • MYSQL的本质:data文件中文件!!!!

6.修改删除数据库表

修改

--修改表名(RENAME AS)
ALTER TABLE oneName RENAME AS anotherName
--增加表的字段(ADD)
ALTER TABLE tableName ADD 字段名 列属性
--修改表的字段(MODIFY,CHANGE)
ALTER TABLE tableName MODIFY 字段名 字段属性         --(不能重命名,只能改字段属性,即修改约束!)
ALTER TABLE tableName CHANGE 字段名 字段新名 字段属性  --(即能重名名,也能改字段属性!)
--删除表的字段(DROP)
ALTER TABLE tableName DROP 字段名

删除

DROP TABLE [IF EXISTS] tableNAME    --最好加上判断,增加安全性!

分类:

技术点:

相关文章: