[MySQL]基本数据范例及表的基本操纵

打印 上一主题 下一主题

主题 878|帖子 878|积分 2634

           
哈喽,各人好!我是保护小周ღ,本期为各人带来的是 MySQL 数据库常用的数据范例,数据表的基本操纵:创建、删除、修改表,针对修改表的布局进行了解说,随后是怎样向数据表中添加数据,浅浅的提了一下表中数据的查询,更多相关知识敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★*

              
           
  一、常用的数据范例

  1.1 数据库表的列范例

  <blockquote class="kdocs-blockquote" style="text-align:left;">   数值 1 2 3.14   

  • tinyint 非常小的数据 1个字节
  

  • smallint 较小的数据 2个字节
  

  • mediumint 中等巨细的数据 3个字节
  

  • int 尺度的整数 4个字节
  

  • big 较大的数据 8个字节
  

  • float 浮点数 4个字节
  

  • double 浮点数 小数 8个字节(精度题目)
  

  • decimal 字符串情势的浮点数 (金融计算的时候一样平常利用)
  <blockquote class="kdocs-blockquote" style="text-align:left;">   字符串   

  • char 固定巨细字符串 0-255 char(5) 00001
  

  • varchar 可变字符串 0-65535  varchar(5) 1
  

  • tinytext 微型文本 2^8 - 1
  

  • text 文本串 2^16 -1 保存大文本
  <blockquote class="kdocs-blockquote" style="text-align:left;">   时间日期   

  • date YYYY-MM-DD,日期 (year,month,day)
  

  • time HH: MM : SS 时间格式(hour:minutes,seconds)
  

  • datetime YYYY-MM-DD HH: MM:SS (年代日,时分秒)最常用的时间格式
  

  • timestamp 时间戳, 1970.1.1到现在的毫秒数!
  

  • year 年份
  <blockquote class="kdocs-blockquote" style="text-align:left;">   null   

  • 没有值, 未知
  

  • 留意,不要利用null进行运算,结果肯定为null
  
  

  • 上面看到的这类基本数值数据范例都是有符号的,MySql 也是支持无符号的数据范例,unsigned 作为前缀,但是 官方也发起无符号范例不发起利用,特定情况下会产生很严重的误差,例如,a - b, b > a,但是由于没有符号限制,两者相减反而会产生一个很大的数,在MySql 后续的版本中也不会在支持无符号范例了。
  

  • 在利用浮点型数据时,最好选择decimal ,他的精度比 float 、double 更高,语法: decimal(M,N) M : 整个数据的总长度,N:数据小数的位数。例如: 3.14, M = 3, N = 2; 在表示货币的时候我们可以采用 int 范例,这样就不会有精度的题目,采用”分“为单位。例 :123,表示 1.23 元。
  

  • 我们在利用时间范例是,不知道该用什么样的格式插入时间,在插入时间的时候,是通过特定的字符串来表示时间日期的,例如: "2023-02-9 16:12:00", 对于字符串来讲 英文单引号或者双引号都可以。日期年代日之间用 '-' 减号连接,与时间之间隔一个空格,时间之间用 ':' 连接。以这样的情势输入的字符串,服务器就会识别为时间。如果我们想利用当前系统时间,SQL 提供了一个返回当前系统时间的函数 now(),这个函数赋值即可。
  
  二、数据表的基本操纵

  书接上篇,我们已经学习了怎样操纵数据库,本篇学习怎样操纵数据表,在操纵数据表的时候,需要选中数据库;
  2.1 创建和删除表

  声明:本篇博客报告的是根本操纵,关于数据库的字段属性尽请期待下一篇博客。
  根本语法 :
  1. create table table_name (
  2. `字段名` [属性] [索引] [注释],
  3.   `字段名` [属性] [索引] [注释],
  4.   ...
  5.   `字段名` [属性] [索引] [注释],
  6. …… ……
  7. );
复制代码
那么在创建一个表之前呢,也可以判断一下这个表是否存在,就像创建数据库时的操纵一样。
  1. create table if not exists student (
  2.               ……
  3. );
复制代码
可以利用 comment 增长字段说明,只是给 sql语句提供一个注释作用,在创建的时候。
  例如:
  1. create table stu_test (
  2. id int,
  3. name varchar(20) comment '姓名',
  4. password varchar(50) comment '密码',
  5. );
复制代码
例题:
  -- 创建学生表(列,字段) 利用SQL创建
  -- 学号int 姓名 varchar(10),varchar性别sex('男','女'),身高decimal(3,2),参加时间 datetime。
  -- 字符串利用 单引号括起来!
  -- 所有语句后面加,(英文的),最后一个不消加
              
           现在我们已经创建好了一个student 的数据表,接下来的操纵是查看一下这个表的布局。
  1. desc teble_name;
复制代码
desc ->describe 的缩写,形貌一个表的布局。
              
           
  创建了一个表,那自然要学习怎样删除一个表,。
  删除表(drop):(如果表存在再删除)
  1. drop table if exists student;
  2. --当然最稳妥的操作是 指定数据库之后再选择表,这样就可以避免误操作
  3. drop table if exists school.student;
  4. --这样删也是可以的,但是更容易报错
  5. drop table student;
