SQL: DDL, DML,表定义与含义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL: DDL, DML,表定义与含义相关的知识,希望对你有一定的参考价值。
DDL: 数据定义语言;
CREATE, ALTER, DROP
DB组件:数据库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器等
CREATE相关的常用命令:
CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
CREATE FUNCTION UDF
CREATE INDEX
CREATE PROCEDURE
CREATE SERVER
CREATE TABLE
CREATE TABLESPACE
CREATE TRIGGER
CREATE USER
CREATE VIEW
DML:数据操作语言;
INSERT, DELETE, UPDATE, SELECT
数据库:
CREATE, ALTER, DROP
{DATABASE|SCHEMA}
[IF EXISTS]
[IF NOT EXISTS] #不存在才创建
表:二维关系
设计表:遵循规范;
定义:字段,索引
字段:字段名,字段数据类型,修改符
约束,索引:应该创建在经常用作查询条件的字段上;
索引:实现级别在存储引擎;
分类:
稠密索引、稀疏索引
B+索引、hash索引、R树索引、FULLTEXT索引(全文索引)
聚集索引、非聚集索引
简单索引、组合索引
创建表:CREATE TABLE
(1) 直接创建;
(2) 通过查询现存的表创建;新表会被直接插入查询而来的数据;
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
select_statement
(3) 通过复制现存的表的表结构创建;不复制数据;
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
mysql> SHOW GLOBAL VARIABLES LIKE ‘%default%engine%‘; #查看表引擎
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
+----------------------------+--------+
2 rows in set (0.00 sec)
注意:Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎;
同一个库中表要使用同一种存储引擎类型;
查看表结构:
DESCRIBE tbl_name;
查看表状态信息:
SHOW [FULL] TABLES [{FROM | IN} db_name] [LIKE ‘pattern‘ | WHERE expr]
mysql> SHOW TABLE STATUS LIKE ‘t1‘G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Compact #行格式
Rows: 2 #已有的行数
Avg_row_length: 8192 #表中现有的所有行的平均长度
Data_length: 16384 #表中数据的大小
Max_data_length: 0 #表数据的最大容量,该值与存储引擎有关 #0代表没有上限
Index_length: 0 #索引大小
Data_free: 0 #目前已分配,但是没有显示
Auto_increment: 5 #自动增长字段
Create_time: 2019-01-29 13:27:33 #创建时间
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci #排序规则
Checksum: NULL #表的校验和
Create_options: #创建表额外指定的其他选项
Comment: #注释,包含了额外的其他信息。
1 row in set (0.01 sec)
修改表:ALTER TABLE
增加字段 mysql> ALTER TABLE student ADD age varchar(20) NOT NULL;
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM student;
+----+----------+---------------+------+-----+
| id | name | register_date | sex | age |
+----+----------+---------------+------+-----+
| 1 | ZhanYang | 2018-06-20 | NULL | |
| 4 | LiuJia | 2018-05-30 | NULL | |
| 8 | JiaLiu | 2018-06-20 | NULL | |
| 9 | JiaLiu | 2018-04-20 | NULL | |
| 10 | gaoyf | 2018-04-20 | NULL | |
| 11 | zhujh | 2018-04-20 | NULL | |
| 12 | zhouha | 2018-04-20 | NULL | |
| 13 | hanzb | 2018-04-21 | M | |
| 16 | ZhanXing | 2018-05-21 | M | |
| 17 | XingYan | 2018-05-21 | M | |
| 18 | Jinjiao | 2019-01-29 | M | |
| 19 | Jinjiao | 2019-01-29 | M | |
| 20 | Yinjiao | 2019-01-28 | F | |
+----+----------+---------------+------+-----+
13 rows in set (0.00 sec)
删除表:DROP TABLE
以上是关于SQL: DDL, DML,表定义与含义的主要内容,如果未能解决你的问题,请参考以下文章