mysql修改字段类型

mysql alter 用法,修改表,字段等信息

♀尐吖头ヾ 提交于 2019-12-25 04:43:41
mysql alter 用法,修改表,字段等信息 一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table sys_application comment '系统信息表'; 二:修改字段信息 1.修改字段类型和注释 alter table sys_application modify column app_name varchar(20) COMMENT '应用的名称'; 2.修改字段类型 alter table sys_application modify column app_name text; 3.单独修改字段注释 目前没发现有单独修改字段注释的命令语句。 4.设置字段允许为空 alter table sys_application modify column description varchar(255) null COMMENT '应用描述'; 5.增加一个字段,设好数据类型,且不为空,添加注释 alert table sys_application add `url` varchar(255) not null comment '应用访问地址'; 6.增加主键 alter table t_app add aid int(5) not null ,add primary key

数据库的几个概念:主键,外键,索引,唯一索引

蓝咒 提交于 2019-12-24 05:57:59
主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id int(10) not null primary key auto_increment ;自增长的类型 ; 外键: 定义数据表   假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 Pc;用来保存配件供货信息的表叫做Parts。   在Pc表中有一个字段,用来描述这款电脑所使用的CPU型号;   在Parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。   很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——Pc表中的CPU型号受到Parts 表中型号的约束。   首先我们来创建 parts 表: CREATE TABLE parts ( ... 字段定义 ..., model VARCHAR(20) NOT NULL, ... 字段定义 ... );   接下来是Pc表: CREATE TABLE pc ( ... 字段定义 ..., cpumodel VARCHAR(20) NOT NULL, ...

数据库的几个概念:主键,外键,索引,唯一索引

烈酒焚心 提交于 2019-12-24 05:57:33
主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id int(10) not null primary key auto_increment ;自增长的类型 ; 外键: 定义数据表   假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 Pc;用来保存配件供货信息的表叫做Parts。   在Pc表中有一个字段,用来描述这款电脑所使用的CPU型号;   在Parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。   很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——Pc表中的CPU型号受到Parts 表中型号的约束。   首先我们来创建 parts 表: CREATE TABLE parts ( ... 字段定义 ..., model VARCHAR(20) NOT NULL, ... 字段定义 ... );   接下来是Pc表: CREATE TABLE pc ( ... 字段定义 ..., cpumodel VARCHAR(20) NOT NULL, ...

java高级面试题总结

青春壹個敷衍的年華 提交于 2019-12-24 05:10:44
目录 1、java基础 1.1、hashmap原理?扩容 1.2、arraylist原理?扩容 1.3、jdk1.8新特性? 1.4、completablefuture 2、数据库 2.1、mysql索引优化 2.2、创建索引的依据? 2.3、mysql执行计划,explain各项参数代表什么意思? 2.4、什么时候不会用到索引? 2.5、mysql存储引擎 2.6、数据库隔离级别 2.7、为什么要使用索引 3、java多线程 3.1、java并发包java.util.concurrent及其子包都包括什么? 3.2、synconsized和volatile关键字区别? 3.3、实现线程池的方式? 3.4、公平锁与非公平锁 3.5、为什么不适用Excutors来创建线程池 3.6、ReentraneLock & AQS 4、jvm、java内存模型 4.1、jvm内存模型? 4.2、jvm调优具体调的那些参数? 5、java框架(spring boot,sprint cloud) 5.1、mybatis一级缓存,二级缓存 5.2、mybatis $ # 区别? 5.3、sprint cloud 的常用组件? 6、中间件 6.1、redis存储的数据类型 6.2、redis实现分布式锁原理,使用redis实现分布式锁有什么问题? 6.3、zookeeper实现分布式锁原理 6.4

MySQL优化之推荐使用规范

半世苍凉 提交于 2019-12-23 16:11:32
一、基础规范 使用InnoDB存储引擎 支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 推荐使用utf8mb4字符集 无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字 表、字段必须加注释 方便他人理解字段意思,在后期维护中非常非常有用,不用去瞎猜这个字段是干嘛的。 不在数据库做计算 禁止使用存储过程、视图、触发器、Event。 在并发量大的情况下,这些功能很可能将数据库拖跨,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能” 禁止存储文件 文件存储在文件系统,数据库里存URI 控制单表数据量 单表记录控制在千万级 二、命名规范 库名、表名、字段名:小写,下划线风格 非唯一索引名idxxxx,唯一索引名uniqxxx 表必须有主键,例如自增主键 a)主键递增,数据行写入可以提高插入性能 b)主键要选择较短的数据类型,Innodb引擎普通索引都会保存主键的值,较短的数据类型可以有效的减少索引的磁盘空间,提高索引的缓存效率 c)保证实体的完整性,唯一性 不要使用外键,如果有外键约束,用应用程序控制 外键会导致表与表之间耦合,update与delete操作都会涉及相关联的表,十分影响sql 的性能,甚至会造成死锁。高并发情况下容易造成数据库性能下降,大数据高并发业务场景数据库使用以性能优先 三、字段设计规范 把字段定义为NOT

SQL介绍、语句之增删改查大全

