mysql添加字段

mysql字段约束-索引-外键

ε祈祈猫儿з 提交于 2020-01-01 22:13:04
字符修饰符 1)null于not null 说明与使用 NULL 是空值的意思,就是这个字段没有值 先创建一个数据库,并进入 mysql > create database w1 mysql > use w1 ; 这里用例子举例,什么时用null和 not null 1.首先是not null的使用 可以看到,两个字段我类型后面,我加了, not null 关键词,这就是使用 mysql > create table name ( id int ( 10 ) not null , stname char ( 10 ) not null ) ; Query OK , 0 rows affected ( 0.34 sec ) 然后查看一下表结构,可以看到第三列NULL,两个字段都是NO,表示两个字段都不允许为 NULL 值的意思 mysql > desc name ; + --------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + --------+----------+------+-----+---------+-------+ | id | int ( 10 ) | NO | | NULL | | | stname | char ( 10

SQL基础-----DDL

一个人想着一个人 提交于 2020-01-01 07:19:58
1 (My)SQL入门    这里用了(My)SQL这样的标题,目的是介绍标准SQL的同时,也将MySQL在标准SQL上的扩展一同介绍给读者。 2: SQL分类   SQL语句主要可以划分为以下3个类别    . DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等。    . DML(Data Manipulation Languages)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。    . DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,主要的语句关键字包括grant、revoke等。 3:DDL语句   DDL是数据定于语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改等操作的语言。它和DML语言的最大区别是DML只是对表内部数据操作,而不涉及表的定义,结构的修改,更不会涉及其他对象。DDL语句更多的由数据库管理员(DBA)使用,开发人员一般很少使用。  

数据库(MySQL)表基本操作

眉间皱痕 提交于 2020-01-01 05:55:44
数据库表基本操作 思前想后,最终还是把博客的名字改成了数据库表基本操作,以前叫SQL语句大全,感觉用“大全”这个名词太大了,而文章中介绍的内容有限而且也不深。如果您在阅读的过程中发现有不完善的地方,欢迎补充说明。 创建数据库    一提笔就讲创建数据库,感觉好像是从半道上开始的。创建数据库前总得安装数据库吧,不管是SQL Server、mysql、Oracle。但是如果这样写下去,不知道这篇博客还能不能完成,那就默认是安装好数据库了吧,本片博客如下都是使用mysql数据库,首先是登入数据库操作(mysql -u root -p)。 查看当前所存在的数据库: show databases; 查询结果中的mysql数据库是必须的,用来描述用户的访问权限;information_schema数据库提供了访问数据库元数据的方式,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等;performance_schema用于收集数据库服务器性能参数。 创建新的数据库: create database test_db; test_db为要创建的数据库名称,该名称不能与现有的数据库重名。 查看创建好的数据库定义:show create database test_db; 删除数据库: drop database test_db; test

MYSQL常用操作

流过昼夜 提交于 2020-01-01 05:21:05
1. 如何登陆本机MySQL: 运行->cmd 回车-> mysql -h localhost -u root -p 回车 输入密码:12345 “;”“ \G ”“\g”结尾 2. 创建数据库: CREATE DATABASE 数据库名 ; “数据库名”表示要创建的数据库名称。 3. 显示已经存在的数据库: SHOW DATABASES; 4. 删除数据库: DROP DATABASE 数据库名; 5.查看数据库的存储引擎: SHOW ENGINES\G 或者: SHOW VARIABBLES LIKE 'have%'; 6.查看默认存储引擎: SHOW VARIABLES LIKE 'storage_engine'; InnoDB存储引擎中,创建的表的表结构存储在.frm文件中。 MyISAM存储引擎支持3种不同的存储格式,静态型、动态型和压缩型(myisampack工具创建)。 文件扩展名:frm(存储表的结构)、MYD(存储数据)和MYI(存储索引)。 7. 创建表的SQl语句: CREATE TABLE 语法形式: CREATE TABLE 表名(属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], . . . 属性名 数据类型(注意后无逗号) ); 表名 -创建的表的名称; 属性名 -表中字段的名称; 数据类型 -字段的数据类型;

Mysql innodb索引与查询优化

只谈情不闲聊 提交于 2020-01-01 04:53:36
一、 引言 概要 (1) innodb索引类型与B+树 (2) 索引使用注意事项 (3) 车点评业务表索引优化案例 问题 (1) InnoDb索引为什么要用b+树? (2) 聚集索引与普通索引有什么区别? (3) 为什么主键最好是自增? (4) 组合索引有什么优势? (5) 有哪些实际业务场景索引搞不定? 二、 innodb索引类型与B+树 INNODB主要有几种索引:B+树索引,自适应哈希索引,全文索引 ,覆盖索引。 B+树索引是一种多叉平衡查找树。 自适应哈希索引是mysql对于频繁查询的数据采取的hash存储优化,用户无法选择设置。 全文索引主要用于全文检索使用。 覆盖索引说的是查询的字段都属于同一个索引字段,这样效率非常高。 查找树 查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。 B 树 /B+ 树 /B* 树 B树 B+树 所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。 数据库索引采用B

MySql导入sql数据时,字段值过大报错 MySQL server has gone away

