mysql添加字段

数据库设计三大范式和五大约束

自闭症网瘾萝莉.ら 提交于 2020-02-28 06:50:01
来源: https://www.cnblogs.com/zhouguowei/p/9268788.html 一、三大范式: 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对这三个范式的基本介绍: 第一范式(1NF): 1、数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。 如果需求知道那个省那个市并按其分类,那么显然第一个表格是不容易满足需求的,也不符合第一范式。 2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。 显然第一个表结构不但不能满足足够多物品的要求,还会在物品少时产生冗余。也是不符合第一范式的。 第二范式(2NF): 满足1NF后要求表中的所有列,每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。 一个人同时订几个房间,就会出来一个订单号多条数据,这样子联系人都是重复的,就会造成数据冗余。我们应该把他拆开来。

Django学习笔记〇三——数据库ORM的使用(带修改)

穿精又带淫゛_ 提交于 2020-02-28 01:50:16
Django框架基本上都是要和数据库结合使用的,我在以前讲过 SQLAlchemy框架的使用 ,Django支持的不是SQLAlchemy,但是也内嵌了ORM框架,可以不需要直接面对数据库编程,而可以通过定义模型类,通过面向对象的方式来实现数据表的增删改查。 点击查看官方的文档 创建表 ORM和DB的对应关系 通过下面的图回顾一下ORM和DB的对应关系 创建数据库 和SQLAlchemy差不多,Django的数据库必须手动创建database。 我们先创建一个名字叫DjangoDB的数据库。 mysql> create database djangoDB charset=utf8; 我们以前讲过ORM的面向对象的思路——ORM和DB的对应关系 创建类——表 那么这个类要放在哪里呢?还记得在上一章讲APP的时候,APP的那个文件夹里有个models的文件么?没错,就是写在这里。 class User(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(null=False,max_length=20) age = models.IntegerField() AutoField:自动增长的IntegerField, 不指定时Django会自动创建属性名为id的自动增长属性

SQL基础语句汇总

不羁岁月 提交于 2020-02-27 03:24:48
连接数据库 1 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面是密码 查看数据库 1 show databases; 使用数据库 1 use test; 查看表 1 show tables; 查看表结构 1 desc winton 建表 1 2 3 4 create table t1( id int not null primary key, name char(20) not null ); 语法 create table 表名称( 字段名 字段名类型 字段描述符,字段名 字段类型 字段描述符); 修改表 添加字段 1 alter table t1 add(score int not null ); 语法:alter table 表明称 add(字段名 类型 描述符); 移除字段 1 alter table t1 drop column score; 语法:alter table 表名 drop colunm 字段名,drop colunm 字段名; 变更字段 1 alter table t1 change name score int not null ; 语法:alter table 表名 change 旧字段名 新字段名 新字段描述符 插入 全字段插入 1 insert into

DjangoModels

折月煮酒 提交于 2020-02-26 14:27:17
传智博客的python的笔记 数据库配置 ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称,主要任务是: 根据对象的类型生成表结构 将对象、列表的操作,转换为sql语句 将sql查询到的结果转换为对象、列表 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表 使用MySql数据库 在settings.py文件中,通过DATABASES项进行数据库设置 django支持的数据库包括:sqlite、mysql等主流数据库 Django默认使用SQLite数据库 在虚拟环境中安装mysql包 1 pip install mysql-python 在mysql中创建数据库 1 create databases test2 charset=utf8 打开settings.py文件,修改DATABASES项 12345678910 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test2', 'USER': '用户名', 'PASSWORD': '密码',

SQL回顾

筅森魡賤 提交于 2020-02-26 07:29:44
数据库的本质是一种特殊的文件 数据库是由数据表组成的,数据表是真正存储数据的 数据库客户端-->SQL语句-->数据库服务器-->数据库文件 表与表之间存在关联的数据库称为关系型数据库 (sql-server my-sql(5.1, 5.6, 5.7) Oracle(10g, 11g) db2) 非关系型数据库(mongodb redis) 唯一的标识一行信息的特殊的列 主键(primary key)不允许重复,不允许为空 当前表中的某个字段来自与另一张表中的主键的值,那么这个字段称之为 外键(foreign key) 列 字段 同一类的信息 行 记录 对象的详细信息 记录的集合组成数据表,数据表的集合组成数据库文件 DQL 数据查询语言 select DML 数据操作语言 insert, update, delete DDL 数据定义语言 create, drop 数据库服务端的安装 sudo apt-get install mysql 数据库客户端的安装 sudo apt-get install mysql-client 将程序的一些配置 写到配置文件中 修改的时候不用修改程序只需要修改配置文件即可(可以更好地保护程序源码) decimal() 占5位小数占2位 enum("情况1","情况2",..) 把所有可能出现的情况都列举出来 体积比较大的文件不存在数据库中

MySQL数据库与表的增删改查

廉价感情. 提交于 2020-02-26 03:32:29
1.值库管理 1.1 查询所有值库   show databases; 1.2 创建一个值库   create database 值库名称   default character set 编码格式名称; 1.3 删除值库   drop database 值库名称; 1.4 修改值库语句   alter database 值库名称 default character set 格式名称; 1.3 查看值库   show create database 值库名称; 2.表管理 2.1 查看所有表   show tables; 2.2 创建表   create table 表名称(       字段名 字段类型,       字段名 字段类型,       字段名 字段类型 ) 快速构建相同表结构   create table 表名称2 like 表名称1; 2.3 查看表结构     show create table 表名称;   show columns from 表名称;   desc 表名称; 2.4 删除表   drop table 表名称; 2.5 修改表   添加字段   alert table 表名称 add column 字段名 字段类型;   删除字段   alter table 表名称 drop column 字段名;   修改字段类型   alter table

01-数据库的基本操作

不打扰是莪最后的温柔 提交于 2020-02-26 03:30:57
本文均为Linux系统的数据库操作     ----mysql服务器     sudo service mysql start ------------------- 启动mysql服务器     mysqladmin -u root shutdown ----------------关闭mysql服务器     ----查看服务器是否开启     ps -ef |grep mysql     如果MySql已经启动,以上命令将输出mysql进程列表 数据库的操作:     ------连接数据库     mysql -u root -p     mysql -u root -p密码     ------退出数据库     quit / exit / cirl+D     ------sql语句需要有分号;结尾     --如果语句没写完,不小心按到enter键,继续输入即可          select version();------显示数据库版本     select now();------显示现在时间     ------创建数据库     create database 数据库名; --默认charset=拉丁     create database 数据库名 charset=utf8; --有中文一定用此方法创建     ------查看所有数据库     show

mysql学习笔记1

心不动则不痛 提交于 2020-02-26 03:27:05
mysql数据库的基本操作 数据库的执行过程: 客户端<->服务器<->DBMS(数据库管理系统进行数据处理,如mysql)<->数据库(进行数据存储) 安装启动 安装:这里只针对ubuntu,apt-get install mysql-server 启动:service mysql start 停止:service mysql stop 重启:service mysql restart 查看状态:service mysql status 启动数据库服务后进入:mysql -hlocalhost -p3306 -uroot -p 进入后可查看所有数据库:show databases; 此时会有四个默认库,其中mysql库中存放的用户信息 数据库CRUD(create,read,update,delete) 增加一个数据库:create database dbname; 一般在增加时同时指定字符集:create database dbname char set 'utf8'; dbname为数据库名 查看数据库的创建信息:show create database dbname; 查看当前数据库select database(); 修改数据库信息:修改字符集 alter database dbname char set 'utf8'; 删除数据库:drop database

MySQL ----数据库操作

我的梦境 提交于 2020-02-24 10:03:35
SQL语法组成 • DML( Data Manipulation Language数据操作语言 查询、插入、删除和修改数据库中的数据; SELECT、INSERT、 UPDATE 、DELETE等; • DCL( Data Control Language数据控制语言) ——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等; • DDL( Data Definition Language数据定义语言) ——用来建立数据库、数据库对象和定义其列 ——CREATE TABLE 、DROP TABLE、ALTER TABLE 等 • 功能函数 ——日期函数、数学函数、字符函数、系统函数等 可以添加BINARY关键字让 MySQL执行区分大小写的比较。 mysql 连接数据库 mysql -h host_name -u user_name –ppassword 导入数据库 mysql –u root –p --default-characterset=latin1 dbname < backup.sql 导出数据库 mysqldump –u root –p tmpdb > backuptmp.sql 创建数据库 mysqladmin –u root –p create newdb 删除数据库 mysqladmin –u root –p drop newdb 更改密码

MySQL-③数据库中表的主键、外键及常用约束

我们两清 提交于 2020-02-24 07:39:02
1. 常见约束类型 (1)primary key 单一主键约束,primary key(字段名1,字段名2) 联合主键 (2)foreign key 外键约束 (3)unique 唯一约束 ,取值不能重复,但允许有一个为空 (4)null 为空约束(系统默认的) (5)not null 非空约束 (6)default 值 默认约束,给定字段一个默认值, 添加字符串型默认值要使用单引号,表示为'值’。 如果是整型则不需要加任何符号; 如果要添加的是中文默认值,则需要加上 DEFAULT CHARSET=utf8; 使用英文字符则 不需要。 (7)auto_increment 自增约束,默认情况下初始值和增量都为1。 2. 创建表(包含常见约束) create table 表名 ( 字段名 数据类型 [列级约束] [列级约束], //多个约束一起使用,约束之间空格隔开 字段名 数据类型 [列级约束] [列级约束], ..... foreign key 本表中的字段名 references 父表名(字段名且是父表的主键), //表级约束 [foreign key 本表中的字段名 references 父表名(字段名),] [constraint 外键约束名 foreign key(外键名)references 主表名(主键名)] ); 来源: CSDN 作者: Forever+Young