首页 > 数据库 >MySQL入门之表和数据的操作

MySQL入门之表和数据的操作

时间:2023-01-09 15:13:15浏览次数:42  
标签:... 入门 之表 id 数据表 MySQL TABLE ALTER 字段名

数据表的操作

创建数据表时,要先 use 数据库名;来确定要操作的数据库。

创建数据表

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 (字段名字段类型[字段属性]...)[表选项];

表选项:DEFAULT CHARSET=utf8 表示默认表的编码格式为utf8.

创建一个数据库名为user的表,id为主键自增非空。

CREATE TABLE user(
	id INT(11) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
    name VARCHAR(20) COMMIT '名字',
    sex VARCHAR(20) COMMIT '性别',
    age INT(11) COMMIT '年龄',
    salary FLOAT COMMIT '薪水'
);

not null(非空)、primary key(设置为主键)、auto_increment(自动增加)、commit(备注)

CHAR和VARCHAR的区别:

  • char是固定分配空间,例:char(12)将分配12个字节空间,假如实际内存所占为2个字节,则会自动用空格符填充剩下的10个字节
  • varchar是动态分配空间,例:varchar(12),如果实际存入的数据只有2个字节,则会自动分配2个字节存储空间

因此,varchar会比char更节省内存空间的使用

约束条件 说明
PRIMARY KEY 主键约束,用于唯一标识对应的记录
POREIGN KEY 外键约束,涉及到多表查询
NOT NULL 非空约束,用于指定某个字段不能为空值
UNIQUE 唯一性约束,用于保证数据表中字段的唯一性
DEFAULT 默认值约束,用于设置字段的默认约束

单字段主键

<字段名> <数据类型> PRIMARY KEY

多字段主键

PRIMARY KEY (字段名1,字段名2,字段名n)
CREATE TABLE SC (
	s_id INT,
    c_id INT,
    grade FLOAT,
    PRIMARY KEY (s_id,c_id)
);

每个数据表中可以有多个主键,但只能有一个主键约束

修改表中的某项数据

UPDATE <表名> SET <字段名=要修改后的数据> [WHERE 筛选的内容]

例:

update t_pm set city_name = '广州' where id = 1;

image-20221009110815538

查看表的结构

DESC 表名;

image-20220816111341155

查看数据表

  1. 使用SHOW TABLE 查看已有的表
SHOW TABLES [LIKE匹配模式];

例:查看当前数据库里所有的含every字段的表

SHOW TABLES LIKE'%every%';

image-20220816112602728

  1. 使用SHOW TABLE FROM 查看数据表的相关信息
SHOW TABLE STATUS [FROM 数据库名] [LIKE 匹配模式]

image-20220816114112047

\G”是MySQL客户端可以使用的结束符中的一种,用于将显示结果纵向排列,适合字段非常多的情况。

字段名称 描述
Name 数据表的名称
Engine 数据表的存储引擎
Version 数据表的结构文件(如lib_user_temp.frm)版本号
Row_format 记录的存储格式,Dynamic表示动态
Data_length 数据文件的长度(MyISAM存储引擎)或为集群索引分配的内存(InnoDB存储引擎),均以字节为单位
Create_time 数据表的创建时间
Collation 数据表的校对集
  1. 使用SHOW CREATE TABLE 查看数据表
SHOW CREATE TABLE <表名>;
  1. 使用DESCRIBE 语句查看数据表
DESCRIBE <表名>;

或简写为:

DESC <表名>;

修改数据表

  1. 修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
ALTER TABLE <旧表名> RENAME [TO] <新表名> [,<旧表名2> TO <新表名2>];

修改字段名

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新字段数据类型>;

修改字段的数据类型

ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

修改字段位置

ALTER TABLE <表名> MODIFY <字段1> <字段1数据类型> [FIRST | AFTER 字段2];

修改前表的结构:image-20220816123205092

修改后表的结构:

ALTER TABLE STUDENTS MODIFY age INT ALTER name; 

image-20220816123355427

新增字段

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件][FIRST | AFTER 已存在的字段名]

同时增加多条字段

ALTER TABLE <表名> ADD (新字段1 新字段1数据类型,新字段2 新字段2数据类型,……);

默认情况下,新添加的字段在表的末尾。

删除字段

ALTER TABLE <表名> DROP <字段名>;

为表添加约束条件