复制代码
由于我们是student 数据表是创建在 school 数据库内里,然后可以通过 ‘.’这个符号来约束一下,制止误操纵,这也是一种准确表示的方法。
  ==所有的创建和删除操纵,只管加上判断以免报错==
  
  2.2 修改表的布局(alter)

  -- 修改表布局
  依据上表 student 表为例,如果我们在创建好表的布局之后,不免在会有所纰漏,比如说少添加了一个字段,又或者是发现某个字段不符合需要删除,还有修改字段属性等等……
  2.2.1-- 添加字段

  student 表 新增一个叫做 telephone (手机号)的字段,它的范例是可变字符串。
  语法:add 是关键字
  1. alter table 【表名】 add 【新增字段名】【属性】 ;
复制代码
            
           
  2.2.2 -- 修改字段 (留意本条语句不修改字段名)

  假如我们发现表中的telephone (手机号)的字段 属性的长度给少了,以是我们需要修改一下这个字段。
  语法:modify 是关键字
  1. alter table 【表名】 modify 【字段名】【修改后的属性】 ;
复制代码
            
           
  2.2.3 -- 修改字段名

  
假如我们发现表中的某个字段的 字段名没取好名,也是可以修改的,例如将 sex 修改为 gender (性别)

  
语法: change 是关键字

  1. alter table 【表名】 change 【原字段名】【修改后的字段名】【属性】 ;
复制代码
            
           
  2.2.4 -- 删除字段

  这个就很好理解了,删除某个字段(列名), 本次删除 telephone 字段。
  语法:
  1. alter table 【表名】 drop 【字段名】;
复制代码
            
           
  2.2.5 -- 修改表名

  将student 数据表 表名修改为 stud。
  语法:关键字 rename
  1. alter table 【表名】 rename 【修改后的表名】;
复制代码
            
           执行语句后表名已经被修改,以上操纵,轻易不要操纵,轻易造成一系列的连锁反应(蝴蝶效应,动了一个表,可能需要修改多个表的数据,关系型数据库),在创建的时候就将表的布局计划好,尽可能的淘汰表布局的修改。
  
  2.3 添加数据(insert into )插入

  语法:
  1. insert into 表名([字段名1,字段名2,字段名3])values('值1'),('值2)',('值3')...
复制代码
into 其实可以不消写,可以根据个人意愿决定。
  2.3.1-- 插入时匹配对应的值

              
           这种方式插入数据,需要指定需要插入的列名(字段),然后根据列名(在记录没有约束的情况下)插入数据。
  意思就是你可以只插入“李四" 独占一行。留意观察插入日期的格式。
  
  2.3.2 -- 不声明字段新增数据,必须把所有字段的值都写上

              
           此处利用now() 函数来插入日期时间。
  
  2.3.3 -- insert语句后面可以加多个VALUES,可以添加多个数据

              
           多行插入只需要写一个 values 即可,多行插入的性能也是优于 单行插入的,由于MySql 本质上就是客服端服务器的步伐,客服端发出指令,服务器进行相应的处理,一行一行的插入意味着反复发送指令,这个点不知道各人能否能 get 到呢?
  
  留意事项:
  <blockquote class="kdocs-blockquote" style="">   字段和字段之间利用英文逗号隔开   
字段是可以省略的,但是后面的值必须要逐一对应   
可以同时插入多条数据,VALUES后面的值需要利用,隔开即可。   
value,是一个详细的值,也可以是一个函数   
  2.4 根本查询

  语法:
  1. SELECT 字段,...FROM 表
复制代码
以student 表为例。
  -- 查询所有的员工 SELECT 字段 FROM 表
  如果我们需要一次性查找所有的字段,其实不消讲所有字段全部列举出来,可以利用 ”*“ 来替代。
              
           可以看出两者的结果是一样的。
  
  -- 查询指定字段,ID + Name
              
           -- 别名,给查询结果起一个名字 AS, 可以给字段取别名,也可以给表取别名
  -- as可以加也可以不加
              
           这样看起来舒服多了吧,哈哈,as 不加也可以运行,但是最好是加上,制止将别名当作字段。
  -- 别名可以简化字段或者表的名称,更精准的输入
  -- 给student表起别名为stu
              
           不利用 as 也是可以的,在复杂的查询中,利用别名查询,能提拔效率。
  
  好了好了,关于查询就浅浅的说逐一下啦,关于查询还有许多知识,一篇写不下,下篇博客将着重解说查询语句。
  至此,Mysql 系列的第二篇内容博主已经分享完了,希望对各人有所帮助,如有不妥之处欢迎品评指正。
              
           
本期收录于博主的专栏——Java & MySQL,适用于编程初学者,感爱好的朋友们可以订阅,查看其它“MySQL 数据库以及Java JDBC 编程的相关知识”。

  
下一期:MySQL 字段的基本属性,数据表的修改、删除、然后重点—— 查询。

  
感谢每一个观看本篇文章的朋友,更多出色敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★*

  
遇见你,所有的星星都落在我的头上……

  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表