MySQL关于表的知识点,进来学习!

本文详细介绍SQL的基本操作,包括表的创建、数据的增删改、表结构变更、表复制及安全管理。涵盖数据类型如int、varchar、date等,示例演示如创建学生信息表、数据插入更新删除、表字段添加及重命名、表复制与用户权限设置。

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

一、表的创建

语法格式如下:create table 表名(字段名 数据类型(长度约束),...);

1、常用数据类型

类型解释
int(长度)整型
bigint(长度)长整型
char(长度)定长字符串,存储空间固定
varchar(长度)变长字符串,存储空间等于实际数据空间
double(有效数字位数,小数位)数值型
foat(有效数字位数,小数位)数值型
date日期型,格式为:年-月-日
datetime日期型,格式为:年-月-日 时:分:秒
time日期型,格式为:时:分:秒
blob二进制大对象,适合音频、图片
clob字符大对象,适合大文本

2、示例

创建student表:学号、姓名、班级、所属学校、性别

create table student(
	id int(10) NOT NULL AUTO_INCREMENT,
    name varchar(255) NOT NULL,
    class varchar(255),
    school char(19) DEFAULT 'YuCai Middle School',
    gender char(1),
    PRIMARY KEY(id)
    );

注释

  • 字段可以在创建时指定默认值,如果不指定默认值为NULL。

二、表数据的增删改

1、添加:insert

语法格式如下:

  1. insert into 表名(字段名,...) values(对应的赋值,...);
  2. insert into 表名 select语句;:将select的查询结果作为数据插入到表中。

注释

  1. 如果不指定全部的字段名,除了已赋值的字段,余下的为默认值;
  2. 字段名和对应的值顺序上要一一对应;
  3. 字段名的顺序没有必要跟建表时一致;
  4. 如果想一次性插入多条数据,values后可以有多个,连接的小括号;
  5. 如果省略字段名,赋值必须要与创建表时的字段顺序对应,且即便已经有默认值的字段也要赋值。

示例
insert into student(id,name,class,gender) values(1,'Alice','1-1','M');

mysql> select * from student;
//1-1表示1年级1班,M表示男性
+------+-------+-------+---------------------+--------+
| id   | name  | class | school              | gender |
+------+-------+-------+---------------------+--------+
|    1 | Alice | 1-1   | YuCai Middle School | M      |
+------+-------+-------+---------------------+--------+

给date型数据赋值的方法

  1. 按照规定的格式给出日期:例如'2000-01-01'就是合适的表达方式;
  2. 格式转换,例如str_to_date('2000-01-01','%Y-%m-%d');
  3. now()获取当前日期或时间。

2、修改:update

语法格式如下:update 表名 set 字段名=值,... where 条件,如果不加条件则修改表中字段对应的所有数据。
示例
插入时不小心输错了Alice的性别,修改如下:update student set gender='F' where id=1;

mysql> select * from student;
+------+-------+-------+---------------------+--------+
| id   | name  | class | school              | gender |
+------+-------+-------+---------------------+--------+
|    1 | Alice | 1-1   | YuCai Middle School | F      |
+------+-------+-------+---------------------+--------+

3、删除:delete

  语法格式如下:delete from 表名 where 条件;,如果不加条件则删除表中所有数据,这种方式可回滚,不是永久性的删除。如果想要永久删除数据,截断表,可用truncate table 表名
  如果要删除表,可用drop table 表名drop table if exists 表名

三、表结构变更

// 在col_name2后新增一列:col_name1
ALTER TABLE tbl_name
ADD col_name1 type
AFTER col_name2;

// 重命名表
RENAME TABLE tbl_name TO new_tbl_name;

四、表的复制

语法格式如下:create table 表名 as select语句;表示将select的查询字段当作一张新表,同时数据也被复制过去。
示例
create table student_copy as select id,name from student;

//查询表结构
mysql> desc student_copy;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | YES  |     | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
//查询表中所有数据
mysql>  select * from student_copy;
+------+-------+
| id   | name  |
+------+-------+
|    1 | Alice |
+------+-------+

五、安全管理

mysql数据库有一个名为user的表,它包含所有用户账号。user表有一个名为user的列,它存储用户登录名。

创建用户

CREATE USER user_name IDENTIFIED BY 'password';密码需包含大小写字母、数字、特殊字符。

设置访问权限

SHOW GRANTS FOR user@host 显示用户的权限,USAGE ON *.*表示没有任何权限。

GRANT SELECT/UPDATE... ON db_name.tbl_name TO usesr@host 为用户添加数据库.表的访问权限。

表的C(create)R(read)U(update)D(delete)就介绍到这里,欢迎评论区交流~👍

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值