sql增加字段

MySQL 数据库表的约束

穿精又带淫゛_ 提交于 2020-02-15 05:06:46
数据库约束的种类 约束名 约束关键字 主键 primary key 唯一 unique 非空 not null 外键 foreign key 检查约束 check 注:mysql 不支持,sql支持 主键约束 创建主键方式 在创建表的时候给字段添加主键 字段名 字段类型 PRIMARY KEY 例1: CREATE TABLE tb_info ( id INT PRIMARY KEY, name VARCHAR(30), age INT ); 例2: CREATE TABLE tb_info ( id INT, name VARCHAR(30), age INT, PRIMARY KEY(id) ); 在已有表中添加主键 ALTER TABLE 表名 ADD PRIMARY KEY(字段名); 例: ALTER TABLE tb_info ADD PRIMARY KEY(id); 删除主键的方式 删除单表主键约束 ALTER TABLE 表名 DROP PRIMARY KEY; 删除有外键连接的表的主键 第一步:解除外键约束 ALTER TABLE 外键表 DROP FOREIGN KEY 外键名称 第二步:删除主键 ALTER TABLE 主键表 DROP PRIMARY KEY; 如:删除tb1的主键 这里有两个表,tb2的外键连接tb1的主键 第一步:解除与tb2的外键约束

MySQL开发规范与使用技巧总结

为君一笑 提交于 2020-02-13 20:23:52
1.命名规范 1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。 b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。 c)字段名显示区分大小写,但实际使⽤用不区分,即不可以建立两个名字一样但大小写不一样的字段。 d)为了统一规范, 库名、表名、字段名使用小写字母。 2.库名、表名、字段名禁止超过32个字符。 库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符。 3.使用INNODB存储引擎。 INNODB引擎是MySQL5.5版本以后的默认引擘,支持事务、行级锁,有更好的数据恢复能力、更好的并发性能,同时对多核、大内存、SSD等硬件支持更好,支持数据热备份等,因此INNODB相比MyISAM有明显优势。 4.库名、表名、字段名禁止使用MySQL保留字。 当库名、表名、字段名等属性含有保留字时,SQL语句必须用反引号引用属性名称,这将使得SQL语句书写、SHELL脚本中变量的转义等变得⾮非常复杂。 5.禁止使用分区表。 分区表对分区键有严格要求;分区表在表变大后,执⾏行DDL

Mysql索引学习笔记

空扰寡人 提交于 2020-02-12 07:05:38
1、分类   MySQL索引分为 普通索引、唯一索引、主键索引、组合索引、全文索引 。索引不会包含有null值的列,索引项可以为null(唯一索引、组合索引等),但是只要列中有null值就不会被包含在索引中。 (1)普通索引:create index index_name on table(column); 或者创建表时指定,create table(..., index index_name column); (2)唯一索引:类似普通索引,索引列的值必须唯一(可以为空,这点和主键索引不同) create unique index index_name on table(column);或者创建表时指定unique index_name column (3)主键索引:特殊的唯一索引,不允许为空,只能有一个,一般是在建表时指定primary key(column) (4)组合索引:在多个字段上创建索引,遵循最左前缀原则。alter table t add index index_name(a,b,c);    最左前缀原则 : https://mp.weixin.qq.com/s/RemJcqPIvLArmfWIhoaZ1g (5)全文索引:主要用来查找文本中的关键字,不是直接与索引中的值相比较,像是一个搜索引擎,配合match against使用,现在只有char,varchar

数据库(二)

旧巷老猫 提交于 2020-02-10 16:37:41
作者:格物 https://shockerli.net/post/1000-line-mysql-note/ 选择类型 -- PHP角度 1. 功能满足 2. 存储空间尽量小,处理效率更高 3. 考虑兼容问题 -- IP存储 ---------- 1. 只需存储,可用字符串 2. 如果需计算,查找等,可存储为4个字节的无符号int,即unsigned 1) PHP函数转换 ip2long可转换为整型,但会出现携带符号问题。需格式化为无符号的整型。 利用sprintf函数格式化字符串 sprintf("%u", ip2long('192.168.3.134')); 然后用long2ip将整型转回IP字符串 2) MySQL函数转换(无符号整型,UNSIGNED) INET_ATON('127.0.0.1') 将IP转为整型 INET_NTOA(2130706433) 将整型转为IP 列属性(列约束) 1. PRIMARY 主键 - 能唯一标识记录的字段,可以作为主键。 - 一个表只能有一个主键。 - 主键具有唯一性。 - 声明字段时,用 primary key 标识。 也可以在字段列表之后声明 例:create table tab ( id int, stu varchar(10), primary key (id)); - 主键字段的值不能为null。 -

suoyin