ALTER TABLE <表名> ADD [约束条件] <字段名>[,字段名2];

删除约束条件

ALTER TABLE <表名> DROP [约束条件];

若表中有多个主键约束,是不可以单独删除的

删除数据表

DROP TABLE <数据表1> [,数据表2,……];

索引

添加、更新与删除数据

添加数据

添加一条记录

  1. 指定字段名
INSERT INTO <表名> (字段名1,字段名2,...) VALUES (值1,值2,...);
  1. 不指定字段名
INSERT INTO <表名> VALUES (值1,值2,...);

不指定字段名,添加的值的顺序必须和字段在表中定义的顺序相同

添加多条记录

INSERT INTO <表名> (字段名1,字段名2,...) VALUES (值1,值2,...),(值1,值2,...),...,(值1,值2,...);

INSERT INTO <表名> VALUES (值1,值2,...),(值1,值2,...),...,(值1,值2,...);

通过SET添加数据

INSERT INTO <表名> SET <字段名1> = <值1> [,<字段名1> = <值2>,...];

更新数据

UPDATE <表名> SET <字段名1> = <值1>[,<字段名2> = <值2>,...] [WHERE <条件表达式>];

删除数据

delete

DELETE FROM <表名> [WHERE <条件表达式>]

truncate

TRUNCATE TABLE <表名>;
  1. delete可接WHERE 来选择是否全删和部分删除数据,truncate 则是直接全部删除
  2. delete通常被认为是DML 语句,而truncate则通常被认为是DDL语句
  3. 若都选择全删数据,并且表中有自增字段,那么truncate 会重新从1开始自增,而delete则会从被删之前最大值加1开始自增

标签:...,入门,之表,id,数据表,MySQL,TABLE,ALTER,字段名
From: https://www.cnblogs.com/Mr-Sponge/p/17037090.html

相关文章

  • MySQL 同步多张表到目标库
    vi/etc/my.cnf#目标库[mysql]host=172.16.1.10user=rootpassword=xxxxxxxx#源数据库[mysqldump]host=127.0.0.1user=rootpassword=xxxxxxxxssl-mode=DISABLED=====......
  • mysql安装与配置
    下载mysql进入msql官网downloads点击此链接点击链接点击绿框,选择版本下载第一个配置文件在mysql的安装目录下创建my.ini将下面的代码输入进去[mysql]default......
  • python ssh链接Mysql数据库
    fromsshtunnelimportSSHTunnelForwarderimporttime,datetime,pymysql,json,requestsdefssh_mysql(sql,method):#SSH信息ssh_ip=''ssh_port=22......
  • 比特币入门 ② - 钱包
    比特币入门②-钱包钱包概述定义广义上讲,钱包是一个应用程序,为用户提供交互界面。钱包控制用户访问权限,管理私钥和地址,跟踪余额以及创建和签名交易。狭义上讲,从......
  • 新手必读:PhoneGap入门六大问题
    目录(?)[-]PhoneGap是什么开发出的PhoneGap应用是什么样的形态如何调试PhoneGap应用如何部署PhoneGap应用如何使PhoneGap应用在移动设备和应用环境中运行PhoneGap和AIR的区......
  • 比特币入门 ① - 私钥、公钥、地址
    比特币入门①-私钥、公钥、地址相关资源豆瓣:精通区块链编程私钥、公钥、地址概述一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公钥。私钥(k)......
  • k8s运行mysql主从架构
    namespacemysql-ns.yamlapiVersion:v1kind:Namespacemetadata:labels:kubernetes.io/metadata.name:wgs-mysqlname:wgs-mysql创建ns#kubectlapply......
  • mysql 合并数据集union
    在mysql中,可以利用UNION操作符来合并查询结果,该操作符用于将两个以上的SELECT语句的查询结果合并到一起,然后去除掉相同的记录;语法“查询语句1union查询语句2union..........
  • mysql要不要使用外键约束
    以我现在的观点来看,只要不是什么超大型的并发量很高的应用(类似淘宝、京东这种),因为数据量超大,即使是0.00001的性能缺失也会被放大到可以明显感觉的程度那么用外键可以省事,......
  • MySQL优化三,SQL语法
    ##1.3.MySQL调优前言:在前面的基础之上把相应的数据库表设计得很完美,建立了好用的索引,如果SQL语句中没有使用到相应索引的话,也是白搭,如何设计好一点的SQL,则是一大问题###......