学会定义和管理MySQL数据对象(DDL)

本章开始MySQL,学习数据定义DDL

数据库

什么是数据库

  • 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”

数据库的作用

  • 实现数据共享
  • 减少数据的冗余度
  • 数据的独立性
  • 数据实现集中控制
  • 数据一致性和可维护性
  • 以确保数据的安全性和可靠性
  • 故障恢复

数据库管理系统( DataBase Management System )

  • 数据库管理软件,科学组织和存储数据,高效地获取和维护数据

数据库总览

关系型数据库 ( SQL )

  • MySQL,Oracle,SQL Server,SQLite,DB2 …
  • 关系型数据库通过外键关联来建立表与表之间的关系

非关系型数据库 ( NOSQL )

  • Redis , MongoDB …
  • 非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

MySQL 简介

MySQL 概念

  • MySQL 是现在流行开源的,免费关系型数据库

MySQL 历史

  • 由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品

MySQL 特点

  • 免费,开源数据库
  • 小巧,功能齐全
  • 使用便捷
  • 可运行于Windows或Linux操作系统
  • 可适用于中小型甚至大型网站应用

操作数据库

结构化查询语句分类

名称解释命令
DDL (数据定义语言)定义和管理数据对象,如数据库,数据表等CREATE、DROP、 ALTER
DML (数据操作语言)用于操作数据库对象中所包含的数据INSERT、UPDATE、DELETE
DQL (数据查询语 言)用于查询数据库数据SELECT
DCL (数据控制语言)用于管理数据库的语言,包括管理权限及数据更改GRANT、COMMIT、ROLLBACK

命令行操作数据库

//连接MySQL
mysql -u root -p
Enter password 输入密码
//刷新权限
flush privileges;

//显示所有数据库
show databases;
//创建数据库
create database [if not exists] 数据库名; //[ ]为可选择写或不写
//选择数据库
use 数据库名;
//删除数据库
drop [if exists] database 数据库名;

//显示选定数据库中所有的表
show tables; 
//显示选定数据库中dbtable表的列信息
describe 表名;
//删除选定数据库中的特定的表
drop [if exists] table 表名;
//增加字段
alter table 表名 add 字段名 类型 约束;
//修改字段
alter table 表名 change  字段名 新字段名 类型 约束;
//删除字段
alter table 表名 drop 字段名;

创建数据表

  • 反引号用于区别MySQL保留字与普通字符而引入的
create table [if not exists] `表名`( 
  '字段名1' 列类型 [属性][索引][注释], 
  '字段名2' 列类型 [属性][索引][注释], 
   ...
  '字段名n' 列类型 [属性][索引][注释] 
)[表类型][表字符集][注释];

数据字段类型

  • NULL 理解为 “没有值” 或 “未知值”
  • 不要用NULL进行算术运算,结果仍为NULL
sqltype

其他属性

  • UnSigned

    • 无符号的
    • 声明该数据列不允许负数
  • ZEROFILL

    • 0填充的,不足位数的用0来填充,如int(4),8则为0008
  • Auto_InCrement

    • 自动增长的,每添加一条数据,自动在上一个记录数上加 1(默认)
    • 通常用于设置主键,且为整数类型
    • 可定义起始值和步长,SET @@auto_increment_increment=3,影响所有使用自增的表(全局)
  • NULL NOT NULL

    • 默认为NULL,即没有插入该列的数值
    • 如果设置为NOT NULL,则该列必须有值
  • DEFAULT

    • 默认的,用于设置默认值
-- 创建一个student表,包含以下字段
-- 学号,登录密码,姓名,性别,出生日期,家庭住址,邮箱
-- 创建表之前 , 一定要先选择数据库

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(50) DEFAULT NULL COMMENT '地址',
	`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY(`id`)
) ENGINE=INNODB DEFAULT charset=utf8

-- 查看数据库的定义
SHOW CREATE DATABASE dbstudy;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student;
-- 设置严格检查模式(不能容错了)
SET sql_mode='STRICT_TRANS_TABLES';
-- 查看mysql所支持的引擎类型(表类型)
SHOW ENGINES;

数据表的类型

  • MyISAMInnoDB、HEAP、BOB、CSV …

对比 MyISAM 和 InnoDB

  • 适用 MyISAM:节约空间及相应速度
  • 适用 InnoDB:安全性,事务处理及多用户操作数据表
名称MyISAMInnoDB
事务处理不支持支持
数据行锁定不支持(属于表锁)支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约 2 倍

其他零碎的点

-- 注释:
单行注释 # 注释内容 
多行注释 /* 注释内容 */ 
单行注释 -- 注释内容
(标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等))

-- SQL对大小写不敏感 (关键字)

-- 模式通配符
_ 任意单个字符
% 任意多个字符,甚至包括零字符 
单引号需要进行转义 \'

Hi, welcome to JasperのBlog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值