我与影子孤独终老i 提交于 2020-02-09 12:30:38
1. 什么是索引? 索引是一种数据结构,可以帮助我们快速的进行数据的查找. 2. 索引是个什么样的数据结构呢? 索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引. 3. Hash索引和B+树所有有什么区别或者说优劣呢? 首先要知道Hash索引和B+树索引的底层实现原理: hash索引底层就是hash表,进行查找时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据.B+树底层实现是多路平衡查找树. 对于每一次的查询都是从根节点出发,查找到叶子节点方可以获得所查键值,然后根据查询判断是否需要回表查询数据. 那么可以看出他们有以下的不同: hash索引进行等值查询更快(一般情况下),但是却无法进行范围查询. 因为在hash索引中经过hash函数建立索引之后,索引的顺序与原顺序无法保持一致,不能支持范围查询.而B+树的的所有节点皆遵循(左节点小于父节点,右节点大于父节点,多叉树也类似),天然支持范围. hash索引不支持使用索引进行排序,原理同上. hash索引不支持模糊查询以及多列索引的最左前缀匹配.原理也是因为hash函数的不可预测. AAAA 和 AAAAB 的索引没有相关性. hash索引任何时候都避免不了回表查询数据,而B+树在符合某些条件

Atlas-MySQL

我的未来我决定 提交于 2020-02-08 04:29:12
优秀DBA的素质 1 、人品,不做某些事情 2 、严谨,运行命令前深思熟虑,三思而后行,即使是依据select 3 、细心,严格按照步骤一步一步执行,减少出错 4 、心态,遇到灾难,首先要稳住,不慌张,不要受到旁人的影响 5 、熟悉操作系统,Linux系统的工具和命令 6 、熟悉业务 ( 开发 ),编程语言 7 、熟悉行业 8 、喜欢数据库 • 什么是数据? 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。 • 什么是数据库管理系统? 将大量的数据规范的管理在一起的软件 • 数据库管理系统种类 关系型和非关系型 • 关系型数据库的特点   – 二维表   – 典型产品 Oracle传统企业, MySQL是互联网企业   – 数据存取是通过SQL   – 最大特点,数据安全性方面强(ACID) • NoSQL:非关系型数据库(Not only SQL)   – 不是否定关系型数据库,做关系型数据库的的补充。   – 想做老大,先学会做老二。 RDBMS与NoSQL对比 • web1.0时代   企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要NoSQL。 • web2.0时代   核心是企业提供平台,用户参与提供内容。这时关系型数据库无法满足需求了。 • 2003

Django中ORM介绍和字段以及字段参数

末鹿安然 提交于 2020-02-07 02:47:39
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 ORM由来 让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。 几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。 按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。 ORM的优势 ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。 让软件开发人员专注于业务逻辑的处理,提高了开发效率。 ORM的劣势 ORM的缺点是会在一定程度上牺牲程序的执行效率。

数据库设计

感情迁移 提交于 2020-02-04 10:25:49
参照http://blog.sina.com.cn/s/blog_735fb3b40100svet.html 数据库设计的过程(六个阶段)   1. 需求分析阶段    准确了解与分析用户需求(包括数据与处理)    是整个设计过程的基础,是最困难、最耗费时间的一步   2. 概念结构设计阶段    是整个数据库设计的关键    通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 数据库 管理 系统 (Database Management System) 的概念模型   3. 逻辑结构设计阶段    将概念结构转换为某个DBMS所支持的数据模型    对其进行优化   4. 数据库物理设计阶段    为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)   5. 数据库实施阶段    运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果    建立数据库,编制与调试应用程序,组织数据入库,并进行试运行   6. 数据库运行和维护阶段    数据库应用系统经过试运行后即可投入正式运行。    在数据库系统运行过程中必须不断地对其进行评价、调整与修改   设计特点:    在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计

SQL 字段修改

五迷三道 提交于 2020-02-04 09:06:55
1、修改字段名:   alter table 表名 rename column A to B 2、修改字段类型:   alter table 表名 alter column 字段名 type not null 3、修改字段默认值   alter table 表名 add default (0) for 字段名 with values   如果字段有默认值,则需要先删除字段的约束,在添加新的默认值,   根据约束名称删除约束   alter table 表名 drop constraint 约束名   根据表名向字段中增加新的默认值   alter table 表名 add default (0) for 字段名 with values 4、增加字段:   alter table 表名 add 字段名 type not null default 0 5、删除字段:   alter table 表名 drop column 字段名; 来源: https://www.cnblogs.com/wingfay/p/9233167.html

MySQL数据库详解(一)

穿精又带淫゛_ 提交于 2020-02-02 04:48:58
概述 1.什么是数据库(DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 2.什么是数据库管理系统 (Database Management SystemDBMS) 一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。 3.数据库的分类 4.数据库与数据库管理系统的关系 MySQL数据库 1.MySQL的安装 1.下载后得到zip压缩包. 2.解压到自己想要安装到的目录,本人解压到的是D:\Environment\mysql-5.7.19 3.添加环境变量 我的电脑->属性->高级->环境变量 选择PATH,在其后面添加: 你的mysql 安装文件下面的bin文件夹 4.在D:\Environment\mysql-5.7.19下新建 my.ini 文件 5.编辑 my.ini 文件 ,注意替换路径位置 1 [mysqld] 2 basedir=D:\Program Files\mysql-5.7\ 3 datadir=D:\Program Files\mysql-5.7\data\ 4 port=3306 5 skip-grant-tables 6