mysql选择三天之后_Mysql第三天

一、数据表相关操作

1、什么是表?

数据表是数据库最重要的组成部分之一,是其它对象的基础

数据库是存储数据的数据结构

数据表是包含了特定实体类型的数据

数据表由row行和列column构成的二组网络

数据表一定要先有表结构,再有数据

数据表至少有一列,可以没有行或者多行

2、如何创建数据表

语法:

CREATE TABLE [IF NOT EXISTS] tbl_name(

字段名称 字段类型 [完整约束条件]

)ENGINE=引擎名称 CHARSET='编码方式';

二、数据类型

1、整数类型:

TINYINT最小整数,范围是0-255

INT 整数   范围0-4294967295

SMALLINT 短整型 范围0-65535

BOOL,BOOLEAN 等价于TINYINT(1),0为false,其余为True

浮点类型:FLOAT像薪水,就需要用到浮点类型

c2a599daba0afc89ac3b39d08d32103e.png

或使用help帮助查看

0e12be3b796e96e3af702128b65d1b99.png

2、字符串类型

CHAR(M) 定义的列的长度是固定长度,括号里的M代表的是存储的字符数,最多能存储0-255个字符,当保存CHAR值时,在它们右边填充空格以达到指定的长度

VARCHAR(M) ,可变长字符串,M取值为0-65535之间。

TEXT 文本类型字符串

ENUM ,枚举类型  像性别,不是男就是女,可以列举出来的值

3、日期时间类型

a95be9c19a4e71b1d284679303f756d3.png

三、MySQL存储引擎

1、什么是存储引擎?

存储引擎就是指表的类型,数据库的存储类型决定了表在计算机中的在存储方式,用户可以根据不同的存储方式,是否进行事务处理来选择合适的存储引擎。

2、如何查看mysql存储引擎

常用参数:

show engines

查看显示支持的存储引擎信息:show variables like 'have%'

查看默认的存储引擎:show variables like 'storage_engine'(5.7版本,查看是空的)

412692c13153ad39b24b56aa74a60103.png

de66c33d893a08f2d0432b42167598e6.png

查看支持的存储引擎信息

932141e5b1740b9aee68a3edf14411b8.png

3、Mysql常用存储引擎及特点

Inododb存储引擎:而InnoDB支持事务,读写效率比较低,占用数据空间较大,支持事务提交回滚

MyISAM存储引擎:占用磁盘空间小,处理速度快、MyISAM不支持事务

Memory存储引擎:使用存储在内存中内容创建表、所有数据存放在内存中,读取速度快、只存储表结构

意外断电,数据丢失

4、MyISAM 和Innodb的区别

MySQL默认采用的是MyISAM,5,5以前采用的都是MyISAM引擎

占用磁盘空间小,处理速度快、MyISAM不支持事务,而InnoDB支持,读写效率比较低,占用数据空间较大

InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即 MyISAM同一个表上的读锁和写锁是互斥的,MyISAM并发读写时如果等待队列中既有读请求又有写请求,默认写请求的优先级高,即使读请求先到,所以 MyISAM不适合于有大量查询和修改并存的情况,那样查询进程会长时间阻塞。因为MyISAM是锁表,所以某项读操作比较耗时会使其他写进程饿死。

InnoDB支持外键,MyISAM不支持。

InnoDB的主键范围更大,最大是MyISAM的2倍。

InnoDB不支持全文索引,而MyISAM支持。

MyISAM支持GIS数据,InnoDB不支持。

5、如何选择合适的存储引擎?

如果你需要对事务完整性比较高,并且实现并发控制,创建表不指定引擎,默认使用innodb,频繁更新删除操作选择innodb

优点:Innodb支持外键,事务处理,崩溃自动修复能力、并发控制

MyISAM引擎:插入数据速度快,空间和内存使用率低,如果表主要是插入和读取记录,选择MyISAM存储引擎、不支持事务 ,对数据的完整性、并发性

Memory:数据存储在内存中,读写速度快,数据安全性比较低,使合一次性、不适合太大的表

四、创建表

注意:在创建表时,先把创建表的语句写在一个记事本上

1、创建一个学员表

-- 创建学员表

-- 编号id

-- 用户名 username

-- 年龄 age

-- 性别 sex

-- 邮箱 email

-- 地址 addr

-- 生日 birth

-- 薪水 salary

-- 电话 tel

-- 是否结婚 married

-- 注意,当需要输入中文的时候 ,需要临时转换客户端的编码方式为gbk(5.7默认是gbk)

-- SET NAMES GBK;

-- 字段注释,通过COMMENT 注释内容给字段添加注释

crete database lisa;

use lisa;

create table `user`(

id int,

usernasme varchar(20),

age tinyint,

sex enum('男','女','保密'),

email varchar(30),

addr varchar(100),

birth year,

salary float(8,2),

tel int,

married tinyint(1) comment '0代表未婚,非0代表结婚'

)ENGINE=INNODB CHARSET=UTF8;

在mysql上执行创建表语句

2146ec8d7e8def196c58088b11821f38.png

2、查看数据库里的表

常用命令:

show tables;#查看所有表

desc user;  #查看表结构

show  create table 表名

show columns from 表名

select * from columns where talbe_name='表名'

843ab8df44145784bee271d2ba9eb825.png

3、创建课程表 course

-- 创建课程表course

-- 编号 cid

--课程名称 courseName

-- 课程描述 courseDesc

create table course(

cid tinyint,

courseName varchar(40),

courseDesc varchar(100)

);

创建及查看表:

42d9d3ffa0ac5797d41cbc901479aab9.png

4、创建一个新闻分类表

-- 创建新闻分类表cms_cate

-- 编号、分类名称、分类描述

create table cms_cate(

id TINYINT,

cateName varchar(30),

cateDesc varchar(100)

)ENGINE=MyISAM CHARSET=UTF8;

查看表结构:

42b7b15023ad866f7fdb510072ee2ec1.png

5、创建新闻表cms_news

-- 创建新闻表cms_news

-- 编号、新闻标题、新闻内容、新闻发布时间、点击量、是否置顶

create table cms_news(

id int,

title varchar(30),

content text,

pubTime int,

clickNum int,

istop tinyint(1)

);

d0a2966793a5a1ea61c763699063dc05.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值