mysql修改字段类型

MySQL面试题

匿名 (未验证) 提交于 2019-12-02 21:59:42
1. 如何设计一个高并发的系统 ① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化 ② 使用缓存,尽量减少数据库 IO ③ 分布式数据库、分布式缓存 ④ 服务器的负载均衡 2. 锁的优化策略 ① 读写分离 ② 分段加锁 ③ 减少锁持有的时间 ④ 多个线程尽量以相同的顺序去获取资源 等等,这些都不是绝对原则,都要根据情况,比如不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效率不如一次加一把大锁。这部分跟面试官谈了很久 3. 索引的底层实现原理和优化 B+树,经过优化的B+树 主要是在所有的叶子结点中增加了指向下一个叶子节点的指针,因此InnoDB建议为大部分表使用默认自增的主键作为主索引。 ① 以“%”开头的LIKE语句,模糊匹配 ② OR语句前后没有同时使用索引 ③ 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型) order by要怎么处理 alter尽量将多次合并为一次 insert和delete也需要合并 等等 6. 实践中如何优化MySQL 我当时是按以下四条依次回答的,他们四条从效果上第一条影响最大,后面越来越小。 ① SQL语句及索引的优化 ② 数据库表结构的优化 ③ 系统配置的优化 ④ 硬件的优化 变种极多,攻击简单,危害极大 未经授权操作数据库的数据 恶意纂改网页

day 34小结

坚强是说给别人听的谎言 提交于 2019-12-02 20:29:36
目录 1.操作表 操作表数据行 1.操作表 ​ 增: create table 表名( 字段名 列类型 [可选的参数], 字段名 列类型 [可选的参数], 字段名 列类型 [可选的参数] )charset = utf8; 例子1: create table t1( id int , name char(5) )charset = utf8; Query OK, 0 rows affected (0.41 sec) # 表示创建成功 增加数据语法: 语法: insert into 表名 (列1,列2) values (值1,'值2'); 例子: insert into t1 (id,name) values (1,'zekai'); 例子2: create table t1( id int auto_increment primary key, name char(5) not null default 'xxx', age int not null default 0 )charset = utf8; 表的约束: auto_increment : 自增 1 primary key : 主键索引,加快查询速度 not null : 标识该字段不能为空 default : 为该字段设置默认值 ​ 列类型: 数字 整型 tinyint smallint int mediumint

数据库表操作与列操作

