第六天MySQL_MySQL论坛

第六天MySQL_MySQL论坛DDL语言库与表的管理(创建、修改、删除)、一些常见的数据类型(整形、浮点|定点、日期,字符)

第六天MySQL

 

2020 5/9

 

二十二、DDL(数据定义语言)->用于库和表的管理

一、 库的管理

a)        创建

b)       修改

c)        删除

二、 表的管理

a)        创建: create

b)       修改: alter

c)        删除: drop

#库的管理

1.库的创建

语法:

create database [if not exists] 库名;(if not exists->是为了提高容错性,没有就创建、有的就不创建)

如:CREATE  DATABASE if not exists books;

 

2.库的修改(基本上不修改,若想修改库名,则需要在服务端的data里修改)

修改库的字符集:

ALTER DATABASE 库名 CHARACTER SET 字符集;

如:

ALTER DATABASE books CHARACTER SET gbk;

3.库的删除

DROP DATABASE IF EXISTS库名;

如:DROP DATABASE IF EXISTS books;

 

#表的管理

 

1.表的创建

语法:

create table(if not exists) 表名(

        列名 类型[(长度) 约束],

        列名 类型[(长度) 约束],

        列名 类型[(长度) 约束],

        …

        列名 类型[(长度) 约束]

);

 

案例:

CREATE TABLE emp5(

       id INT(7),

       First_name VARCHAR(25),

       Last_name VARCHAR(25),

       Dept_id INT(7)

); (可使用if not exists来提高容错性)

查看表结构:

 第六天MySQL_MySQL论坛

 

2.表的修改

①     修改列名

②     修改列的类型或约束

③     添加新列

④     删除列

⑤     修改表名

语法:

alter table 表名 change|modify|drop|add column 列名 【列类型 约束】;

 

#修改列名

语法:

ALTER TABLE 表名 CHANGE COLUMN旧列名 新列名 新类型(一定要加上);

案例:把Last_name字段名称改为last_name;

ALTER TABLE emp5 CHANGE COLUMN Last_name last_name VARCHAR(30);

#修改列的类型或约束

语法:ALTER TABLE 表名 CHANGE COLUMN列名 新类型或约束;

案例:修改了last_name字段的长度

ALTER TABLE emp5 MODIFY COLUMN last_name VARCHAR(49);

#添加新列

语法:

ALTER TABLE 表名 ADD 新列名 新类型【约束】;

案例:向表中添加新列test_column,类型自定义

ALTER TABLE emp5 ADD COLUMN test_column VARCHAR(25);

#删除列

语法:

ALTER TABLE emp5 ADD COLUMN test_column VARCHAR(25);

案例:删除表中的test_column字段

ALTER TABLE emp5 DROP COLUMN test_column;

语法:

ALTER TABLE 表名 RENAME [TO] 新表名;

案例:把表名重命名为emp6;

ALTER TABLE emp5  RENAME TO emp6;

 

3.表的删除

语法:

drop table 表名;

案例:

DROP TABLE 【if exists】emp6;(可使用if exists来提高容错性)

  1. 表的复制

#仅仅复制表的结构(使用LIKE关键字)

CREATE TABLE employees2 Like employees;

 第六天MySQL_MySQL论坛

 

 

#复制表的数据+结构(使用子查询)

CREATE TABLE employee3

SELECT * FROM employees;

 第六天MySQL_MySQL论坛

 

#只复制部分表的数据(使用带筛选条件的子查询)

CREATE TABLE employee4

SELECT * FROM employees

WHERE employee_id>150;

 

#仅仅复制某些字段(不携带数据)

CREATE TABLE employee5

SELECT job_id,department_id FROM employees

WHERE 1=0;(只要where后的筛选条件不成立,那么就不会接待数据)

 第六天MySQL_MySQL论坛

 

 

二十三、常见的数据类型

分类:

数值型:

       整形

       小数:

              浮点型

              定点型

字符型:

       较短的文本:char、varchar

       较长的文本:text、bolb(较长的二进制数据)

#整形

类型                     tinyint  smallint    mediumint   int/integer    bigint

所占字节大小         1         2             3                  4                  8

特点:

①     如果不设置有符号还是无符号,则默认为有符号,如果想设置为无符号,则需要添加unsigned关键字

②     如果要插入的数据超出了整形的范围,会报出out of range异常,并且插入临界值

③     如果不设置长度,则系统会有默认的长度

④     类型中的长度字段代表的是显示数据的最大宽度,若数据小于该长度则会用0在左边填充,但必须搭配zerofull关键字使用(此时默认为无符号整形)

 

#小数

1.浮点型

a)        float(M,D)

b)       double(M,D)

2.定点型

a)        dec(M,D)

b)       decimal(M,D)

特点:

①     M代表的是整数和小数部分的总长度,D代表的是小数部位的长度,若超过范围则插入临界值

