MySQL数据库,表,数据操作

本文详细介绍了MySQL数据库的基本操作,包括创建数据库、使用数据库、删除数据库、查询数据库,以及表的创建、字段约束(主键、唯一、非空和默认)、修改表结构、插入、修改和删除数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL数据库操作

1.创建数据库

create database 数据库名;

2.使用数据库

user 数据库名;

3.删除数据库

drop database 数据库名;

4.查询数据库

show databases;  查询所有数据库名

MySQL表操作

1.创建表

create table 表名(     )

-- 语法
	create table 表名(    
        字段名:1  字段类型1(字段长度) [约束] [ comment  字段1注释 ],  -- 不是;号    
        字段名2  字段类型2(字段长度) [ comment  字段2注释 ],	
        ....	
        字段名n  字段类型n(字段长度) [ comment  字段n注释 ]-- 最后一列后面是没有,的
    ) [ comment  表注释 ];

表名:建议多个单词使用下划线分割。
字段名:建议多个单词使用下划线分割。
字段类型:
约束:
字段类型
大分类类型描述
数值类型int大整数
float浮点数类型
double浮点数类型
字符类型varchar(30)可变长度字符串,如果插入的长度小于定义长度时,插入多长就存多长
char(11)固定长度字符串,如果插入的长度小于定义长度,则可以右侧填充空格
日期类型date日期,格式:yyyy-MM-dd
datetime日期时间,格式:yyyy-MM-dd HH:mm:ss
timestamp时间戳
  • 需求:

    需求:在day035中创建一张名为student1的数据表,表中字段的要求如下

    1. id:标识,数字类型

    2. name:姓名,字符串类型,长度限制最多30个字符

    3. gender:性别,字符串类型,长度限制为1个字符

    4. age:年龄,数值类型

    5. birthday:生日,日期类型,格式YYYY-mm-dd

  • 实例:

    create table student1(
        id int comment '标识',
        name varchar(30) comment '姓名',
        gender char(1) comment '性别',
        age int comment '年龄',
        birthday date
    );

字段约束

约束用于对表中的数据进行进一步的限制,一般作用在表中的字段上,用于保证数据的正确性。

约束种类有:主键约束、唯一约束、非空约束、默认值、外键约束。

约束描述关键字
主键约束主键是一行数据的唯一标识,要求非空且唯一;一张表只能有一个注解列primary key(auto increment自增)
非空约束限制该字段值不能为nullnot null
唯一约束保证字段的所有数据都是唯一、不重复的unique
默认约束保存数据时,如果未指定该字段值,则采用默认值default
外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key

需求:在db1中创建一张名为student3的数据表,表中字段的要求如下:

  1. id:数字类型,主键字段,并且数值自动增长

  2. name:字符串类型,长度限制最多30个字符,要求姓名不能出现重复

  3. gender:字符串类型,长度限制为1个字符,如果不插入,默认为男

  4. age:数值类型,不能为空

  5. birthday:日期类型,格式YYYY-mm-dd

-- 语法
	create table 表名(    
        字段名1  字段类型1(字段长度) [ 约束 ]  [ comment  字段1注释 ],  -- 不是;号    
        字段名2  字段类型2(字段长度) [ 约束 ]  [ comment  字段2注释 ],	
        ....	
        字段名n  字段类型n(字段长度) [ 约束 ]  [ comment  字段2注释 ] -- 最后一列后面是没有,的
    ) [ comment  表注释 ];
    
-- 实例
create table student3(
     id int primary key comment '标识',
     name varchar(30) unique comment '姓名',
     gender char(1) default '男' comment '性别',
     age int not null comment '年龄',
     birthday date comment '生日'
) comment '学生表';

添加完约束之后,可以查询添加一些违法数据,观察报错

-- id重复会报错   Duplicate entry '1' for key 'PRIMARY'
-- 姓名重复会报错 Duplicate entry '黑张三' for key 'name'
-- age为null,会报错  Column 'age' cannot be null

