mysql修改字段类型

分享知识-快乐自己:MySQL中的约束,添加约束,删除约束,以及一些其他修饰

天涯浪子 提交于 2019-11-29 08:31:32
创建数据库: CREATE DATABASES 数据库名; 选择数据库: USE 数据库名; 删除数据库: DROP DATAVBASE 数据库名; 创建表: CREATE TABLE IF NOT NULL EXISTS 表名 (字段1 数据类型 【字段属性|约束|索引|注释】,.............); 字段的约束及属性 CREATE TABLE IF NOT NULL 表名(字段1 数据类型 PRIMARY KEY //单字段主键); 多字段联合主键: CREATE TABLE IF NOT NULL 表名   ( 字段1 数据类型 ,    字段2 数据类型    PRIMARY KEY (字段1,字段2)//多联合复合主键 ); 注释: CREATE TABLE TEXT ( `id` int(11) UNSIGNED COMMENT'编号')COMMENT'测试表'; 编码格式设置: CREATE TABLE TEXT( `id` int(11) UNSIGNED COMMENT'编号')CHARSET=字符集名; 查看表: SHOW TABLES; 查看表定义: DESCRIBE 表名;或 DESC 表名; 如果是在DOC窗口下执行,最好先执行 SET NAMES gbk;避免产生乱码 删除表: DROP TABLE IF EXISTS 表名; 查看默认存储引擎:

MySQL(三) 完整性约束

為{幸葍}努か 提交于 2019-11-29 08:30:38
一.介绍   约束条件与数据类型的宽度意义,都是可选参数.   作用:用于保证数据的完整性和一致性.   主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充 二.not null与default   not null 指的时字段的值不可为空,null表示空   default 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值 ==================not null==================== mysql> create table t1(id int); #id字段默认可以插入空 mysql> desc t1; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---

mysql的建表约束

狂风中的少年 提交于 2019-11-29 08:29:16
主键约束(primary key) 主键约束能够唯一确定一张表中的记录,也就是可以通过某个字段添加约束,就可以是的 该字段不重复,且不为空 create table user (id int primary key,name char,phone int(11)); 联合主键(只要联合主键的值加起来不完全相同就可以添加成功) create table user3 (id int,name char(3),phone char(11),primary key (id,name)); 联合主键的表中,只要插入的数据的主键的值加起来不完全相同,就可以添加成功 自增约束(primarykey和auto_increment联合使用) 当创建表时没有添加主键约束怎么办? 可以使用alter语句来修改表的结构 语法:alter table 表名 add primary key (字段名); 同样可以应用alter语句来删除主键 语法:alter table 表名 drop primary key ; 通过修改字段的方式添加主键约束(modify) 语法:alter table 表名 modify 字段名 字段类型 primary; 外键约束(foreign key.......references) 涉及到两个表:父表(主表)、子表(副表) 特性:主表中没有的数据,在副表中不可以直接添加

mysql的建表约束

自古美人都是妖i 提交于 2019-11-29 08:24:54
主键约束(primary key) 主键约束能够唯一确定一张表中的记录,也就是可以通过某个字段添加约束,就可以是的 该字段不重复,且不为空 create table user (id int primary key,name char,phone int(11)); 联合主键(只要联合主键的值加起来不完全相同就可以添加成功) create table user3 (id int,name char(3),phone char(11),primary key (id,name)); 联合主键的表中,只要插入的数据的主键的值加起来不完全相同,就可以添加成功 自增约束(primarykey和auto_increment联合使用) 当创建表时没有添加主键约束怎么办? 可以使用alter语句来修改表的结构 语法:alter table 表名 add primary key (字段名); 同样可以应用alter语句来删除主键 语法:alter table 表名 drop primary key ; 通过修改字段的方式添加主键约束(modify) 语法:alter table 表名 modify 字段名 字段类型 primary; 外键约束(foreign key.......references) 涉及到两个表:父表(主表)、子表(副表) 特性:主表中没有的数据,在副表中不可以直接添加

MySQL存储引擎

二次信任 提交于 2019-11-29 08:15:05
MySQL存储引擎 MySQL的存储引擎 存储引擎sql语句: 查看当前的默认存储引擎: mysql> show variables like "default_storage_engine"; 查询当前数据库支持的存储引擎 mysql> show engines \G; 常用引擎适用场景: InnoDB 用于事务处理应用程序,支持外键和行级锁。如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包括很多更新和删除操作,那么InnoDB存储引擎是比较合适的。InnoDB除了有效的降低由删除和更新导致的锁定,还可以确保事务的完整提交和回滚,对于类似计费系统或者财务系统等对数据准确要求性比较高的系统都是合适的选择。 MyISAM 如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不高,那么可以选择这个存储引擎。 Memory 将所有的数据保存在内存中,在需要快速定位记录和其他类似数据的环境下,可以提供极快的访问。Memory的缺陷是对表的大小有限制,虽然数据库因为异常终止的话数据可以正常恢复,但是一旦数据库关闭,存储在内存中的数据都会丢失。 不同的存储模式: 数据存在硬盘上,存三个文件,存表结构、数据、搜索目录; 数据存在硬盘上、存两个文件,表结构存一个文件,数据和搜索目录存一个文件; 数据存在内存中

写给 Java 程序员的 24 个MySQL面试题,拿走不谢!

核能气质少年 提交于 2019-11-29 08:09:48
一、为什么用自增列作为主键?   1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。   如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。   如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。   2、数据记录本身被存于主索引(一颗B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放   因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)   3、如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页   4、如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置   此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多开销   同时频繁的移动、分页操作造成了大量的碎片

Mysql高手系列 - 第4天:DDL常见操作汇总

女生的网名这么多〃 提交于 2019-11-29 06:38:21
这是Mysql系列第4篇。 环境:mysql5.7.25,cmd命令中进行演示。 DDL:Data Define Language数据定义语言,主要用来对数据库、表进行一些管理操作。 如:建库、删库、建表、修改表、删除表、对列的增删改等等。 文中涉及到的语法用[]包含的内容属于可选项,下面做详细说明。 库的管理 创建库 create database [if not exists] 库名; 删除库 drop databases [if exists] 库名; 建库通用的写法 drop database if exists 旧库名; create database 新库名; 示例 mysql> show databases like 'javacode2018'; +-------------------------+ | Database (javacode2018) | +-------------------------+ | javacode2018 | +-------------------------+ 1 row in set (0.00 sec) mysql> drop database if exists javacode2018; Query OK, 0 rows affected (0.00 sec) mysql> show databases like

MYSQL的操作命令

本小妞迷上赌 提交于 2019-11-29 06:16:26
一、御前 1 win+R DOS 输入 net start mtsql 和 net stop mysql 启动和停止Mysql 服务,也可通过计算机——管理——服务和应用程序——服务——MYSQL——右击 启动mysql服务出现服务名无效的原因及解决方法【失败】 问题原因:mysql服务没有安装。 解决办法: 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令 以管理员的权限 mysqld -remove ,卸载mysql服务 2 登录和退出 路径: DOS:mysql -uroot -p 输入密码 exit; 退出 show databases; 查看数据库 Command Line Client登录和退出 3 常见操作 \h 或者 help; source D:\test.sql 即执行test.sql文件 4 图形 MYSQL Workbench 另外介绍第三方 SQLyog 二、数据库和表的基本操作 1、MySQL支持的数据类型 1)数值类型 字符串类型 日期和时间类型 2)数据库基本操作 CREATE DATABASE 数据库名称; SHOW DATABASE; SHOW CREATE DATABASE 数据库名称; 查看已经创建的数据库的创建信息 CREATE DATABASE 数据库名称 CHARACTER SET gbk;