②     M和D度可以省略,如果是float和double,则会根据插入的数值来决定精度,如果是decimal,则M默认为10,D默认为0

③     定点型的精度较高,如果需要求插入的数值类型精度较高如货币元素那则可以考虑使用

使用原则:所选择的类型越简单越好,能保存的数值的类型越小越好

 

#字符型

1.较短的文本

char(M)

varchar(M)

binary和varbinary(包含二进制文本字符串)

enum->枚举类型,要求插入的值必须属于列表中指定的值之一

set->集合类型,和Enum类型类似,里面可以保存0~64个成,一次可以选取多个成员

2.较长的文本

text

bolb(较长的二进制数据)

特点:

①     关于char 和varchar

                 写法                      M的意思                                                  特点                   空间的耗费

char        char(M)          最大的字符数(可以省略,默认为1)      固定长度的字符              高

varchar    varchar(M)    最大的字符数(不可省略)                       可变长度的字符              低

关于固定与可变长度,那“数字”举例,char会给它分配M个字符大小的空间,而varchar 就给它分配2个空间,长度随输入的值变化

 

#日期型

 第六天MySQL_MySQL论坛

date:只保存日期

time:只保存时间

year:只保存年

                            字节         范围             时区等的影响

datetime                8          1000-9999              受

timestamp             4           1970-2038            不受

 

具体如下:

CREATE TABLE tab_date(

                     t1 DATETIME,

                     t2 TIMESTAMP

);#创建表

 

INSERT INTO tab_date VALUES(now(),now());

SELECT * FROM tab_date;

 第六天MySQL_MySQL论坛

 

 

show VARIABLES like “time_zone”;

set time_zone =”+9:00″;#改变时区

 第六天MySQL_MySQL论坛

可发现改变时区后,t2的值发生变化,受到了时区的影响

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8531.html

(0)
上一篇 2023-02-26
下一篇 2023-02-26

相关推荐

  • mysql windows安装_解压版mysql怎么安装

    mysql windows安装_解压版mysql怎么安装一. 下载mysql 8.0.29软件包 下载点我 二. 解压,初始化安装 1,打开下载后文件所在目录,使用解压软件解压,打开文件夹!(如图,文件路径不要出现中文!) 2,创建my.ini文件,创建前

    2023-05-25
    85
  • 数据库查询语句_修改sql语句

    数据库查询语句_修改sql语句学习重点 使用 INSERT 语句可以向表中插入数据(行)。原则上,INSERT 语句每次执行一行数据的插入。 将列名和值用逗号隔开,分别括在 () 内,这种形式称为清单。 对表中所有列进行 INSE

    2023-04-28
    91
  • redis 5.0.7 源码阅读——跳跃表skiplist

    redis 5.0.7 源码阅读——跳跃表skiplistredis中并没有专门给跳跃表两个文件。在5.0.7的版本中,结构体的声明与定义、接口的声明在server.h中,接口的定义在t_zset.c中,所有开头为zsl的函数。 一、数据结构 单个节点: t

    2023-01-26
    95
  • 极致效率,云原生数据库TDSQL-C安身立命的根本「建议收藏」

    极致效率,云原生数据库TDSQL-C安身立命的根本「建议收藏」云原生时代需要什么样的数据库?如何构建数据库服务?腾讯云数据库技术负责人程彬认为,云数据库未来趋势会从以托管为核心升级到以极致效率为核心,助力业务降本增效。从数据库管理和应用角度来看,云厂商、资源、客

    2023-05-23
    123
  • 深入理解Python中while循环的运行机制

    深入理解Python中while循环的运行机制Python中的while循环是一种基本的循环结构,它可以在满足条件的情况下反复执行一些代码块,直到条件不满足为止。在Python中,while循环的基本语法如下:

    2023-12-08
    62
  • mysql全量备份、增量备份实现方法_删除Windows日志

    mysql全量备份、增量备份实现方法_删除Windows日志基于 mysql.exe、mysqldump.exe、mysqlbinlog.exe 开发,mysql 数据备份。 此工具在使用前 请开启 log_bin,在 my.ini 文件里 log-bin=…

    2023-02-14
    94
  • JDBC基本使用方法[亲测有效]

    JDBC基本使用方法[亲测有效] JDBC基本使用方法 JDBC固定步骤: 加载驱动 连接数据库,代表数据库 向数据库发送SQL的对象Statement: CRUD 编写SQL (根据业务, 不同的SQL) 执行SQL 遍历结果集

    2023-03-01
    99
  • 包含python之jieba库使用的词条

    包含python之jieba库使用的词条自然语言处理(NLP)是机器学习重要分支之一,主要应用于篇章理解、文本摘要、情感分析、知识图谱、文本翻译等领域。而NLP应用首先是对文本进行分词,当前中文分词器有Ansj、paoding、盘古分词等多种,而最基础的分词器应该属于jieba分词器(比较见下图)。

    2023-11-27
    52

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注