余生长醉 提交于 2019-12-23 16:00:58
数据库概念 文件作为数据库,数据格式千差万别 将保存数据的地方统一起来 MySQL一款应用软件 用来帮你操作文件的 只要是基于网络通信,底层都是socket!!! 服务端 -socket通信 -收发消息 -解析命令(sql语句) 客户端 -socket通信 -收发消息 -解析命令(sql语句) DBA: sql语句优化 RDBMS:数据库管理系统 关系型数据库 存储数据的时候,对于数据有条件限制 数据与数据之间有关联 通常都是以表格的方式存储 第一步需要创建表结构! 关系型数据库: oracle, sqlite, db2, sql server,MySQL,access 非关系型数据库 数据存储方式 k,v键值对的形式 redis,mongodb,memcache 关系型数据库和非关系型数据库的区别 非关系型数据库的优势: 1、性能 NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高 2、可扩展性 同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。 3、使用场景:日志、埋点、论坛、博客等 关系型数据库的优势: 1、 复杂查询 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询 2、事务支持 使得对于安全性能很高的数据访问要求得以实现。 3、使用场景:所有有逻辑关系的数据存储 库文件夹操作 增

MySQL数据约束

北慕城南 提交于 2019-12-23 13:11:46
定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束。 代码: 1.默认值 : default ' ' 作用:当用户对使用默认值的字段 不插入值 的时候,就使用默认值(自动填充)。 注意: (1) 对默认值字段 插入null 是可以的    (2) 对默认值字段可以 插入非null create table student( id int, name varchar(20), address varchar(20) default '山东淄博' /*默认值*/ ); 2.非空 : not null 作用: 限制字段 必须赋值, ' ' 空字符也是值 注意 : (1) 非空 字符 必须赋值 (2) 非空 字符 不能赋null create table student( id int, name varchar(20), address varchar(20) not null /*非空*/ );/*非空字段必须赋值*/insert into student(id,name)values(1,'张三') /*添加失败,因为没有赋值*//*非空字符不能插入null*/ insert into student values(1,'张三',NULL) /*添加失败,因为赋值NULL*/ 3.唯一 : unique 作用: 对字段的 值不能重复 注意:(1)唯一字段可以插入null

数据库

五迷三道 提交于 2019-12-23 05:51:27
MySQL 在使用数据库之前,先要知道有哪些SQL语句 SQL:结构化查询语言,是一种规范,所有关系型数据库都遵循这个规范,但各家数据库允许存在差异,这种差异叫做方言 SQL语句具体分为四部分: (1)DDL(Data Definition Language):数据定义语言,主要操作对象是库,表,如建库,删库等 (2)DML(Data Manipulation Language):数据操作语言,主要对表中数据进行增删改操作 (3)DCL(Data Control Language):数据控制语言,主要对数据库的一些权限的设置 (4)DQL(Data Query Language):数据查询语言,主要对表中的数据进行查询(重点) DDL语句 查询所有数据库:show databases; 建库:create database 库名; 删库:drop database 库名; 在对表操作之前,要先进入一个库:use 库名; 查询一个库中的所有表:show tables; 建表:create table 表名(表头字段属性,…); 查询表结构:desc 表名; 删表:drop table 表名; 清空表:truncate 表名;干掉表,重新创建一张新表 具体操作: 首先,你需要安装mysql环境,本文没有演示如何安装,可上网查阅安装过程和配置过程,没有环境,是操作不了数据库的

MySQL完整性约束

僤鯓⒐⒋嵵緔 提交于 2019-12-23 00:10:53
一. 约束介绍   约束条件与数据类型的宽度一样,都是可选参数.   用于保证数据的完整性和一致性. 二. 约束分类   1. primary key (pk)  表示该字段为该表的主键,可以唯一的标识记录   2. foreign key (fk)  标识该字段为该表的外键   3. not null  标识该字段不能为空     默认为空, 设置不为空就必须要为字段赋值   4. unique key (uk)  标识该字段的值是唯一的   5. anto_increment  标识该字段的值自动增长(整数类型, 而且为主键)   6. default  为该字段设置默认值     默认为null, 如果设置了默认值,并且插入数据时不给该字段赋值时,使用默认值. 三 . 详细分类验证    1. not null 和 default           2. unique      ①. 单列唯一     在mysql中称为单列唯一,即同一列内唯一             将 name 字段设置为唯一, 不可以给 name 字段插入相同的值.      ②. 联合唯一    将id设置为单列唯一,将ip+端口设置为联合唯一,也就是ip+端口不可以相同,ip或端口相同可以.    3. primary key     在一个表中 : 单列可以做主键, 多列也可以做主键(复合主键)

mysql 严格模式 Strict Mode说明

半腔热情 提交于 2019-12-21 08:34:28
1.开启与关闭Strict Mode方法 找到mysql安装目录下的my.cnf(windows系统则是my.ini)文件 在sql_mode中加入STRICT_TRANS_TABLES则表示开启严格模式,如没有加入则表示非严格模式,修改后重启mysql即可 例如这就表示开启了严格模式: sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 2.Strict Mode功能说明 不支持对not null字段插入null值 不支持对自增长字段插入”值 不支持text字段有默认值 3.例子: 创建数据表方便测试 CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 1.not null字段插入null值测试 插入一条记录,name的值为null 在非严格模式下执行 mysql> insert into mytable(content) values('programmer'); Query OK, 1 row affected, 1 warning