天道酬勤,学无止境

SQL DML:不正确的日期值 (MySQL)(SQL DML: Incorrect date value (MySQL))

问题

我在我的数据库中创建了一个表:

CREATE TABLE official_receipt(
    student_no INT UNSIGNED,
    academic_year CHAR(8),
    trimester ENUM('1', '2', '3'),
    or_no MEDIUMINT UNSIGNED,
    issue_date DATE NOT NULL,
    received_from VARCHAR(255) NOT NULL,
    amount_of DECIMAL(8,2) NOT NULL,
    issued_by VARCHAR(255),
    doc_type ENUM('FULL', 'DOWN', 'INST') NOT NULL,
    form_of_payment ENUM('CASH', 'INST') NOT NULL,
    PRIMARY KEY (student_no, academic_year, trimester, or_no)
);

我插入了一些值:

INSERT INTO official_receipt(student_no , academic_year, trimester, or_no, issue_date, received_from, amount_of, issued_by, doc_type, form_of_payment)
VALUES
    (201201121, 'AY201314', '1', 029940, 2013-05-21, 'NAME', 20000.00, NULL, 'DOWN', 'INST'),
    (201201121, 'AY201314', '1', 029944, 2013-07-23, 'NAME', 8000.00, NULL, 'INST', 'INST'),
    (201201101, 'AY201314', '1', 029941, 2013-05-21, 'NAME', 56650.00, NULL, 'FULL', 'CASH'),
    (201201037, 'AY201314', '1', 029942, 2013-05-21, 'NAME', 56650.00, NULL, 'FULL', 'CASH'),
    (201201142, 'AY201314', '1', 029943, 2013-05-21, 'NAME', 63800.00, NULL, 'FULL', 'CASH');

我收到此错误:

Error Code: 1292. Incorrect date value: '1987' for column 'issue_date' at row 1

我很困惑,因为我已经遵循了 YYYY-MM-DD 格式。 有什么帮助吗?

回答1

如日期和时间文字所述:

MySQL 识别以下格式的 DATE 值:

  • 作为'YYYY-MM-DD''YY-MM-DD'格式的字符串。 允许使用“宽松”语法:任何标点字符都可以用作日期部分之间的分隔符。 例如, '2012-12-31''2012/12/31''2012^12^31''2012@12@31'是等价的。

  • 作为一个没有分隔符的字符串,格式为'YYYYMMDD''YYMMDD' ,前提是该字符串作为日期有意义。 例如, '20070523''070523'被解释为'2007-05-23' ,但'071332'是非法的(它有无意义的月份和日期部分)并变成'0000-00-00'

  • 作为YYYYMMDDYYMMDD格式的数字,前提是该数字作为日期有意义。 例如, 19830905830905被解释为'1983-09-05'

因此,表达式2013-05-21不是有效的 MySQL 日期文字(它实际上是一个算术表达式,由两个减法组成:结果是整数1987 )。 为了符合上面详述的文字格式之一,您必须将日期文字引用为字符串和/或删除分隔符。

回答2

您在我的测试中的issue_date值周围缺少'单引号,它成功插入了记录

试试这个

INSERT INTO official_receipt(student_no , academic_year, trimester, or_no, issue_date, received_from, amount_of, issued_by, doc_type, form_of_payment)
VALUES
    (201201121, 'AY201314', '1', 029940, '2013-05-21', 'NAME', 20000.00, NULL, 'DOWN', 'INST'),
    (201201121, 'AY201314', '1', 029944, '2013-07-23', 'NAME', 8000.00, NULL, 'INST', 'INST'),
    (201201101, 'AY201314', '1', 029941, '2013-05-21', 'NAME', 56650.00, NULL, 'FULL', 'CASH'),
    (201201037, 'AY201314', '1', 029942, '2013-05-21', 'NAME', 56650.00, NULL, 'FULL', 'CASH'),
    (201201142, 'AY201314', '1', 029943, '2013-05-21', 'NAME', 63800.00, NULL, 'FULL', 'CASH');

这是你的小提琴

回答3

您需要将日期文字放在引号中。 错误消息显示1987因为未引用的日期被读取为表达式2013 minus 5 minus 21 ,即1987

