• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL 表操作{创建|查询|修改|删除}

mysql 搞代码 4年前 (2022-01-09) 21次浏览 已收录 0个评论

什么是表? 表:table 逻辑上 每一个表在数据库中包含了行和列表可以为0行 但至少要有一列 表同样支持索引的查询 物理

什么是表

表:table

逻辑上 每一个表在数据库中包含了行和列
表可以为0行 但至少要有一列 表同样支持索引的查询
物理上 每个表由一个或多个文件在磁盘上保存
每一个表的存储 在数据库中目录中都有对应的文件系统格式
表空间:比表大而比数据库小的物理单位

创建表:
help CREATE TABLE
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name ( // 新建一个表
(create_definition,…)
[table_option]…
);
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name ( // 选择已知表的字段并创建
[(create_definition,…)]
[table_option] …
SELECT [select_statement]
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name ( // 参照已知表进行创建
{ LIKE old_tbl_name | (LIKE old_tbl_name)} 字段与字段间用 , 隔开

查看如何创建:
SHOW CREATE TABLE tbl_name;
—————————————————————————
e.g.
CREATE TABLE employee (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
UNIQUE (id),
INDEX (last_name, first_name)
);
CREATE TABLE … SELECT can create a table that is empty or non-empty, depending on what is returned by the SELECT part
CREATE TABLE … LIKE creates an empty table using the definition of another existing table
CREATE TABLE tbl_name (
ID INT UNSIGNED AUTO_INCREMENT NOT NULL,

—————————————————————————


内置了N多的函数 增加使用效果
参照 MYSQL 官方手册
聚合函数
COUNT(*), MAX(), MIN(), AVG(), SUM()
除了函数 还可以使用变量
SET @num=10 // 设置变量为10
应用声明要使用@
===========================================================================
修改表结构:
ALTER TABLE t1 CHANGE a b INTERGER; // 把一个INTERGER列的名称从a变到b
ALTER TABLE t1 MODIFY b b BIGINIT NOU NULL // 修改类型 修改定义和位置 而不改变字段名
可以使用FIRST或AFTER col_name在一个表行中的某个特定位置添加列。默认把列添加到最后。您也可以在CHANGE或MODIFY语句中使用FIRST和AFTER
—————————————————————————
ALTER TABLE tbl_name MODIFY col_name col_definition 改变位置
ALTER TABLE tbl_name CHANGE col_name col_definition
—————————————————————————
添加一个新字段
ADD {FIRST | AFTER} col_name col_definition

添加索引:
ADD {INDEX|KEY} [index_name] [index_type] (col..)
index_type: BTREE、HASH、RTREE、FULLTEXT

删除格式:
DROP col_name; //删除字段
DROP PRIMARY KEY; // 删除主键

DROP {INDEX|KEY} index_name; //



INSERT 还支持一次插入多行

修改数据 : DML
UPDATE table_name SET col1=val1[, …] [WHERE clause] //需要指定条件 否则更新所有列
e.g. UPDATE knight SET AGE=18 WHERE UID=1

help TRUNCATE;
SELECT LAST_INSERT_ID(); //记录最后的ID 行
TRUNCATE TABLE table_name; // 清空表中的所有数据 并重1开始计数
—————————————————————————
多表查询

两张表如何组织起来:
JOIN, 连接 基于某种方式 把表组合起来

连接的种类:本文来源gao@!dai!ma.com搞$$代^@码!网!
1.交叉连接,CROSS JOIN 笛卡尔乘积 // 一般很少用 但是适用所有情况 在内存中临时存储 在 磁盘上存储 结果 所以是非常非常的慢
2.内连,,INNER JOIN 对称连接
基于等值条件 左右表同时出现 且值相等
如果字段名字相同 就要引用表前缀 table_name.col_name
3.外连接 OUTER JOIN
左外连接 LEFT JOIN ON
左边有 右边显示NULL // 左表显示的有的全显示 右边有的显示 没有的显示NULL
右外连接 RIGHT JOIN [ON] on 指条件
左边NULL 右边显示
全外连接 FULL JOIN
都显示出来 左表有的右表没有 右表有的左表没
4.自连接 SELF JOIN 自己与自己相连接
5.UNION 结果组合连接起来
将两个表的查询结果合成一个


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL 表操作{创建|查询|修改|删除}
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址