Deadly 提交于 2019-12-02 20:10:52
目录 一 操作表 二 操作数据行 作业 一 操作表 增 ​ ​ 语法: ​ create table 表名( ​ 字段名 列类型 [可选的参数],####记住加逗号 ​ 字段名 列类型 [可选的参数],#####记住加逗号 ​ 字段名 列类型 [可选的参数] #####最后一行不加逗号 ​ )charset = utf8; #####后面加分号 ​ 列约束(*******************************************) ​ auto_increment: 自增 ​ primary key 主键索引,加快查询速度,列的值不能重复 ​ not null 标识该字段不能为空 ​ default 为该字段设置默认值 ​ 例子1: ​ create table t1(id int,name char(5))charest = utf8; ​ Query OK, 0 rows affected (0.72 sec) #### 如果回显是queryok,代表创建成功 ​ 增加数据: ​ 语法: ​ insert into 表名(列1,列2)values(值1,’值2'); ​ 例子: ​ insert into t1(id,name) values(1,'tank'); ​ insert into t1(id,name) values(1,'tank2'); ​

MySQL 数据库基础 二

旧城冷巷雨未停 提交于 2019-12-02 20:05:22
目录 一. 操作表 创建表 语法: 列约束:(******) 增加数据: 查询数据: 语法: 列类型: (********************) 数字: 字符串 时间日期类型 枚举 改 删 查 复制表结构 二. 操作表数据行: 增加数据: 删 改 查 语法: 一. 操作表 创建表 语法: ​ create table 表名( ​ 字段名 列类型 [可选的参数], ### 记住加逗号 ​ 字段名 列类型 [可选的参数], ### 记住加逗号 ​ 字段名 列类型 [可选的参数] ### 最后一行不加逗号 ​ ..... ​ )charset=utf8; #### 后面加分号 列约束:(******) auto_increment : 自增 1 primary key : 主键索引,加快查询速度, 列的值不能重复 NOT NULL 标识该字段不能为空 DEFAULT 为该字段设置默认值 例子1: create table t1( id int, name char(5) )charset=utf8; Query OK, 0 rows affected (0.72 sec) # 如果回显是queryok,代表创建成功 增加数据: 语法: insert into 表名 (列1, 列2) values (值1,'值2'); 例子: insert into t1 (id, name)

mysql操作数据表

别来无恙 提交于 2019-12-02 20:03:25
目录 创建数据表 列约束 查看数据表结构 列类型(字段类型) 整型 浮点型 字符串 时间日期类型 Date Time Datetime Timestamp Year 枚举enum 修改表名 增加字段 删除字段 修改字段 删除表 复制表结构 创建数据表 语法: create table 表名( 字段名 列类型 [可选参数], 字段名 列类型 [可选参数] .... ) charset=utf8; 如: create table t4( id int, name char(15) )charset=utf8; 列约束 auto_increment 自增长1 primary key 主键索引,加快查询速度,列的值不能重复 not null 标识该字段不能为空 default 该字段设置默认值 create table t5( id int primary key auto_increment, name char(15) not null default '', )charset=utf8; 查看数据表结构 desc t5; show create table t5; 列类型(字段类型) 整型 类型 大小 范围(无符号) Tinyint 1个字节 (0-255) Smallint 2个字节 (0-65535) Mediumint 3个字节 int(一般直接用int) 4个字节

数据库 day34 总结

人盡茶涼 提交于 2019-12-02 19:57:46
数据库 1、数据库介绍 1.1 架构关系 数据库服务器:运行数据库管理软件 数据库管理软件:管理数据库 数据库:即文件夹,用来组织文件/表 表:即文件,用来存放多行内容/多条记录 1.2 mysql账号操作 mysql基于socket编写的C/S架构软件 数据库表操作 操作背景为在数据库内操作 即: use 数据库名 列约束 auto_increment : 自增 1 primary key : 主键索引,加快查询速度, 列的值不能重复 not null : 标识该字段不能为空 default : 为该字段设置默认值 数据类型 整型 tinyint:1字节 -128~127 * smallint:2字节 -32768 ~ 32767 mediumint:3字节 int:4字节 -2147483648~2147483647 * bigint:8字节 区别: 1.取值范围不同 2.unsigned 加上代表不能取负数 只适用于整型 3.不同类型所占字节数不一样, 决定所占空间及存放数据的大小限制 应用场景: 根据公司业务的场景,来选取合适的类型 浮点型 float: 不一定精确 decimal: 非常的精确的数字,decimal(M, D) m是数字总个数(负号不算),d是小数点后个数。 如:decimal(3, 2) ====》3.45 字符串 char:定长 varchar:变长

操作数据库day34课堂小结

六眼飞鱼酱① 提交于 2019-12-02 19:57:33
操作表 增 语法: create table 表名( 字段名 列类型[可选的参数],###加逗号 字段名 列类型[可选的参数],###加逗号 字段名 列类型[可选的参数] ###最后一行不加逗号 ... )charset=utf8;#### 后面加分号 列约束: auto_increment: 自增 1 primary key: 主键索引,加快查询速度,列的值不能重复 NOT NULL: 标识该字段不能为空 DEFAULT: 为该字段设置默认值 # 例子一 create table t1( id int, name char(5) )charset = utf8; # 例子二 create table t2( id int auto_increment primary key, name char(10) )charset=utf8; # 例子三(推荐) create table t3( id int unsigned auto_increment primary key, name char(10) not null default 'xxx', age int not null default 0 )charset=utf8; 增加数据: insert into 表名(列1,列2)values(值1,'值2'); # 例子: insert into t1 (id,name

day34

家住魔仙堡 提交于 2019-12-02 19:53:39
MySQL操作 创建表格 语句: create table 表名( 字段名1 类型 [约束条件], 字段名2 类型 [约束条件] ); # 注意 1. 在同一张表中,字段名是不能相同的 2. 宽度和约束条件可选 3. 字段名和类型是必须的 实例: create table teacher( id int auto_increment primary key, name varchar(20), age int, salary decimal ); 列约束 auto_increment: 不指定则自增 primary key: 主键 NOT NULL: 标识字段不能为null DEFAULT: 为该字段设置默认值 列类型 整型 tinyint smallint int mediumint bigint 注意: 加上unsigned代表不能取负数,只适用于整型 浮点型 float double decimal(总位数, 小数位数) 字符串 char(长度) varchar(长度) 区别: char: 固定长度,无论插入多少个字符都是占用固定长度的字节数,可以用来存放身份证,手机号,md5加密的值等 varchar: 可变长度,根据插入的字符串来计算所占的字节数,但是有一个字节来保存字符串的大小 注意: 如果不能确定插入数据的大小,一般建议使用varchar(255) 时间类型 year

操作表与操作表数据行

妖精的绣舞 提交于 2019-12-02 19:53:11
一. 操作表 增 语法: create table 表名( 字段名 列类型 [可选的参数], ### 记住加逗号 字段名 列类型 [可选的参数], ### 记住加逗号 字段名 列类型 [可选的参数] ### 最后一行不加逗号 ..... )charset=utf8; #### 后面加分号 列约束:(*********************) auto_increment : 自增 1 primary key : 主键索引,加快查询速度, 列的值不能重复 NOT NULL 标识该字段不能为空 DEFAULT 为该字段设置默认值 例子1: create table t1( id int, name char(5) )charset=utf8; Query OK, 0 rows affected (0.72 sec) #### 如果回显是queryok,代表创建成功 增加数据: 语法: insert into 表名 (列1, 列2) values (值1,'值2'); 例子: insert into t1 (id, name) values (1, 'zekai'); insert into t1 (id, name) values (1, 'zekai2'); 查询数据: 语法: select 列1, 列2 from 表名; (*代表查询所有的列) 例子: mysql> select

博客整理day34 数据库sql操作

百般思念 提交于 2019-12-02 19:49:58
目录 python day34 数据库 一 创建表 复制表结构 二 查看表结构 三 MySQL支持的数据类型 整型 字符串 日期时间类型 四 表的完整型约束 五 枚举 六 操作表数据行 增 删 改 查 python day34 数据库 一 创建表 增加表 create table 表名( 字段名 列表型[可选的参数], #必须加逗号 字段名 列表型[可选的参数] #最后一行不加逗号 )charset = utf8 #后面 增加数据 #语法 insert into 表名(列1,列2) values (值1,值2); #例子 insert into t1 (id,name) values (1,'momo'); 查询数据 #语法 select 列1,列2 from 表名; (*表示查询所有的列) show tables; #列子 select id,name from t1; 修改数据 #1.修改表名 语法 alter table 旧表名 rename 新表名; alter table t1 rename t11; #2.增加字段 语法 #添加的列永远是添加在最后一列之后 alter table 表名 add 字段名 列表型[可选的参数]; alter table t11 add name varchar(32) not null defaut ''; #添加的列永远是添加在第一列