☆樱花仙子☆ 提交于 2020-01-01 02:56:32
一.暂时解决 1.查看通信缓冲区的最大长度 show global variables like 'max_allowed_packet'; 默认是 4 MB 2.将这个值改为16 MB 这种修改只对当前有效,mysql重启后将恢复默认值 二.永久有效 修改或添加linux目录下 /etc/my.cnf 中的属性 max_allowed_packet=16777216 重启mysql 来源: CSDN 作者: 纯洁的小魔鬼 链接: https://blog.csdn.net/xyy1028/article/details/103754642

ORM之聚合、分组、F与Q查询,orm中常见字段,自定义char字段,查询优化,django orm中的事务操作

走远了吗. 提交于 2019-12-31 16:33:31
目录 ORM之聚合、分组、F与Q查询,orm中常见字段,自定义char字段,查询优化,django orm中的事务操作。 聚合查询 分组查询 F与Q查询 F查询 Q查询 Q查询进阶 ORM中常见字段及参数 常用字段 ORM字段与MySQL字段对应关系: 常用参数 关系字段 (1)ForeignKey (1)字段参数 (2)OneToOneField (2)字段参数 自定义char字段 查询优化(面试比较喜欢问) only与defer select_related与prefetch_related django orm中的事务操作 补充知识: ORM之聚合、分组、F与Q查询,orm中常见字段,自定义char字段,查询优化,django orm中的事务操作。 聚合查询 聚合(利用聚合函数) 关键字: aggregate() 是 QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。 from django.db.models import Max,Min,Count,Sum,Avg # 统计所有书平均价格 res = models.Book.objects.all().aggregate(Avg('ptice')) res1 = models.Book.objects.all().aggregate(Max('ptice')) res2 = models.Book

行式填报之主键设置

情到浓时终转凉″ 提交于 2019-12-28 09:33:38
填报功能是报表工具不可或缺的功能之一,此功能可以让用户在页面中进行数据维护操作。特别是在行式填报中,用户不仅可以修改数据,而且可以插入 / 添加新数据或删除已有数据。这样,在更新行式填报页面中的数据记录时,主键字段就会涉及 insert 和 delete 操作,而对于不同类型的主键我们应该如何进行更新设置?有哪些方面是需要我们注意的呢?下面我们将以雇员信息表的维护为例探讨一下主键设置的相关内容。 附 Employee 表结构: 先准备一张行式填报表,制作效果如下图所示: (行式填报表快速制作教程参见 数据维护不求人,一招搞定增删改 ) 来源脚本设置: 重点来啦 ~~ 去向脚本中不同的主键类型应该如何配置呢?我们来逐个攻破: 1. 单主键 Employee 表的主键为 empno,那么脚本中的 update 函数配置为: A1.update@k(employee:employee_old,employee,empno,ename,salary,sex;empno) 在英文分号后面配置主键 empno,报表在做更新处理时,会以 empno 为主键对比 employee 和 employee_old 对象的数据,然后将差异数据更新到表 employee 中。 完整版脚本内容如下图所示: 2. 多主键 一般情况下,物理表只设置一个主键字段就可以将数据记录区分开来

MySQL用户和权限管理

牧云@^-^@ 提交于 2019-12-27 22:39:14
前言 在MySQL 5.7.24中,关于用户及用户权限的相关信息,都保存在了mysql库中的user表中,可以将user表中大致分为用户列、权限列、安全列、资源控制列这几种。 1、用户列 user表的用户列包括 Host、 User、password,分别表示主机名、用户名和密码。其中 user和 Host为user表的联合主踺。当用户与服务器之间建立连接时,输入的账户信息中的用户名称、主机名和密码必须匹配user表中对应的字段,只有3个值都匹配的时候,才允许连接的建立。这3 个字段的值就是创建账户时保存的账户信息。修改用户密码时,实际就是修改user表的password字段值。 2、权限列 权限列的字段决定了用户的权限,描述了在全局范围内允许对数据和数据库进行的操作。包括查询权限、修改权限等普通权限,还包括了关闭服务器、超级权限和加载用户等高级权限。普通权限用于操作数据库;高级权限用于数据库管理。 user表中对应的权限是针对所有用户数据库的。这些字段值的类型为 ENUM,可以取的值只能为 Y和 N, Y表示该用户有对应的权限; N表示用户没有对应的权限。查看user表的结构可以看到,这些字段的值默认都是 N。如果要修改权限,可以使用 GRANT语句或 UPDATE语句更改 user表的这些字段来修改用户对应的权限。 3、安全列 安全列只有6个字段,其中两个是 SSI相关的

数据库应用_表结构_键值

久未见 提交于 2019-12-27 10:01:55
随笔结构:1.数据导入导出; 2.管理表格的记录; 3.数据的匹配条件. 一,数据的导入与导出 * mysql默认的导入导出路径为/var/lib/mysql-files/ * 定义路径的变量名secure_file_priv * 修改路径的方式:1).创建目录mkdir /myfile; 2).赋权chown mysql /myfile; 3).将secure_file_priv写入配置文件/etc/my.cnf; 4).重启服务; 5).进入数据库使用show variables like "%secure_file_priv%"查看路径是否修改成功. 1.导入数据 例:将/etc/passwd文件内容导入db3库下的user表,并添加行号字段. 思路:建库db3->建表user->导入数据->为表格添加id号 1.1 建库 create database db3; 1.2. 建表 1.3. 导入数据:mysql>load data infile “/var/lib/mysql-files/” into table db3.user fields terminated by “:” lines terminated by “\n”; 1.4. 为表格添加id号: alter table user add id primary key auto_increment first;