第一章:初识MySQL

第一章:初识MySQL

什么是数据库?

  • 数据库:(Database,简称DB)
  • 概念:
    长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”
  • 作用:
    保存、管理数据

数据库分类:

  • 关系型数据库(SQL):
    MySQL、Oracle、SQL Server、SQLite、DB2
  • 非关系型数据库(NOSQL):
    Redis、MongoDB

我们下载和安装的都是DBMS又叫数据库管理系统:
数据库管理系统(Database Management System):
数据管理软件,科学组织和存储数据、高效地获取和维护数据

一,mysql简介

  • 概念:
    是现流行的开源、免费的关系型数据库
  • 特点:
    免费、开源数据库
    小巧、功能齐全
    使用便捷
    可运行于Windows或Linux操作系统
    可适用于中小型甚至大型网站应用
MySQL的运行机制在这里插入图片描述

下载安装可以看一下其他博主的博客,这就不再讲安装配置了。

二,连接数据库

  1. 打开MySQL命令窗口
  2. 在DOS命令行窗口(cmd.exe)
  3. 在窗口中进入 安装目录\mysql\bin
  4. 连接数据库语句:mysql -h 服务器主机地址 –u 用户名 -p用户密码

三,结构化查询语句分类

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

我们经常使用的是DML和DQL。

命令行操作数据库:

创建数据库:
CREATE DATABASE [IF NOT EXISTS] 数据库名;
删除数据库:
DROP DATABASE [IF EXISTS] 数据库名;
查看数据库:
SHOW DATABASES;
使用数据库:

USE 数据库名;

四,数据表的增删改查

增:

​ 创建数据表模板如下,我们会一个一个属性的说:

 CREATE   TABLE [ IF NOT EXISTS ]    `表名`   (
    
        `字段名1`    列类型 [ 属性 ]  [ 索引 ] [注释] ,
        `字段名2`   列类型 [ 属性 ]  [ 索引 ] [注释] , 
         … …    
         `字段名n`   列类型 [ 属性 ]  [ 索引 ] [注释] 

)  [  表类型 ] [ 表字符集 ] [注释] ;

注意:表名和字段名是用反引号,用于区别MySQL保留字与普通字符而引入的。

1.列类型:
  • 列类型:规定数据库中该列存放的数据类型
  • 可分为:
    • 数值类型
    • 字符串类型
    • 日期和时间型数值类型
    • NULL值
数据类型:
类型说明取值范围存储需求
tinyint非常小的数据有符值: -27 ~ 27-1 无符号值:0 ~ 28-11字节
smallint较小的数据有符值: -215 ~ 215-1 无符号值: 0 ~ 216-12字节
mediumint中等大小的数据有符值: -223 ~ 223-1 无符号值: 0 ~ 224-13字节
int标准整数有符值: -231 ~ 231-1 无符号值:0 ~ 232-14字节
bigint较大的整数有符值: -263 ~263-1无符号值:0 ~264-18字节
float单精度浮点数±1.1754351e -384字节
double双精度浮点数±2.2250738585072014e -3088字节
decimal字符串形式的浮点数decimal(m, d)m个字节

我们常用的是int,bigint,decimal;

字符串类型:
类型说明最大长度
char[(M)]固定长字符串,检索快但费空间, 0 <= M <= 255M字符
varchar[(M)]可变字符串0 <= M <= 65535变长度
tinytext微型文本串28–1字节
text文本串216–1字节
日期和时间型数值类型:
类型说明取值范围
DATEYYYY-MM-DD,日期格式1000-01-01~ 9999-12-31
TIMEHh:mm:ss ,时间格式-838:59:59~838:59:59
DATETIMEYY-MM-DD hh:mm:ss1000-01-01 00:00:00 至9999-12-31 23:59:59
TIMESTAMPYYYYMMDDhhmmss格式表示的时间戳197010101000000 ~2037年的某个时刻
YEARYYYY格式的年份值1901~2155

我们常用的是datatime,和timestamp;

NULL值

我们可以理解为“没有值”或“未知值”,不要用NULL进行算术运算,结果仍为NULL。

列类型设置:
  • UNSIGNED:
    无符号的
    声明该数据列不允许负数
  • ZEROFILL
    0填充的
    不足位数的用0来填充,如 int(3),5则为 005
  • AUTO_INCREMENT
    自动增长的,每添加一条数据,自动在上一个记录数上加1
    通常用于设置主键,且为整数类型
    可定义起始值和步长
  • NULL 和 NOT NULL
    默认为NULL,即没有插入该列的数值
    如果设置为NOT NULL,则该列必须有值
  • DEFAULT
    默认的
    用于设置默认值
    例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
表列类型注释:

示例:

 CREATE   TABLE [ IF NOT EXISTS ]    `test`   (
      `id`   int (11)  UNSIGNED  COMMENT   ‘编码号’
)COMMENT=‘测试表’;
数据表的引擎选择:

MySQL的数据表的类型:MyISAM、InnoDB 、HEAP、BOB、CSV等,我们常用的是MyISAM,和InnoDB。

示例:

CREATE TABLE  表名(
	#省略一些代码
) ENGINE =  MyISAM(/InnoDB)

常见的MyISAM与InnoDB类型区别:

名称MyISAMInnoDB
事务处理不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约2倍

使用MyISAM: 节约空间及相应速度
使用InnoDB: 安全性,事务处理及多用户操作数据表

设置表字符集
 CREATE TABLE  表名(
	#省略一些代码
)CHARSET  =  utf8;

索引我们回来拉出来单独讲解。

删:

语法:DROP TABLE [ IF EXISTS ] 表名

IF EXISTS 为可选,判断是否存在该数据表
如删除不存在的数据表会抛出错误

改:
  • 修改表名

    ALTER TABLE 旧表名 RENAME AS 新表名

  • 添加字段

    ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]

  • 修改字段

    ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]

    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]

  • 删除字段

    ALTER TABLE 表名 DROP 字段名

查:

语法:show tables;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值