1.主键约束
-- 创建表,声明字段时,确定主键。缺点:只能给一个字段声明主键。
create table pk1(
    id int primary key,
    name varchar(50)
);
-- 创建表,在约束区域,确定主键字段。特点:可以声明联合主键(多个字段合在一起时一个主键)
create table pk2(
    id int,
    name varchar(50),
    constraint primary key (id)
);
-- 创建表后,修改表结构,声明主键。特点:可以声明联合主键
create table pk3(
    id int,
    name varchar(50)
);
alter table pk3 add constraint primary key (id);
测试:
--非空
insert into pk1(id) values(1);   		-- name为null
insert into pk1(name) values('jack');	-- id不允许为null,且没有默认值,添加失败。

--唯一
insert into pk1(id) values(1); 			-- 在执行一遍,添加失败,重复了!!!
										-- Duplicate entry '1' for key 'PRIMARY'
2.非空约束
--只能在创建表,声明字段时,设置非空
create table nn1(
    id int not null,
    name varchar(50) not null
);
测试:
insert into nn1(id) values(1);			--在没有默认值的前提下,添加失败
3.唯一约束
-- 创建表,声明字段时,确定唯一。
create table un1(
    id int unique,
    name varchar(50)
);
-- 创建表,在约束区域,确定唯一字段。
create table un2(
    id int,
    name varchar(50),
    constraint unique (id)
);
-- 创建表后,修改表结构,声明唯一。
create table un3(
    id int,
    name varchar(50)
);
alter table un3 add constraint unique (id);
测试
insert into un1(id) values(1);				--成功
insert into un1(id) values(1);				--失败,重复
insert into un1(name) values('jack');		--成功,允许为null
4.默认约束
--在创建表,声明字段时,设置默认
create table de1(
    id int,
    name varchar(50) default ''
);
测试
insert into de1(id) values(1);		--name没有设置,采用默认值
2.查询表
-- 1. 查看当前库中的所有数据表
show tables;

-- 2. 查看student3表的表结构
-- 语法: desc 表名
desc student3;

-- 3. 查看student3表的建表语句
-- 语法:show create table 表名;
show create table student3;

 3.修改表
-- 添加字段:alter table 表名  add  字段名  类型(长度) 
alter table student1 add description varchar(200);
alter table student1 add `desc` varchar(200);        --关键字需要使用重音符

-- 修改字段类型:alter table 表名 modify  字段名  新数据类型(长度)
alter table student1 modify `desc` varchar(100);

-- 修改字段名和字段类型:alter table 表名 change  旧字段名  新字段名  类型 (长度) 
alter table student1 change `desc` description varchar(150);

-- 删除字段:alter table 表名 drop  column 字段名
alter table student1 drop column description;

-- 修改表名:rename table 表名 to  新表名
rename table student1 to student;
4.删除表
-- 删除表 drop table [ if exists ] 表名
drop table student2;

-- 添加一个删除的数据
create table student2(
    id int comment '标识',
    name varchar(30) comment '姓名',
    gender char(1) comment '性别',
    age int comment '年龄',
    birthday date
);

MySQL数据操作

1.单表查询

设置编码格式,在查询时显示中文数据 set names gbk;

--select * from 表名;
select * from student1;
2.插入数据

 字段名:可以使用重音符括起来,也可以不用。
 值:整型直接写,字符串需要引号引起来。(双引号、单引号都可以。推荐单引号)

--全部字段添加数据
--insert into 表名 values(值1,值2,值3...);
insert into student1 values(1,'张三','男',14,'2023-12-23','在上学');
--指定字段添加数据
--insert into 表名 (字段1, 字段2, 字段3...) values(值1,值2,值3..);
insert into student1 (id, name, age) values (2, '李四', 20);
3.修改数据
--修改数据: update  表名  set  字段名1 = 值1 , 字段名2 = 值2 , .... [ where  条件 ]
---- 如果没有where更新条件,将修改所有数据
update student set name='张三三', gender='女', age=19;				--修改表中所有数据
update student set name='张三三', gender='女', age=19 where id = 1;	--更新指定的
4.删除数据
--删除数据: delete  from  表名  [ where  条件 ]
delete from student where id = 2;
--删除表中所有数据:
delete from student;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值