道家人 发表于 2024-6-25 22:31:00

【MySQL】不允许你不会SQL语句之DDL

https://img-blog.csdnimg.cn/a2d353526fef40139def705c4f8290a2.gif
目录
前言:
一.DDL数据库语句
1.1语句解说
1.2总结
二.DDL表语句
2.1语句解说
2.2总结
三.DDL字段语句
3.1语句解说
3.2总结
四.MySQL数据类型
五.结尾

前言:

  在从零到一入门MySQL一篇中,我们对数据库已经有了肯定的相识,接下来让我们学习SQL语句吧!
     如果你对数据库的创建,查找,删除;表的创建,字段的增删不清楚,看完本篇,你肯定有所收获!
一.DDL数据库语句

1.1语句解说

  DDL是数据定义语言,用来对数据库、表、字段举行操作。
show databases;   这句代码是让命令行窗口显示服务器里一共有多少个数据库,请看下图:
https://img-blog.csdnimg.cn/5dcf9ed637c042c98bf727c404479889.png
  MySQL系统软件下载后,内里默认有四个系统数据库。
create database if not exists 数据库名 default charset utf8mb4;   这句代码是创建一个数据库的DDL语句。此中的if not exists 和 default charset utf8mb4是可以省略的。
  if not exists的作用是,如果存在test这个数据库,这句代码什么都不实行,不存在就创建test数据库。
https://img-blog.csdnimg.cn/5e8103ebcf2b4051aabda6669f26ffe6.png
  下滑线部分表现数据库创建乐成。
  增补:数据库中有些字符用3个字节不够表现,utf8的大小是3个字节,utf8mb4是4个字节大小。
use 数据库名;   这句代码的作用是指定利用数据库;
https://img-blog.csdnimg.cn/a30beb9be1b6427491cbc23f7e29c8e9.png
  在一般情况下,对一个数据库里的表、字段举行多步操作后,已经忘了自己所处的数据库,利用这句代码:
select database();   这句代码可以指出现在处在哪个数据库。
https://img-blog.csdnimg.cn/7d1111a30a4f4d879adebb53585c63a2.png

drop database if exists 数据库名;   这句代码是删除数据库的代码,if exists可以省略,意思是如果存在test数据库就删除,否则不实行任何操作。
https://img-blog.csdnimg.cn/b086f1784ba6425391fefe6f2d84111e.png
1.2总结

  DDL语句对数据库的操作有如下:
https://img-blog.csdnimg.cn/1cbe1e97b412426f9f2d4c3195d073a3.png
二.DDL表语句

2.1语句解说

  数据库的数据模子里,数据库里包罗表,以是在讲表的知识,先创建一个数据库先。
show tables;   查询当前利用数据库里包罗的所有表。
https://img-blog.csdnimg.cn/5e64490774114991be6dd7bb282af91f.png
  由于是新建的数据库,以是是空表Empty。
create table employee(
id int comment '编号',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄'
)comment '员工表';   这是创建表的代码,我们来慢慢分析,别怕!
  起首create table是创建表的意思,这个表名是employee。
  接着id、gender、age是表格的字段名、int、char(1)、tinyint是数据类型。
  最后comment这一部分是注释,可以省略。
https://img-blog.csdnimg.cn/1fcedef9bb6240ffbf1a1f317da25479.png
https://img-blog.csdnimg.cn/d84936a71572455ea2e6a3681d738743.png
  每一个字段与另一个字段之间用逗号隔开,最后一个不加逗号。
desc 表名;   这句代码可以显示表的字段名,字段的数据类型。
https://img-blog.csdnimg.cn/6b213139b0f44487ba72c68069e17ba7.png
  但是看不到注释,固然我们知道id大概是编号的意思,但是什么编号就不知道了,普通人?门诊号?还有一种查表的语句:
show create table 表名;   这句代码的意思是,展示创建表时的语句。
https://img-blog.csdnimg.cn/48c25615ab5e4c00841d4d7aa4cf610e.png
alter table 表名 rename to 新表名;   这句代码的意思是选择原先的表名,改成新的表名。
https://img-blog.csdnimg.cn/7f26f48f71ff40339f6f41f8b0c3c541.png
drop table if exists 表名;   这句代码是用来删除指定表名的表,if exists可以省略,它的意思同前面用到的地方意思是一样的。
https://img-blog.csdnimg.cn/383ce10b6e32483fa879c2d37b1b45ee.png
  删完之后,test数据库里就没有表了,以是再次显示表的信息时为空。 
