2.操作MySQL数据库

操作数据库>操作数据库中的表>操作数据库中表的数据

mysql关键字不区分大小写

2.1操作数据库 []里可以不要

1.创建数据库

CREATE DATABASES [IF NOT EXISTS] ` 数据库名`

if note exists即如果不存在  (可以不要)

2.删除数据库

DROP DATABASE [IF EXISTS] westos;

3.使用数据库

--键盘tab上面,如果你的表名或者字段名是一个特殊字符就需要带着个``
USE `数据库名`;
比如就是创建一个user但是你在使用时输入user英文变大,此时用``和命令USER区分开

4.查看数据库

SHOW DATABASES; --查看所有的数据库

2.2数据库的列类型

tinyint :十分小的数据 1字节

smallint 2字节

mediumint 3字节

int 标准的字节 4字节 常用!

big 8个字节

float 4个字节

double 8个字节 (存在精度问题)

decimal 字符串形式的浮点数 ,金融技术的时候使用。

字符串

char 字符串 固定大小 0-255

varchar 可变字符串 0-65535 常用!

tinytext 微型文本 2的八次方-1

text 文本串 2的16次方-1 保存大文本

时间和日期

date YYYY-MM-DD ,日期

time HH:mm:ss 时间格式

datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式

timestamp 时间戳 , 1970.1.1到现在的毫秒数! 也较为常用

year 年份表示

null

没有值 未知。

注意,不要使用NULL运算,运算结果一定为NUll

2.3数据库的字段属性(重点)

Unsigned:

无符号的整数,声明了该列不能为负数

zerofill:

0填充的,不足的位数使用0来填充 int(3) ,5--005

自增:

通常理解为自增,自动在上一条记录的基础上+1默认

通常用来设计唯一的主键~,必须是整数

可以自定义设计主键自增的起始值和步长

非空:

Null not null

假设设置为not null,如果不给他赋值就会报错

Null如果不填写值,默认就是Null

默认

设置默认的值

sex,默认值为男,不然不指定该列的值,则会有默认的值。

扩展

每一个表都必须存在以下五个字段!未来做项目用的,表示一个记录存在的意义。

id 主键 version乐观锁 is_delete 伪删除 gmt_create创建时间 gmt_update修改时间

2.4创建数据库用MySQL

注意点,使用英文(),表的名称和字段尽量使用`(飘)给括起来。

字符串使用单引号或者双引号括起来

所有的语句后面加逗号,最后一个不用加

AUTO_INCREMENT:自增

NOT NULL :不能为空

DEFAULT :默认值

PRIMARY KEY ()主键,一个表一般只有一个唯一的主键!

COMMENT 注释

创建一个表:

CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '1234' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)               -- 飘
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式:

 

CREATE TABLE [IF NOT EXISTS ]   `表名`(
`字段名` 列类型[属性][索引][注释],
  `字段名` 列类型[属性][索引][注释],
  ......
  `字段名` 列类型[属性][索引][注释]          --  最后一个不加,
)[表类型][字符集设置][注释]

SHOW CREATE DATABASE 数据库名-- 查看创建数据库的语句

SHOW CREATE TABLE 表名 -- 查看student数据表的语句

DESC 表名-- 显示表的结构

2.5数据表的类型

默认使用的引擎(ENGINE):INNODB 和MYISAM区别

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约为MYISAM的两倍

常规的使用操作:

MYISAM 节约空间,速度较快

INNODB 安全性高 事务的处理,夺标用户多操作

在物理空间存在的位置

所有数据库文件都存在data目录下,一个文件夹就对应一个数据库

本质还是文件的存储!

MySQL引擎在物理文件上的区别

  1. innoDB在数据库表中只有一个*.form文件以及上级目录下的didata1文件

  2. MYISAM对应的文件

    *.form -表结构的基本文件

    *.MYD 数据文件(data)

    *.MYI 索引文件(index)

设置数据库表的字符集编码

CHARSET=utf8

不设置的话,会是mysql默认的字符集编码~(不支持中文)

mysql的默认编码是Latin1,不支持中文

还可以就是在my.ini中配置默认的编码,这样以后就不用写了。建议不配置,若给别人发送数据库,不能保证别人都配置。

character-set-server=utf8

2.6修改和删除表

修改

修改表名

ALTER TABLE 旧表名 RENAME AS 新表名

例如:ALTER TABLE teacher RENAME AS teacher1

增加表的字段

ALTER TABLE 表名 ADD 字段名 列属性

例如:ALTER TABLE teacher1 ADD age INT(11)

修改表的字段

修改约束:

modify不用来字段重命名,只能修改字段类型和约束

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

例如:ALTER TABLE teacher1 MODIFY age VARCHAR(11) : 改为varchar型

字段重命名:

change用来字段重命名,不能修改字段类型和约束

ALTER TABLE 表名 change 旧名字 新名字 列属性[]

例如:ALTER TABLE teacher1 CHANGE age age1 INT(1) : age改为age1

删除表的字段

ALTER TABLE 表名 DROP 字段名

例如:ALTER TABLE teacher1 DROP age1 :删除表teacher1里面的age1字段

删除表

-- 删除表,如果表存在再删除:if exists例如DROP TABLE IF EXISTS teacher1

---是他的创建和删除操作尽量加上判断,以免报错---

注意点:

字段名 用飘``包裹

注释-- /**/

sql关键大小写不敏感,建议使用小写

使用的符号全部用英文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值