mysql数据表

2-1 内容回顾
 默认端口号3306
 超级用户 root
创建数据库 CREATE DATABASE
修改数据库 ALTER DATABSE
删除数据库 DROP DATABASE

2-2数据类型之整型和数据表的操作
数据类型:
整型  TINYINT 有符号值:-128到127 无符号值:0到255
      SMALLINT 有符号值:-32768到32767 无符号值:0到65535
      MEDIUMINT有符号值:-8388608到8388607 无符号值:0到16777215 
           INT 有符号值:-2147483648到2147483647无符号:0到4294967295
         BIGINT有符号值:-923372036854775808到923372036854775807无符号:0到18446744073709551615

2-3浮点型

FLOAT[(M,D)]M是数字总位数,D是小数点后面的位数 M>=D,可以保留到小数点后面7位
DOUBLE[(M,D)]M是数字总位数,D是小数点后面的位数 M>=D


2-4日期时间型
YEAR
TIME
DATE
DATETIME
TIMESTAMP


2-5字符型
CHAR(M) M个字节,0<=M<=255
VARCHAR(M)             65536
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
ENUM
SET


2-6创建数据表
数据表是数据库最重要的组成部分之一,使其他对象的基础。
打开数据库  USE 数据库名称;
登录到mysql客户端,进入mysql  在里面输入mysql -root -proot
输入USE test;表示使用test这个数据库,表示打开了这个数据库,怎么知道已经打开了呢?再在下面输入SELECT DATABASE();敲回车即可看出
接下来要在打开的test数据库中创建数据表 CREATE TABLE TABLE_name(列名 数据类型,列名 数据类型)
例如在里面创建一个数据表  CREATE TABLE tb1(username VARCHAR(20),age TINYINT UNSIGNED,salary FLOAT(8,2)  UNSIGNED);
                               
2-7查看数据表是否存在
SHOW TABLES;

2-8查看数据表结构
SHOW COLUMNS FROM tb1;
可以看到2-6中创建的数据表的具体表格形式

2-9记录(行)的插入和查找,向数据表中写数据
给所有的的字段赋值INSERT tb1 VALUES('TOM',25,7500);
给其中的一部分字段赋值INSERT tb1(username,salary) VALUES('Tim',25);
记录的查找 SELECT * FROM tb1;

2-10空值与非空(NOT NULL)_
新建个表格tb2,两个属性,姓名和年龄,其中姓名不可以为空,年龄可以为空
CREATE TABLE tb2(username VARCHAR(20) NOT NULL,age TINTINT UNSIGNED NULL);
接着显示表格

SHOW COLUMNS FROM tb2;

往里面插入个有姓名但是没年龄的

INSERT tb2 VALUES ('kate',NULL);

输入命令让他显示一下

SELECT * FROM tb2;

再往里面插入个没姓名但是有年龄的,会出问题

INSERT tb2 VALUES(NULL,26);
再输入命令让他显示一下
SELECT * FROM tb2; 敲回车后显示出错


2-11自动编号(必须数值型,如果为浮点型则小数位为0)自动编号必须和主键组合使用,而主键不一定和自动编号一起使用
AUTO_INCREMENT
自动编号,且必须与主键组合使用
默认情况下,起始值为1,每次的增量为1
创建个表格CREATE TABLE tb3(id SMALLINT UNSIGNED AUTO_INCREMENT,username VARCHAR(30) NOT NULL);
其中第一个自动编号,敲回车报错,因为自动编号的字段必须定义为主键才行


2-12主键约束(每张数据表只能有一个,它可以保证记录的唯一性)
PRIMARY KEY
每张数据表只能存在一个主键,逐渐保证记录的唯一性,主键自动为NOT NULL(不能为空)
2-11节中的创建的表格写成这样CREATE TABLE tb3(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username 


VARCHAR(30) NOT NULL);敲回车显示创建正确
输入SHOW COLUMNS FROM tb3;显示下表格
接着在里面插入多个名字INSERT tb3(username) VALUES('TOM');敲回车
INSERT tb3(username) VALUES('LUCY');敲回车
INSERT tb3(username) VALUES('LILY');敲回车
INSERT tb3(username) VALUES('ROSE');敲回车
SELECT * FROM tb3; 敲回车看到了id自动编号每次递增1
AUTO_INCREMENT 必须定义为主键,但主键(PRIMARY KEY)不一定与AUTO_INCREMENT一起使用,再创建一张表只有主键没有自动编号
AUTO_INCREMENT,    CREATE TABLE tb4(id SMALLINT UNSIGNED  PRIMARY KEY,username VARCHAR(20) NOT NULL);
首先查看下数据表的基本结构SHOW COLUMNS FROM tb4;
再往里面写值INSERT tb4 VALUES(4,'TOM');
INSERT tb4 VALUES(22,'JOHN');
查找记录SELECT * FROM tb4; 
可以发现主键的字段是可以赋值的,能赋同样的值吗?再输一遍INSERT tb4 VALUES(22,'JOHN');显示错误,表示不能赋同样的值  
综上AUTO_INCREMENT 必须和PRIMARY KEY一块使用,而PRIMARY KEY不一定和AUTO_INCREMENT一块使用     

2-13唯一约束UNIQUE KEY

主键约束可以保证数据的唯一性,但一个表只能有一个主键。唯一约束也可以保证记录的唯一性,唯一约束的字段可以为空值(NULL),每张数据表可以存在多个唯一约束

创建一个既有主键约束,又有唯一约束的数据表tb5
CREATE TABLE tb5(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL UNIQUE KEY,age TINYINT UNSIGNED);敲回车,创建好了这个表
再查看下数据库的结构SHOW COLUMNS FORM tb5;
上面的id是自动赋值,所以不用赋值,所以只需要给username和age赋值 INSERT tb5(username,age) VALUES('TOM',22);
再写一次系统会提示错误,就不唯一了INSERT tb5(username,age) VALUES('TOM',22);因为username中已经存在了TOM了


2-14默认约束(加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');
看一下数据表的结构SHOW COLUMNS FROM tb6;可以发现sex字段存在默认值3
id有自动给的值,sex有默认的值,给username赋值为TOM,INSERT tb6(username) VALUES('TOM');
接下来查看记录SELECT * FROM tb6; 敲回车可以发现没有明确赋值的时候系统将默认值3赋给这个字段

2-15 总结
数据类型:字符型,整型,浮点型,日期时间型
数据表操作:插入记录(insert),查找数据(select)(数据表是数据库的重要组成部分,使其他对象的基础)
记录操作:创建数据表,约束的使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值