truncate table 表名;   这句代码也是用来删除表的,但它会重新创建一个相同类型的没有数据的表,但表的布局还在。
  比如前面emp这个表不是利用drop而是利用truncate的话,那在show tables的时候,还能看到emp表。
2.2总结

  DDL语句对表的操作有如下:
https://img-blog.csdnimg.cn/99c7a337510f4ca2aed53f9b6b266783.png
三.DDL字段语句

3.1语句解说

  对表中的字段举行操作,也是DDL语句有的属性。接下来我们就来学习对字段的操作吧~
https://img-blog.csdnimg.cn/530cc1d3b57a467ab573346c396d914e.png
  突然以为这个表在创建的时候,没有添加一个信息,想增长一个字段,可以这样做:
alter table 表名 add 字段名 数据类型 ;   比如想加一个表现薪资的字段:
https://img-blog.csdnimg.cn/f16e124efe78470ead88614464a2ae4d.png
   老板发现工资用int表现,工资给太高了,想给个小一点的整型表现,于是:
alter table 表名 modify 字段名 新数据类型; https://img-blog.csdnimg.cn/8580888e76814ed3b0b88a3e3066da3b.png
  这样就可以改掉原先字段的数据类型了,老板很是开心~
  后来老板发现,这个薪资不能直接用数字表现出来,用等级的话潜伏性会更好,这就需要更换整个字段。
alter table 表名 change 旧字段 新字段 新数据类型 ; https://img-blog.csdnimg.cn/b8c0c8c4e95b4512b364966fac1ca97c.png
  此时,老板的想法告竣了。
alter table emp drop 字段名;   这段代码的意思是删除指定表的字段名。 
https://img-blog.csdnimg.cn/defecd4d643343e4aa6cc2dd1977aa09.png
3.2总结

  以下是DDL语句对字段的操作:
https://img-blog.csdnimg.cn/f9fa1c3e45234b4182ac28ca457e0806.png
  讲到这里,DDL语句的基本操作就讲完啦!大概读者很好奇tinyint、smallint、char(1)这些是什么,我们接下来看。
四.MySQL数据类型

  SQL里的数据类型和别的编程语言有点区别,但也有相似的地方,它分为三类,我们直接看图吧。
https://img-blog.csdnimg.cn/0558decfd7cb4b7f9305bd6df66e39d3.png
    整型:
  数值类型是此中的一种类型,tinyint的大小是一个字节的整型,相称于C语言里的char类型。

  smallint相称于C里的short,bigint相称于C里的long long类型。特殊一点的是mediumint占三个字节大小。

  浮点类型和C是一样的,有两点特别的是:decimal和控制浮点数小数点保留位数的方式。
  这里得引入两个概念,精度和标度。


[*]精度是浮点数统共有多少位数,比如3.14的精度是3。
[*]标度是浮点数有多少个小数位,6.1的标度是1。
  怎样表现三位数,一个小数位呢?起首统共有四个有效位,其次是一个小数位,是这样表现的double(4,1)。
https://img-blog.csdnimg.cn/29f363735fc24651a6d019be783c913b.png
  在字符串类型里,有char和varchar,学过C语言的读者会遐想到表现字符串用char arr[元素个数]数组表现。
  在MySQL用char(元素个数)表现定长数组,varchar(元素个数)表现可变数组。留意不是方括号。
     blob是表现二进制数据的数据类型,text是表现文本数据的数据类型;

  二进制数据类型的有软件包、音频呀这些。一般不会用数据库存储的。

  tinyblob一个字节、blob两个字节、mediumblob三个字节、longblob四个字节、text一样的,博主不赘述了。
https://img-blog.csdnimg.cn/91f448c9989e4408b54ad94b7350f936.png
  表现日期时间的数据类型:
  date是表现年月日--- yyyy--mm--dd
  time是表现时分秒--- hh--mm--ss
     year是表现年--- yyyy

  datetime表现年月日,时分秒

  timestamp表现的也是年月日,时分秒,差别于datetime的是timestamp是时间戳,由于数值溢出的原因,在2038年会失效,也叫Unix千年臭虫。
五.结尾

  好啦,到这里就讲完SQL语句里的DDL语言,还讲了MySQL中的数据类型与别的编程语言有肯定联系,也有区别。
  下面我们将会继续学习SQL语句的另一个分类DML,点点关注不迷路~



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【MySQL】不允许你不会SQL语句之DDL