mysql添加字段

MySQL not null 取消条件限制

爷,独闯天下 提交于 2020-03-03 19:09:50
1】最近换了一下开发环境,之前正常运行的脚本出现了“运行增删改查失败”的情况, 经排查,是因为数据表里的字段设置了not null , 而脚本里却没有这个字段。考虑服务器跟之前生产环境也是这样的情况,所以就找相关设置 打开mysql.ini 在 [mysqld] 栏目下添加 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 重启服务之前的脚本就能正常运行了 来源: https://www.cnblogs.com/chenliuxiao/p/12403882.html

MySql数据库基础

三世轮回 提交于 2020-03-02 10:04:07
1.数据库概述 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 2.表数据 根据表字段所规定的数据类型,我们可以向其中填入一条条的数据,而表中的每条数据类似类的实例对象。表中的一行一行的信息我们称之为记录。 3.Mysql启动与登录  MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录。 4.SQL语句    l SQL分类: n 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 n 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等 n 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。 n 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等 5.通用语法    l SQL语句可以单行或多行书写,以分号结尾 l 可使用空格和缩进来增强语句的可读性

postgresql常用命令

南楼画角 提交于 2020-03-02 03:37:05
最近一直在学习Postgresql,下面是自己整理的Postgresql的常用命令 连接数据库, 默认的用户和数据库是postgres psql -U user -d dbname 切换数据库,相当于mysql的use dbname \c dbname 列举数据库,相当于mysql的show databases \l 列举表,相当于mysql的show tables \dt 查看表结构,相当于desc tblname,show columns from tbname \d tblname \di 查看索引 创建数据库: create database [数据库名]; 删除数据库: drop database [数据库名]; *重命名一个表: alter table [表名A] rename to [表名B]; *删除一个表: drop table [表名]; *在已有的表里添加字段: alter table [表名] add column [字段名] [类型]; *删除表中的字段: alter table [表名] drop column [字段名]; *重命名一个字段: alter table [表名] rename column [字段名A] to [字段名B]; *给一个字段设置缺省值: alter table [表名] alter column [字段名] set

MYSQL语句中的增删改查

丶灬走出姿态 提交于 2020-03-01 19:56:00
select * from testTable1; 查询表中的全部数据 INSERT INTO testTable1(username,password) VALUES('admin','admin'); 在testTable1表中 添加两个字段 分别为username和password 数值admin,admin UPDATE testTable1 SET password='123456' WHERE username='admin'; UPDATE testTable1 SET password='123456'; 第一条为筛选username字段中为admin的对应的password的值改为123456 第二条则将所有password的字段中的值改为123456 INSERT INTO testTable1(username,password) VALUES('admin','admin'),('123456','123456'),('qwer123','qwer123'); mysql> select * from testTable1; +----+----------+----------+ | id | username | password | +----+----------+----------+ | 1 | admin | 123456 | | 2 |

根据多年经验整理的《互联网MySQL开发规范》

烂漫一生 提交于 2020-03-01 19:26:39
写在前面:无规矩不成方圆。对于刚加入互联网的朋友们,肯定会接触到 MySQL , MySQL 作为互联网最流行的关系型数据库产品,它有它擅长的地方,也有它不足的短板,针对它的特性,结合互联网大多应用的特点,笔者根据自己多年互联网公司的 MySQL DBA 经验,现总结出互联网 MySQL 的一些开发规范,仅供参考。 一、基础规范 (1) 使用 INNODB 存储引擎 (2) 表字符集使用 UTF8 (3) 所有表都需要添加注释 (4) 单表数据量建议控制在 5000W 以内 (5) 不在数据库中存储图 ⽚ 、文件等大数据 (6) 禁止在线上做数据库压力测试 (7) 禁 ⽌ 从测试、开发环境直连数据库 二、命名规范 (1) 库名表名字段名必须有固定的命名长度, 12 个字符以内 (2) 库名、表名、字段名禁 ⽌ 止超过 32 个字符。须见名之意 (3) 库名、表名、字段名禁 ⽌ 止使 ⽤ 用 MySQL 保留字 (4) 临时库、表名必须以 tmp 为前缀,并以 ⽇ 日期为后缀 (5) 备份库、表必须以 bak 为前缀,并以日期为后缀 三、库、表、字段开发设计规范 (1) 禁 ⽌ 使用分区表 (2) 拆分大字段和访问频率低的字段,分离冷热数据 (3) 用 HASH 进 ⾏ 散表,表名后缀使 ⽤⼗ 进制数,下标从 0 开始 (4) 按日期时间分表需符合 YYYY[MM][DD][HH]

MySQL时间字段究竟使用INT还是DateTime的说明

丶灬走出姿态 提交于 2020-03-01 15:14:47
今天解析DEDECMS时发现deder的MYSQL时间字段,都是用 `senddata` int(10) unsigned NOT NULL DEFAULT '0'; 随后又在网上找到这篇文章,看来如果时间字段有参与运算,用int更好,一来检索时不用在字段上转换运算,直接用于时间比较!二来如下所述效率也更高。 归根结底:用int来代替data类型,更高效。 环境: Windows XP PHP Version 5.2.9 MySQL Server 5.1 第一步、创建一个表date_test(非定长、int时间) CREATE TABLE `test`.`date_test` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` INT NOT NULL , `some_content` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB; 第二步、创建第二个表date_test2(定长、int时间) CREATE TABLE `test`.`date_test2` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` INT NOT NULL , `some_content` CHAR( 255 ) NOT

