【MySQL学习笔记002】SQL语法与分类—DDL

一、SQL通用语法

1、SQL语句可以单行或多行书写,以分号结尾
2、SQL语句可以使用空格/缩进来增强语句的可读性
3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4、注释:
(1)单行注释: 注释内容 或 #注释内容(注意:“–”后需要空一格)
(2)多行注释:注释内容 /* */

二、SQL分类

1、DDL(Data Definition Language):数据定义语言,用来定义数据库对象(数据库、表、字段)
2、DML(Data Manipulation Language):数据操作语言,用来对数据库表中的数据进行增删改
3、DQL(Data QueryLanguage):数据查询语言,用来查询数据中表的记录
4、DCL(Data Control Language):数据控制语言,用来创建数据库用户、控制数据库的访问权限

三、SQL分类详解

1、DDL

1.1 定义

数据定义语言(Data Definition Language,DDL):用来定义数据库对象(数据库、表、字段),主要用于对数据库、数据表、数据表字段进行操作。

1.2 核心指令

(1)创建:CREATE。主要用于创建数据库、数据表
(2)删除:DROP。主要用于删除数据库、数据表
(3)修改:ALTER。主要用于添加/修改字段、修改数据类型等。

1.3 DDL-数据库操作命令

1.3.1 数据库操作常用命令

1、查询所有数据库: show databases;
2、查询当前数据库: select database();
3、创建数据库: create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
4、删除:drop database [if exists] 数据库名;
5、使用:use 数据库名;

1.3.2 数据库操作实例

1、查询所有数据库: show databases;
在这里插入图片描述
2、创建数据库:create database XXX; or create database if not exists XXX; (可以避免已经存在相同名字的数据库)
在这里插入图片描述
在这里插入图片描述
使用第二种方式创建数据库,可以看到如果数据库已存在,会抛出一个warning。
3、创建一个指定字符集的数据库: create database ittest default charset utf8mb4;
在这里插入图片描述
4、删除: drop database XXX; or drop database if exists XXX;
在这里插入图片描述
在这里插入图片描述

删除一个不存在的数据库,会出现报错,但是使用第二种方法删除,则会隐藏报错,跑出警告。
5、使用数据库:use XXX;
在这里插入图片描述
若在操作过程中,忘记使用的是哪个数据库,则可使用 select database(); 查询当前数据库
在这里插入图片描述
若需要切换数据库,直接使用 use XXX; 即可

1.4 DDL-数据表操作命令

1.4.1 数据表操作常用命令

1、表查询
(1)查询当前数据库所有表:show tables;
(2)查询表结构: desc 表名;
(3)查询指定表的建表语句(详细): show create table 表名;
2、创建表

create table 表名(
字段1 字段1类型 [comment 字段1注释],
字段2 字段2类型 [comment 字段2注释],
....
字段n 字段n类型 [comment 字段n注释],
) [comment 表注释];

3、修改表
(1)添加字段: alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
(2)修改数据类型: alter table 表名 modify 字段名 新数据类型(长度);
(3)修改字段和字段类型: alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
(4)删除字段: alter table 表名 drop 字段名;
(5)修改表名: alter table 表名 rename to 新表名;
(6)删除表:drop table [if exists] 表名;
(7)删除指定表,并重新创建该表:truncate table 表名;

1.4.2 数据表操作实例

1、创建表操作实例:查询与创建
(1)切换数据库(这里切换到练习用数据库): use XXX;
在这里插入图片描述
(2)创建表:create table XXX();
在这里插入图片描述
(3)查看数据库内数据表情况: show tables;
在这里插入图片描述

(4)查询表结构: decs tb_user;
在这里插入图片描述
(5)查询指定表的建表语句(查看详细内容): show create table tb_user;
在这里插入图片描述

其中:
‘ENGING’为存储引擎
‘DEFAULT CHARSET’为存储字符类型
‘COLLATE’为排列规则
2、数据类型实例
设计一张员工信息表,要求如下:

a. 编号(纯数字)
b. 员工工号(字符串类型,长度不超过10位)
c. 员工姓名(字符串类型,长度不超过10位)
d. 性别(男/女,存储一个汉字)
e. 年龄(正常人年龄,不可能存储负数)
f. 身份证号(二代身份证号均为18位)
g. 入职时间(取值年月日即可)

(1)添加表结构
在这里插入图片描述
查询刚刚的添加
在这里插入图片描述

3、表结构修改实例
(1)添加实例
为刚刚创建的emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)
在这里插入图片描述
同样,添加完可以可以查询一下,desc emp;
在这里插入图片描述
(2) 修改实例
将emp表的nickname字段修改为username, 类型为varchar(30)。查询,修改成功
在这里插入图片描述

(3)删除实例
将emp表的字段username删除,查询,删除成功
在这里插入图片描述
(4)修改表名实例
将emp表的表名修改为employee
在这里插入图片描述
(5)删除表
① 删除
在这里插入图片描述
② 删除并重建(清空数据,保留表结构)
在这里插入图片描述
在删除表时,只会删除表中的数据

2、补充:数据类型

在MySQL中,数据类型一般分为数值类型、字符串类型、日期时间类型等

2.1 数值类型

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1 byte(-128, 127)(0, 255)小整数值
SMALLINT2 bytes(-32768, 32767)(0, 65535)大整数值
MEDIUMINT3 bytes(-8388608, 8388607)(0, 16777215)大整数值
INT或INIYEGER4 bytes(-2147483648, 2147483647)(0, 4294967295)大整数值
BIGINT8 bytes(-2^63 , 2^63-1)(0 , 2^64-1)极大整数值
FLOAT4 bytes(-3.402823466 E+38,3.402823466351 E+38 )0和(-1.175494351E-38,3.402823466351 E+38 )单精度浮点数值
DOUBLE8 bytes(-1.797693134862315 E+308, 1.7976931348623157 E+308)0和(2.2250738585072014 E-308, 1.7976931348623157 E+308)双精度浮点数值
DECIMAL依赖M(精度)和D(标度)的值依赖M(精度)和D(标度)的值小数值(精确定点数)

2.2 字符串类型

类型大小描述
CHAR0~255 bytes定长字符串
VARCHAR0~65535 bytes变长字符串
TINYBLOB0~255 bytes不超过255个字符的二进制数据
TINYTEXT0~255 bytes短文本字符串
BLOB0~65535 bytes二进制形式的长文本数据
TEXT0~65535 bytes长文本数据
MEDIUMBLOB0~16777215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0~16777215 bytes中等长度文本数据
LONGBLOB0~4294967285 bytes二进制形式的极大文本数据
LONGTEXT0~4294967285 bytes极大文本数据

2.3 日期时间类型

类型大小范围格式描述
DATE31000-01-01至 9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 车 838:59:59HH:MM: SS时间值或持续时间
YEAR11901 至 2155YYYY年份值
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合时间和时间值,时间戳

————————————————
以上内容仅为学习笔记,若有问题,请大家指正批评!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值