您的日期可以是这样的: '2013-05-21''20130521'或文档中涵盖的其他几种格式。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • SQL DML: Incorrect date value (MySQL)
    I created a table in my database: CREATE TABLE official_receipt( student_no INT UNSIGNED, academic_year CHAR(8), trimester ENUM('1', '2', '3'), or_no MEDIUMINT UNSIGNED, issue_date DATE NOT NULL, received_from VARCHAR(255) NOT NULL, amount_of DECIMAL(8,2) NOT NULL, issued_by VARCHAR(255), doc_type ENUM('FULL', 'DOWN', 'INST') NOT NULL, form_of_payment ENUM('CASH', 'INST') NOT NULL, PRIMARY KEY (student_no, academic_year, trimester, or_no) ); I inserted some values: INSERT INTO official_receipt(student_no , academic_year, trimester, or_no, issue_date, received_from, amount_of, issued_by, doc
  • 数据库MySQL基础---DDL/DML/DQL
    MySQL基础 数据库简介 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 与数据库相关的概念 数据库系统:DBS(DataBase System):由数据库、数据库管理系统、数据库管理员组成。 数据库管理系统:DBMS(DataBase Management System)是一种操作和管理数据库的大型软件,用于建立,使用和维护数据库。 数据库管理员:DBA(DataBase Administrator),管理和维护数据库管理系统的相关工作人员。 数据库:DB(DataBase):按照数据结构来组织,存储和管理数据的仓库。 数据库的分类: 分为关系型数据库和非关系型数据库 关系型数据库:以表格的形式存储数据,表格与表格之间会有关系;比如:MySQL,Oracle,SQL Server。 非关系型数据库:结构简单,数据之间无关系;比如:Redis,MongoDB MySQL简介 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 SQL语言简介 结构化查询语言(Structured Query Language)简称SQL。是一种有特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存储数据以及查询
  • MySQL+Navicat Preminum安装、DDL和DML基础语句
    文章目录 前言一、MySQL、Navicat Preminum的安装二、MySQL数据类型和运算符1.常用的数据类型2.MySQL运算符3.代码展示 三、SQL分类1.DDL2.DML 总结 前言 MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司收购。而2009年sun公司又被Oracle收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源代码,使得很多互联网公司选择了MySQL作为网站数据库(Facebook ,Twitter, YouTube,阿里的蚂蚁金服,去哪儿,魅族,百度外卖,腾讯) 一、MySQL、Navicat Preminum的安装 这里我们下载的是一个MySQL绿色软件版,无需安装,解压即可使用。 Navicat Preminum提供的是11.1.13版,含破解工具。 链接:https://pan.baidu.com/s/1v5bgDXU7X8Z5vubpdNihPA 提取码:1mce 二、MySQL数据类型和运算符 1.常用的数据类型 整型(xxxint)位类型(bit)浮点型(float和double、real)定点数(decimal,numeric)日期时间类型(date,time,datetime,year)字符串
  • MySQL5.7.x的sql_mode参数ONLY_FULL_GROUP_BY引起的查询异常
    最近把服务器上的MySQL5.6.x升级到MySQL5.7.x,使用navicat查询SQL时,虽然能够查询到正确的结果集,但是在正确结果集下方出现如下一段异常信息: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 这是为什么呢?可以肯定SQL语句没有问题,在MySQL5.6.x上执行相同的SQL语句没有任何异常,难道升级后MySQL5.7.x有细节更新? Linux版本的MySQL5.x中sql_mode默认为空,例如日期字段可以插入'0000-00-00 00:00:00'这样的值,还有如果要插入的字段长度超过列定义的长度,那么MySQL不会终止操作,而是会自动截断后面的字符继续插入操作,如下例:mysql> create table t5 (c1 char(3));mysql> insert into t5
  • MySql数据库中SQL语句的全面总结
    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。下文是对这四种语言以及事务处理语言的小总结 SQL(Structed Query Language ) 1.数据定义语言——DDL1.1 CREATE ——表的创建1.2 DROP——表的删除1.3 ALTER——更改表1.4 TRUNCATE——截断表 2.数据操作语言——DML2.1 INSERT 往表中插入记录批量插入多条记录 2.2 UPDATE子句修改数据库中数据2.3 DELETE 语句删除表中满足条件的行记a.删除选中记录b.删除全部记录 3.数据查询语言——DQL(DQL DATA QUERY LANGUAGE)4.数据控制语言——DCL (DATA CONTROL LANGUAGE )5.事务处理语言——TPL (TRANSACTION PROCESS LANGUAGE ) 1.数据定义语言——DDL 对于数据库或者数据库的组件的结构的操作(DATA DEFINITION LANGUAGE ):特点:不允许事务的回滚。 1.1 CREATE ——表的创建 语法 CREATE TABLE 表名( 字段名 数据类型 约束, 字段名 数据类型 约束 ) 1.2 DROP——表的删除 DROP TABLE 表名 1.3 ALTER——更改表 1.4 TRUNCATE—
  • 26.2 SQL介绍、通用语法、SQL语句分类、DDL 操作数据库和表、DML:表实现增删改数据、DQL:条件查询、模糊查询、排序、聚合函数、分组、分页、数据库备份与还原
    目录 1 SQL结构化查询语言 2 SQL通用语法 3 SQL 语句分类 4 DDL 操作数据库、表 4.1 DDL操作数据库(数据库CRUD) DDL操作数据库-- C(Create):创建数据库 DDL操作数据库-- R(Retrieve):查询数据库 DDL操作数据库-- U(Update):修改数据库 DDL操作数据库-- D(Delete):删除数据库 DDL操作数据库-- 使用数据库 4.2 DDL操作表(数据表CRUD) DDL操作表-- C(Create):创建表 DDL操作表-- R(Retrieve):查询表 DDL操作表-- U(Update):修改表 DDL操作表-- D(Delete):删除表 DDL操作表-- 复制表 5 DML:表实现增删改数据 5.1 DML-- 表添加数据 5.2 DML-- 表删除数据 5.3 DML-- 表修改数据 6 DQL:查询表中的记录 6.1 DQL-- 基础查询 6.2 DQL-- 查询结果去重:distinct 6.3 DQL-- 查询结果参与计算 6.4 DQL-- 条件查询 DQL-- 条件查询之比较运算符 DQL-- 条件查询之逻辑运算符 DQL-- 条件查询之in 关键字 DQL-- 条件查询之范围查询 DQL-- 条件查询之模糊查询:like 关键字 6.5 DQL-- 排序 order by 6.6
  • MySQL不正确的日期时间值:“ 0000-00-00 00:00:00”(MySQL Incorrect datetime value: '0000-00-00 00:00:00')
    问题 我最近接手了一个十年前创建的旧项目。 它使用MySQL 5.1。 除其他外,我需要将默认字符集从latin1更改为utf8。 例如,我有这样的表: CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `first_name` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, `last_name` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, `username` varchar(127) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `email` varchar(127) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `pass` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `active` char(1) CHARACTER SET latin1 COLLATE
  • 仅当记录不存在时才将SQL插入表中[重复](SQL Insert into table only if record doesn't exist [duplicate])
    问题 这个问题已经在这里有了答案: 检查是否存在一行,否则插入(11个答案) MySQL条件插入(13个答案) 7年前关闭。 我想运行一组查询,以便将某些数据插入SQL表中,但前提是要满足满足某些条件的记录。 该表有4个字段: id (主要), fund_id , date和price 我在查询中有3个字段: fund_id , date和price 。 所以我的查询将是这样的: INSERT INTO funds (fund_id, date, price) VALUES (23, '2013-02-12', 22.43) WHERE NOT EXISTS ( SELECT * FROM funds WHERE fund_id = 23 AND date = '2013-02-12' ); 因此,我只想在与fund_id和date匹配的记录尚不存在的情况下插入数据。 如果上面的方法是正确的,那么我就觉得这是一种效率很低的方法,因为每次都必须运行一条附加的select语句。 是否有更好的方法来实现上述目标? 编辑:为澄清fund_id和date都不是唯一字段; 共享相同的fund_id或日期的记录将存在,但是没有记录应具有相同的fund_id和日期。 回答1 这可能是实现此目的的简单解决方案: INSERT INTO funds (ID, date, price) SELECT
  • 1292:不正确的日期时间值:“”用于第 1 行的列(1292: Incorrect datetime value: '' for column at row 1)
    问题 我正在尝试将数据从 Excel 工作表加载到 Windows 8.1 上的 MYSQL 5.6 上的下表,但出现“日期时间值不正确:”错误。 术语日期列是 DATETIME 数据类型,并且数据在我试图插入到表中的 Excel 工作表中具有空值。 我做了一些研究,发现问题出在 SQL 严格模式上。 但我无法弄清楚如何禁用或修改 SQL 严格模式。 事实上,我试过这个SET SESSION sql_mode='ALLOW_INVALID_DATES'但没有运气。 有人说在安装目录中编辑 my.ini 文件会有所帮助,但我在安装目录中找不到它。 任何人都可以帮我解决这个问题。 create table EMPLOYEE(EMP_ID integer(10), EMP_NAME char(25), SALARY integer(25), START_DATE datetime, TERM_DATE datetime DEFAULT '1900-01-01', PRIMARY KEY (EMP_ID)); 错误信息: 15:23:08 INSERT INTO `mith`.`EMPLOYEE` (`EMP_ID`, `EMP_NAME`, `SALARY`, `START_DATE`, `TERM_DATE`) VALUES ('26', 'Will Banker', '90000'
  • 尝试通过JDBC将UTF-8插入MySQL时出现“字符串值错误”的问题?(“Incorrect string value” when trying to insert UTF-8 into MySQL via JDBC?)
    问题 这是我的连接设置方式: Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password); 尝试在表中添加行时出现以下错误: Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90...' for column 'content' at row 1 我正在插入数千条记录,并且当文本包含\ xF0时,总是会出现此错误(即,不正确的字符串值始终以\ xF0开头)。 该列的排序规则是utf8_general_ci。 可能是什么问题呢? 回答1 MySQL的utf8仅允许使用UTF-8中的3个字节表示的Unicode字符。 在这里,您有一个需要4个字节的字符:\ xF0 \ x90 \ x8D \ x83(U + 10343哥特式字母帆)。 如果您具有MySQL 5.5或更高版本,则可以将列编码从utf8更改为utf8mb4。 此编码允许存储在UTF-8中占用4个字节的字符。 您可能还必须在MySQL配置文件中将服务器属性character_set_server设置为utf8mb4 。 似乎Connector / J缺省为3字节Unicode,否则: 例如
  • SQL笔记 Task01 初识数据库
    文章目录 1.1 初始数据库1.1.1 DBMS的种类1.1.2 RDBMS 的常见系统结构 1.2 初始SQL1.2.1 SQL的基本书写规则1.2.2 数据库的创建(CREATE DATADASE 语句)1.2.3 表的创建(CREATE TABLE 语句)1.2.4 命名规则1.2.5 数据类型的指定 1.2.6 约束的设置1.2.7 表的删除和更新1.2.8 向product表中插入数据 练习题1.11.21.31.4 参考文献 1.1 初始数据库 1.1.1 DBMS的种类 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。 (1) 层次数据库 (Hierarchical Database,HDB) (2) 关系数据库 (Relational Database,RDB) Oracle Database:甲骨文公司的RDBMS SQL Server:微软公司的RDBMS DB2:IBM公司的RDBMS PostgreSQL:开源的RDBMS MySQL:开源的RDBMS 如上是5种具有代表性的RDBMS,其特点是由行和列组成的二维表来管理数据,这种类型的 DBMS 称为关系数据库管理系统
  • Linux SQL语言—— 数据查询语言DQL、数据操纵语言DML、数据定义语言DDL和数据语言DCL详解
    数据查询语言DQL创建业务数据库 CREATE DATABASE 数据库名;创建数据库要求(区分大小写,唯一性,不能使用命令作为数据库命名 create select,不能单独使用数字和特殊符号“如-";正常的:用拼音或单词即可。查看所有数据库 SHOW DATABASES;选择/进入数据库 USE 数据库名 调用函数,查询当前库 SELECT database();删除数据库 DROP DATABASE 数据库名;系统中的位置 /var/lib/mysql/数据操纵语言DML可以通过SQL语句中的DML语言来实现数据的操作,如实现数据的插入、删除、更新。INSERT INTO 表名 VALUES (值1,值2,值3…值n); 完整插入数据 INSERT INTO表名(列名,列名) VALUES (值1,值2); 插入部分数据UPDATE 表名 SET 列名=值 WHERE CONDITION; 更新数据>create table t1(id int, name varchar(10)); 创建表>insert into t1 values (1,'vc'); 写入>insert into t1 values (2,'cv'); 写入>update t1 set name='cc' where id=2; 更新>select * from t1; 查看> update mysql
  • SQL基础教程笔记
    第 1 章 数据库和 SQL SQL 概要 根据对 RDBMS 赋予的指令种类的不同, SQL 语句可以分为以下三类 DDL DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象。 DDL 包含以下几种指令。 CREATE: 创建数据库和表等对象 DROP: 删除数据库和表等对象 ALTER: 修改数据库和表等对象的结构 DML DML(Data Manipulation Language,数据操纵语言)用来查询或者变更表中的记录。 DML 包含以下几种指令。 SELECT:查询表中的数据 INSERT:向表中插入新数据 UPDATE:更新表中的数据 DELETE:删除表中的数据 DCL DCL(Data Control Language,数据控制语言)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。 DCL 包含以下几种指令。 COMMIT: 确认对数据库中的数据进行的变更 ROLLBACK: 取消对数据库中的数据进行的变更 GRANT: 赋予用户操作权限 REVOKE: 取消用户的操作权限 SQL语句以分号(;)结尾 字符串和日期常数需要使用单引号(’)括起来 数字常数无需加注单引号(直接书写数字即可) DDL
  • MySql之基础查询_DML操作_数据表操作_约束_事务_权限_视图
    # 基本查询 SELECT id,zname,zno,zbirthday,zgender,zweight,zheight,zage FROM `t_soldiers`; SELECT id,zname,zage*2 FROM t_soldiers; SELECT id,zname,zage+12 FROM t_soldiers; SELECT id,zname,zage-2 FROM t_soldiers; SELECT id,zname,zage/2 FROM t_soldiers; SELECT id AS 编号,zname AS 姓名,zage AS 年龄 FROM t_soldiers; ###distinct去重 SELECT DISTINCT zage FROM t_soldiers; SELECT DISTINCT zname FROM t_soldiers; SELECT DISTINCT zweight FROM t_soldiers; ## 排序查询 asc升序 desc 降序 SELECT \* FROM t_soldiers ORDER BY zage ASC; SELECT \* FROM t_soldiers ORDER BY zage ASC ,zweight DESC; ## 条件查询 SELECT \* FROM t_soldiers WHERE
  • 错误的日期时间值数据库错误号:1292(Incorrect datetime value Database Error Number: 1292)
    问题 错误的日期时间值0000-00-00 00:00:00 +0000数据库错误号:1292 嗨,大家好我的托管公司完成了服务器升级,出现了问题,我想了解正在发生的事情,所以我可以解决问题 我的服务器最近已升级到服务器版本:5.6.17,我到处都报错,说我的日期时间值不正确? 它似乎在日期时间的末尾添加了+0000,但我不确定为什么。 过去在5.5上可以正常工作,但是最近的升级影响了我的时间戳记的工作方式 Error Number: 1292 Incorrect datetime value: '2014-04-02 08:49:43 +0000' for column 'created' at row 1 INSERT INTO `activitylog` (`tablename`, `row`, `user_id`, `description`, `action`, `private`,`created`) VALUES ('user', '1', '1', 'People', 'Updated', 0, '2014-04-02 08:49:43 +0000') 如果我修改此sql查询时不使用+0000,它是否有效? 它会影响我桌上的任何一种DATETIME类型的东西。 还有其他人有类似的问题吗?现在解决该问题的解决方案是什么。 目前,我必须更改所有PHP函数以回显日期/时间
  • 初识MySQL
    之前粗略的学过sql server数据库这些天便开始接触MySQL,用于python的学习,下面就介绍我所认识的MySQL数据库。 我认识的MySQL mysql常用的三类数据类型 我所认识的数据库 ***数据库简介(一些标准的数据库的概念)*** 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。 ***数据库管理系统的概念*** 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。 数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理
  • MySQL数据库
    这里写目录标题 一、引言1.1 现有的数据存储方式有哪些?1.2 以上存储方式存在哪些缺点? 二、 数据库2.1 概念2.2 数据库的分类 三、数据库管理系统3.1 概念3.2 常见的数据库管理系统 四、MySQL4.1 简介4.2 访问与下载4.3 配置环境变量4.4 MySQL的目录结构4.5 MySQL配置文件 五、 SQL5.1 概念5.2 MySQL应用5.3 基本命令 六、客户端工具6.1 Navicat6.2 SQLyog6.3 DataGrip(Idea开发工具集成) 七、 执行SQL脚本八、 数据查询【重点】8.1 数据表的基本结构8.2 基本查询8.2.1 查询所有列8.2.2 查询部分列8.2.3 对列中的数据进行运算8.2.4 列的别名8.2.5 查询结果去重8.3 排序查询8.3.1 依据单列进行排序8.3.2 依据多列进行排序 8.4 条件查询8.4.1 等值判断(=)8.4.2 不等值判断(>、<、>=、<=、!=、<>)8.4.3 逻辑判断(and、or、not)8.4.4 区间判断(between and)8.4.5 NULL值判断(IS NULL、IS NOT NULL)8.4.6 枚举查询(IN (值1,值2,值n....))8.4.7 模糊查询(_、%)8.4.8 分支结构查询 8.5 时间查询8.5.1 获取时间 8.6 字符串查询8.6
  • 玩转MySQL(二)SQL基础
    项目开发视频: SpringCloud微服务开发入门 手把手开发基于SpringBoot的员工管理系统 亿度云盘~Java小白入门实战 前言 做数据库开发,要掌握的最基础也是最重要的东西就是SQL语言了,下面我们开始掌握这门语言。 SQL的概述 Structured Query Language 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 各种主流的数据库系统都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用,但大部分是相同的,后面我们学习的是MySQL的版本,掌握SQL主要语法之后,要迁移到其它数据库也是比较容易的。 SQL的分类 SQL按用途分为: 一、DQL(数据查询语言) 用于查询数据 二、DML(数据操作语言)用于添加、删除、更新数据 三、TPL(事务处理语言)包括事务相关的启动、提交、回滚等操作。 四、DCL(数据控制语言)包含用户、用户组的权限控制 五、DDL(数据定义语言)包括数据库、表、视图、索引等对象的定义和删除操作 六、CCL(游标控制语言)控制数据库的游标操作 我们最常用的应该是DQL、DML和DDL,本章我们主要介绍的是DDL和DML。 MySQL数据库的操作 创建数据库的基本语法是: create database 数据库名
  • MySQL核心技术
    1、什么是数据库现有的数据存储方式有哪些?java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬间状态存储文件存储数据、保存在硬盘上、属于持久状态存储以上存储方式存在哪些缺点没有数据类型的区分存储数据级较小没有访问安全限制没有备份,恢复机制二、数据库数据库是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算内的、有组织、有共享的、统一管理的数据集合。数据库的分类:网状结构数据库,美国通用电气公司,以节点形式存储和访问。层次结构数据库:IBM公司IMS定向有充序的树状结构实现的存储和访问。关系结构数据库:oracle,db2,mysql ,sql server ,以表格存储,多表间建立关联关系,通过分类,合并,连接,选取等运算实现访问。非关系型数据库:elastecsearch,mongodb,redis,多数使用哈希表,表中以键值(key-value)的方式实现特定的键和一个指针指向特定数据。三、数据库管理系统概念数据库管理系统:是指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性,用户通过数据库管理系统访问数据库的数据。常见的数据库管理系统oracle:被认为是业界目前比较成功的关系型数据库系统。db2sqllite:手机端的数据库 2
  • sql语句
    update mysql.user set authentication_string=password('123456') where user='root' and Host='localhost'; --修改用户密码 create table xxx ( 字段名 字段属性 ); show tables; describe student; insert into xxx () values (); 逗号隔开 , 字符串用引号 --注释 #注释 /* 多行注释 */ 数据库xxx语言 DDL=定义 DML=操作 DQL=查询 DCL=控制 update xxx set abc=1 where xx=22 delete from xxx where 如果不加条件,直接清空表格 操作数据库 创建数据库 create databases xxx 删除数据库 drop database xxx 使用数据库 use xxx 如果你的表名或字段是一个特殊字符,就需要带`` 查看数据库 show databases 数据库的列类型 数值 tinyint 1个字节 smallint 2个字节 mediumint 3个字节 int 4个字节 bigint 8个字节 float 浮点数 4个字节 double 浮点数 8个字节(精度问题!) decimal 字符串形式的浮点数 金融计算的时候