数据库基础

一、数据类型:创建表的时候,给字段指定数据类型

整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT

作用:用于存储用户的年龄、游戏的Level、经验值等

image-20220920124821420

[root@localhost ~]# mysql -u root -p'QianFeng@123'

create database cloud; //创建库

use cloud;

create table t1(id int(20),age int(10));  //表名为t1

insert(插入数据) into t1 values(1,18);

浮点数类型

​ 浮点数类型:FLOAT DOUBLE

​ 作用:用于存储用户的身高、体重、薪水等

image-20220920124919373

float(5,3)      5宽度  3精度
注意:
	宽度不算小数点
	宽度-精度=点前

案例:

[root@localhost ~]# mysql -u root -p'QianFeng@123'

create database cloud; //创建库

use cloud;

insert into t2 values(2.22)

select * from t2;  // 查看表

字符串类型

CHAR系列 CHAR VARCHAR

​TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT

​BLOB 系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB

​BINARY系列 BINARY VARBINARY

枚举类型

​ 枚举类型:枚举列可以把一些不重复的字符串存储成一个预定义的集合

时间和日期类型

image-20220920132630856

 

 timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。

 

二、表操作

语法:

create table 表名(自定义)(
		字段名1  类型[(宽度) 约束条件],
		字段名2  类型[(宽度) 约束条件],
		字段名3  类型[(宽度) 约束条件]
)[存储引擎 字符集];
==在同一张表中,字段名是不能相同
==宽度和约束条件可选
==字段名和类型是必须的

创建库表:

mysql> CREATE  DATABASE school;				        //创建数据库school
mysql> use school;
mysql> create table student1(
    id int,
    name varchar(50),                 
    sex enum('m','f'),
    age int
     );
Query OK, 0 rows affected (0.03 sec)

 

查看库:

mysql> show tables;			                                    
+------------------+
| Tables_in_school |
+------------------+
| student1         |
+------------------+
1 row in set (0.00 sec)

插入语法:

insert into 表名(字段1,字段2...)  values(字段值列表...);

插入数据:

mysql> insert into student1(id,name,sex,age) values(1,'xingdia','m','26');

查看表结构:

mysql> desc student1;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id    | int(11)       | YES  |     | NULL    |       |
| name  | varchar(50)   | YES  |     | NULL    |       |
| sex   | enum('m','f') | YES  |     | NULL    |       |
| age   | int(11)       | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

查询数据:

mysql> select id,name,sex,age from student1;	//查询表中所有字段的值
Empty set (0.00 sec)

mysql> select * from student1;		/查询表中所有字段的值
Empty set (0.00 sec)

mysql> select name,age from student1;		      //查询表中指定字段的值
Empty set (0.00 sec)

扩展插入:

mysql> insert into student1 values (1,'xingdian','m',33),(2,'alice','m',20),(3,'jack','m',40);          //顺序插入
Query OK, 3 rows affected (0.14 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into student1(name,age) values ('zhuzhu',10),('gougou',20);          //只向指定的字段插入值
Query OK, 2 rows affected (0.12 sec)
Records: 2  Duplicates: 0  Warnings: 0

  查看表的创建过程

 删除表

 

三、修改表

修改表名

alter table 旧表名 rename 新表名;

增加字段:

alter table 表名 add  字段名  数据类型  [约束条件], add 字段  数据类型 [约束条件] ;

first after  指定字段位置

删除字段:

alter table 表名 drop 字段名

修改字段:

修改原有字段的数据类型和约束条件

alter table 表名  modify 字段名  新类型   [新约束条件]  

修改原有字段的名字(数据类型和约束条件)

alter table 表名  change  旧字段名 新字段名

修改数据库存储引擎

alter table 表名 engine=新引擎;

四、约束条件

1.作用

​ 用于保证数据的完整性和一致性

2.约束条件

PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空 UNIQUE + NOT NULL

FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联

NOT NULL 标识该字段不能为空

UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY

AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)

DEFAULT 为该字段设置默认值

注意:

​是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值

​字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值

unique 保证唯一性

 自增影响删主键

9.复制表

复制表结构+记录 (key不会复制: 主键、外键和索引)复制表结构/记录+表结构,不会将Key复制

mysql> create table new_service select * from service;

只复制表结构

mysql> create table new1_service select * from service where 1=2;   //条件为假,查不到任何记录

可以复制主键,只复制表结构

mysql> create table t4 like employees;

 (不可复制数据)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值