mysql语句之DDL
SQL分类:
DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。
DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert、delete、udpate 和select 等。
DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke 等。
DDL语句:
1、创建数据库
语法:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] ...
例如创建数据库testtest,执行命令如下:
mysql> create database testtest;
2、删除数据库
语法:DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
例如要删除创建的数据库testtest,执行命令如下:
mysql> drop database testtest;
3、创建表
语法:CREATE TABLE tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……
column_name_n column_type_n constraints)
因为MySQL 的表名是以目录的形式存在于磁盘上,所以表名的字符可以用任何目录名允许的字符。column_name 是列的名字,column_type 是列的数据类型,contraints 是这个列的约束条件。
例如:例如,创建一个名称为emp 的表。表中包括4个字段,ename(姓名),hiredate(雇用日期)、sal(薪水)、deptno(部门)字段类型分别为varchar(10)、date、decimal(10,2)、int(2)
mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
表创建完成后,查看表的定义,可以使用命令:DESC tablename
例如,查看emp表,输出如下信息:
mysql> desc emp;
+----------+----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------+------+-----+---------+-------+
| ename | varchar(10) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | decimal(10,2) | YES | | NULL | |
| deptno | int(2) | YES | | NULL | |
+----------+----------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
如要更全面的查看表的定义,可以执行命令:
mysql> show create table emp\G;
*************************** 1. row ***************************
Table: emp
Create Table: CREATE TABLE `emp` (
`ename` varchar(10) DEFAULT NULL,
`hiredate` date DEFAULT NULL,
`sal` decimal(10,2) DEFAULT NULL,
`deptno` int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
ERROR:
No query specified
从上面表的创建SQL 语句中,除了可以看到表定义以外,还可以看到表的engine(存储引擎)和charset(字符集)等信息。“\G”选项的含义是使得记录能够按照字段竖着排列,对于内容比较长的记录更易于显示。
4、删除表
语法:DROP TABLE tablename;
例如,删除表emp,执行如下语句:
mysql> drop table emp;
5、修改表
(1)修改表类型
语法:ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
例如,修改表emp 的ename 字段定义,将varchar(10)改为varchar(20):
mysql> alter table emp modify ename varchar(20);
(2)、增加表字段
语法:ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
例如,表emp 上新增加字段age,类型为int(3):
mysql> alter table emp add age int(3);
(3)、删除表字段
语法:ALTER TABLE tablename DROP [COLUMN] col_name
例如,将字段age 删除掉:
mysql> alter table emp drop age;
(4)、字段改名
语法:ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
例如,将age 改名为age1,同时修改字段类型为int(4):
mysql> alter table emp change age age1 int(4);
(5)、修改字段排列顺序
前面介绍的的字段增加和修改语法(ADD/CNAHGE/MODIFY)中,都有一个可选项first|after column_name,这个选项可以用来修改字段在表中的位置,默认ADD 增加的新字段是加在表的最后位置,而CHANGE/MODIFY 默认都不会改变字段的位置。
例如,将新增的字段birth date 加在ename 之后:
mysql> alter table emp add birth date after ename;
修改字段age,将它放在最前面:
mysql> alter table emp modify age int(3) first;
(6)、表改名
语法:ALTER TABLE tablename RENAME [TO] new_tablename
例如,将表emp 改名为emp1,命令如下:
mysql> alter table emp rename emp1;
mysql语句之DDL的更多相关文章
- 如何通过binlog获取我们想要的MySql语句?
前言 MySql的binlog一般用于我们对数据的恢复,以及从数据库对主数据库的复制和更新. 假设此时我们有一个需要查询和读取Mysql最近操作DDL的信息,我们需要怎么处理? 聪明的你可能已经想到了 ...
- 一些常用的mysql语句实例-以后照写2
specification: 规范, 规格, 产品规范, 产品规格, 技术规范, 产品说明书. 如: create_specification, 等等 创建数据库时, 显式地指明, 字符集: crea ...
- 一些常用的mysql语句实例-以后照写
create database blog; create table blog_user ( user_Name char(15) not null check(user_Name !=''), us ...
- mysql语句总结
mysql语句总结 -- 1,通过windows提供的服务管理来完成 -- services.msc -- 2,dos下的命令来完成 -- 停止 -- net stop mysql -- 启动 -- ...
- 数据库系统(六)---MySQL语句及存储过程
一.DDL.DML.DCL常用语句 1.DDL(Data Definition Language)数据库定义语言 (1)数据库模式定义 #创建数据库 create database if exsite ...
- MySQL语句和命令大全
前言 这里记录的是这两年学习工作过程中遇到的常用的 MySQL 语句和命令,部分是网上收集来的,出处已经不记得了,这里先谢过这些大佬.本文包括常见 SQL 语句,还有部分运维语句和命令,没有做详细的说 ...
- MySQL数据库之DDL(数据定义语言)
1.MySQL数据库之DDL创建.删除.切换 (1)查看所有数据库 show databases: (2)切换数据库 use 数据库名: (3)创建数据库 create database 数据库名: ...
- MySQL操作之DDL
目录 SQL语句的分类 DDL语句 SQL语句的分类 DDL(Data Definition Languages)语句:数据定义语言.这些语句定义了不同的数据段. 数据库.表.列.索引等数据库对象的定 ...
- 数据库-Mysql语句
Mysql语句 不定时更新 1.数据库相关的语句 /* 数据库操作 */ ------------------ -- 启动MySQL net start mysql -- 接与断开服务器 mysql ...
随机推荐
- python-获取类名和方法名,动态创建类和方法及属性
获取类名和方法名1.在函数外部获取函数名称,用.__name__获取2.在函数内部获取当前函数名称,用sys._getframe().f_code.co_name方法获取3.使用inspect模块动态 ...
- #431 Div2 Problem B Tell Your World (鸽巢原理 && 思维)
链接 : http://codeforces.com/contest/849/problem/B 题意 : 给出 n 个在直角坐标系上的点,每个点的横坐标的值对应给出的顺序序数,比如 1 2 4 3 ...
- luogu P1037 产生数 x
P1037 产生数 题目描述 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规则( ...
- 清北学堂算法&&数据结构DAY1——知识整理
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性 ...
- django model 操作总结
使用场景 一对一:在某表中创建一行数据时,有一个单选的下拉框(下拉框中的内容被用过一次就消失了).//两个表的数据一一对应 例如:原有含10列数据的一张表保存相关信息,经过一段时间之后,10列无法满足 ...
- cookie存储userID所遇到的问题
*)问题:control charater in cookie value or attribute 转自:https://blog.csdn.net/weixin_36380516/article/ ...
- 字节对齐#pragma pack
这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n) 作用:C编译器将按照n个字节对 ...
- cefsharp 在高DPI下闪烁的问题
今天有客户朋友说程序在他的surface下界面很闪烁,搜索了相关的资料,初步判定是DPI引起的问题,但也有可能是cefsharp 51版本在WIN10上面没有禁用GPU加速,苦于没有环境测试,所以抱着 ...
- React Native商城项目实战14 - 首页中间下部分
1.MiddleBottomView.js /** * 首页中间下部分 */ import React, { Component } from 'react'; import { AppRegistr ...
- CMakeLists.txt 语法
命令不区分大小写(参数区分大小写) add_executable(demo main.cpp main.h main.rc) 用main.cpp源文件,main.h文件,main.rc文件构造可执行文 ...