第二章 数据类型与操作数据表

内容回顾

mysql默认端口号:3306
mysql中的超级用户:root
创建数据库:CREATE DATABASE
修改数据库:ALTER DATABASE
删除数据库:DROP DATABASE

数据类型之整型

** 数据类型:数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。**

整形所占空间

合理选择数据类型,节省存储空间(选择最合适的为不是最大的数据类型)

数据类型之浮点型

浮点型

M表示数字总位数(整数部分和小数部分)D表示小数的位数

数据类型之日期时间型

Paste_Image.png

TIMESTAMP:1970.1.1-2037.(时间戳:从1970.1.1.0:00::00到当前时间的秒数2^31)
DATA:1000.1.1-999912.31
DATATIME:1000.1.1.00:00-9999.12.31.23:59:5 9
TIME:-8385959-8385959
YEAR:1970-2069
实际开发日期时间类型用的不多,存在时区的问题,大多采用数字类型取代(以时间戳的格式存储)

数据类型之字符型

Paste_Image.png

char(M):定长,如果字节数少于M,存储时会在字符串后边增加空格补齐.如:char(5),存放abc,存储时会在后边加两个空格
varchar(M):变长是多上就存多少
enum:枚举类型,只能选一个
set:集合类型,可以选一个,也可以选多个

创建数据表

** 概述:数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础**

行:记录、元组
列:字段、属性

数据表存在于数据库中,要想使用数据表,首先要打开数据库,可使用use命令打开数据库。用法:use databasename use后加数据库名打开数据库。

  • 回顾:打开mysql的命令:mysql -uroot -proot -P3306 -h127.0.0.1 -u后是用户名,-p后是密码,-P后是端口号,-h后是主机地址(127.0.0.1表示本机) *

如何查看当前所打开的数据库:SELECT DATABASE();

创建数据表:

CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
......
)

IF NOT EXISTS 可以省略,column_name 是列名,data_type是数据类型,可以从刚才的数据类型中选择,“,”是列与列之间的分隔符,最后一列可以不写。
** 数据表的建立不能脱离项目,要根据项目需要建立 **
例:

CREATE TABLE tb1(
username VARCAHR(20),
age TINYINT UNSIGNED,
salary FLOAT(8,2) UNSIGNED
);

UNSIGNED:无符号(非负)
FLOAT(8,2):浮点型,总8位,小数点后2位
salary:工资

查看数据表

查看数据表命令:SHOW TABLES;
不仅可以查看当前数据库的数据表,还可以查看其他数据库数据表,命令:SHOW TABLES FROM dbname

  • SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]

** 查看后当前数据库不会改变。 **

查看数据表结构

查看数据表结构命令:SHOW COLUMNS FROM tbl_name
或者:DESC tbl_name

记录的插入与查找

  • 插入记录:INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...)

中括号里的可以省略,列名可以省略,省略后默认为所有列,需要为所有列赋值
例:
INSERT tb1 VALUES('Tom',25,7867.4);
省略列名,为所有字段赋值
INSERT tb1(username,salary) VALUES('John',4440.5);
不省略列名,为部分字段赋值

  • 简单的SELECT命令:SELECT expr,... FROM tbl_name

SELECT * FROM tb1;

  • 没有赋值的字段会显示为null *

空值与非空

  • NULL,字段值可以为空
  • NOT NULL,字段值禁止为空

两个不能同时用到一个字段上,原因你懂的

例:

CREATE TABLE tb2(
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);

NULL可以不写,因为默认就是null(可以为空)
当插入记录时如果不为NOT NULL(不为空)的列赋值,会报错的哦

自动编号

在需要保证某一记录的唯一性(在数据表中这条记录不存在重复),这时,可以为字段添加AUTO_INCREMENT
** 可以为整数,也可以是浮点数,浮点数要保证小数位数为0 **
AUTO_INCREMENT:

  • 自动编号,且必须与主键组合只用
  • 默认情况下,起始值为1,每次的增量为1

例:

CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT,
username VARCHAR(30) NOT NUL
);

会报错,因为自动编号的字段必须定义为主键

初涉主键约束

主键PRIMARY KEY

  • 主键约束
  • 每张数据表只能存在一个主键
  • 主键保证记录的唯一性
  • 逐渐自动为NUT NULL

主键约束的字段不能为空,建表时会自动加上,自己手动加也不会出错

例:

CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NUL
);

主键既可以写成KEY也可以写成PRIMARY KEY

设为自动编号的字段不用赋值
例:

INSERT tb3(username) VALUES('Tom');
INSERT tb3(username) VALUES('John');
INSERT tb3(username) VALUES('Rsoe');
INSERT tb3(username) VALUES('Dimitar');

使用SELECT查看后看到id自动加上了

AUTO_INCREMENT必须和主键一起使用,但是PRIMARY KEY不一定要和自动编号一起使用

CREATE TABLE tb4(
id SMALLINT UNSIGNED PRIMARY KEY,
username VARCHAR(20) NOT NULL
);

主键允许赋值,但是不允许存在相同的值

初涉唯一约束

主键只能存在一个,如果还想保证数据的唯一性,可以用唯一约束

UNIQUE KEY:

  • 唯一约束
  • 唯一约束可以保证记录的唯一性
  • 唯一约束的字段可以为空值
  • 每张数据表可以存在多个唯一约束

唯一约束不约束空值(可以存在多个NULL)
例:

CREATE TABLE tb5(
id SMALLINT UNSIGNED AUTO INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED
);

表结构:


Paste_Image.png

初涉默认约束

DEFAULT:

  • 默认值
  • 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
CREATE TABLE tb6(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3') DEFAULT '3'
);
表结构

没有赋值时系统会使用默认值

总结

本节知识点

  • 数据类型
    • 字符型
    • 整型
    • 浮点型
  • 数据表操作
    • 插入记录
    • 查找记录
  • 记录操作
    • 创建数据表
    • 约束的使用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容