数据库基础

和自甴很熟 提交于 2020-02-29 18:15:58
目录 数据库基础 什么是数据库 SQL语言 安装与下载 数据库和表的操作 表中数据操作 单表查询 数据库基础 什么是数据库 数据库是一个用来存储各种数据的容器 数据库管理系统:专门用于创建和管理数据库的统一软件,介于应用和操作系统之间,保证数据的完整性、可靠性和安全性 数据库应用程序:通过数据库管理系统提供的接口与之通信,访问和管理数据的应用程序 SQL语言 ​ SQL语言是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存储数据,查询数据,更新数据等等 安装与下载 下载社区版(免费)安装略 设置环境变量 初始化数据库 # 安装MySQL mysqld --initialize # 进入mysql mysql -u root -p # 重新设置密码 mysql> set PASSWORD = '重新设置的密码'; 数据库和表的操作 创建和删除数据库 mysql> Show databases; #查看所有的表单 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) # 创建数据库

mysql之增删改查

只谈情不闲聊 提交于 2020-02-29 01:05:49
库 存放数据的目录 表 文件(普通编辑器打不开) 修饰符 行叫记录 列叫字段 字段名称 神器 edit 在edit里边编辑,wq保存,出来敲一个分号; 创建库 create database company; CREATE DATABASE company DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #创建数据库并指定字符集 查看库 show databases; show create databse company; 进入库 use company; 创建表 create table t1(id int(2),name char(20),age int); 字段 类型 字段 类型(长度),字段 类型 (字段后便的就是字段的修饰符(约束条件)) 查看表 (show desc(describe) select) 查看表名称 show tables; desc t1;(表的详细字段信息) 查看表创建过程 show create table t1; <----- 当表特别长的时候;该为\G ,则把表向左旋转90度,可以更清楚看到 第一列显示字段名称 第二列显示记录 查看表结构 desc t1; 查看表记录 select * from 表名; select 字段,字段 from 表名; 查看表状态 show table status

MySQL:常见约束和标识列

 ̄綄美尐妖づ 提交于 2020-02-28 21:12:25
常见约束 /* 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确可靠性 分类:六大约束 not null:非空,用于保证该字段的值不能为空(姓名,学号等); default:默认约束,用于保证该字段有默认值(性别); primary:主键,保证该字段值有唯一性且非空(学号,员工编号); unioue:唯一,用于保证该字段的值具有唯一性,可空(座位号); check:检查,MySQL不支持,不报错; foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值, 在从表中添加外键约束,用于引用主表中某列的值(专业编号,员工表的部门编号,员工表的工种编号); 添加约束的时间: 7. 创建表时 8. 修改表时 约束分类: 列级约束 六大约束语法懂支持,但外键约束没有效果 表级约束 除了非空和默认,其它都支持 主键和唯一对比: 主键:唯一非空 唯一:可以为空 外键: 要求在从表设置外键关系; 从表的外键列的类型和主表的关联列的类型要求一致或兼容; 主表的关联列必须是一个key(一般是主键或唯一); 插数据时,先主表后从表,删数据,先从后主 */ create table tableName ( 字段名 类型 【列级约束】 , 字段名 类型 , 表级约束 ) ; 一、创建表时添加约束 #1、添加列级约束 CREATE TABLE stuinfo

MySQL 常用字段类型,介绍及其建表使用方法经验分享

时光总嘲笑我的痴心妄想 提交于 2020-02-28 09:09:51
由于工作的公司没有专业的DBA又经常需要建立各种各种的表来满足自己的业务逻辑,所以经常查看MySQL 手册或者谷歌查看相关资料,所以本人就根据我的工作经验和相关资料来介绍一下MySQL各种字段类型及其使用。(由于本人还算是菜鸟哪里写的不对请多多指正,有兴趣的可以探讨一下) MySQL字段类型 int型包括(tinyint, smallint, mediumint, int, bigint) tinyint是1个字节表达范围就是2的8次方(-128-128) 或者(0-255) 很多人不明白为什么有两种情况,因为在计算机中有一种说法叫做无符号,也就是全部是正整数,所以在用MySQL 选择整形字段的时候一定要加上unsigned也就是无符号,因为负数基本不会用到。 smallint是2个字节表达范围2的16次方 smallint是3个字节表达范围2的24次方 int是4个字节表达范围2的32次方,记住这个类型是不能存储手机号的,很多人用它存然后直接报错了,因为int最长到10长度,手机号是11位,所以如果存手机号我的建议就是下面的char类型 bigint是8个字节表达方位就是2的64次方。 char型 表达范围0-255字节数,如果是存字母就是255个,因为每个字母只占一个字节,无论是什么编码,如果是存gbk存中文就是2个字节代表一个汉字,所以就是255/2