数据库操作(二)

我的未来我决定 提交于 2019-11-29 05:02:01
数据库操作(二) 1.MySQL行(记录)操作 插入(增加)数据 1.插入完整数据 语法1: insert into 表名(字段1,字段2..字段n) values(值1,值2..值n); #字段和值要一一对应 语法2: insert into 表名 values(值1,值2..值n); #表名后不定义列名,则按顺序给所有列添加值 2.指定字段插入数据 语法: insert into 表名(字段1,字段2..) values(值1,值2..) 3.插入多条记录 语法: insert into 表名 values (值1,值2,值3...值n), (值1,值2,值3...值n), (值1,值2,值3...值n); #插入多条记录用逗号分隔 4.插入查询结果 语法: insert into 表名(字段1,字段2..字段n) select (字段1,字段2..字段n) from 表2 where 条件; #将从表2中查询的结果插入到表中,查询数据要和指定的字段对应好 5.增加字段 语法: alter table 表名 add 字段名 数据类型 约束条件, add 字段名 数据类型 约束条件; #增加记录 alter table 表名 add 字段名 数据类型 约束条件 first; #增加记录到第一个位置 alter table 表名 add 字段名1 数据类型 约束条件 after

MYSQL性能调优

允我心安 提交于 2019-11-29 03:43:32
摘要 为了学习研究MySQL数据库在工作原理,深刻理解MySQL在企业运用时如何保证其高效运行。分别从表结构的优化,SQL语句的优化,存储引擎的选择,索引的优化以及现今MySQL的发展与其他企业级数据库的比较。介绍了从编码选择到数据类型的选择以及从整体的角度设计表结构。在SQL语句的选择和使用的介绍的时候,深入介绍了一些基本的使用原则以及在一般在使用过程中我们存在的误区以及如何解决这些问题。着重介绍了MySQL的几个存储引擎MyISAM、InnoDB和NDBCluster的差异以及各自的适用范围。有介绍了MySQL的索引的一些优化的建议以及高屋建瓴地阐述和比较了MySQL的优劣和发展态势。 前言 数据库作为应用作为广泛,地位极为重要的中间件应用,学习和使用数据库管理系统变得越来越重要。为了研究和总结对mysql数据库的学习结果,特别从数据表结构、sql语句优化、存储引擎的选择、索引的应用、以及mysql的比较总结对mysql技术做了一个比较全面升入的介绍。使用mysql的过程中,如何更好地使用与优化越来越重要,在这篇文章中就阐述。 第一章 表结构的优化 数据表是数据库的具体表现形式,设计优良的数据库拥有良好的表结构,者不单单指数据库的表需要满足范式结构,为了更有利于具体操作,表结构还需要实际的可扩展性,以便于做增删改查,又需要根据数据表的具体作用做出调节