mysql修改字段类型

SQL基础-建表

你说的曾经没有我的故事 提交于 2019-11-28 19:43:01
一、建表 1、创建表的两种方式 *客户端工具 *SQL语句 2、使用SQL语句创建表 表名和字段名不能使用中文;(一般为字母开头,字母、数字、下划线组成的字符串); CREATE TABLE关键字后跟上表名,字段名在括号中列出且以逗号分隔; 最后以分号结尾; 不区分大小写,但最好关键字都大写;按一定的规则缩进; 每个字段都需要设置数据类型; 常用的数据类型有以下几个大类: 字符类 数值类 日期和时间类 二进制类 3、常见的数据类型 字符串数据类型 数据类型的两个作用: 存储什么数据 如何储存 字符串数据类型: 姓名 身份证 家庭地址 电话号码 书名 电脑型号 所有的文字都是字符,都可以使用字符串数据类型来存储! 定长字符串: 长度固定的字符串类型,其长度是在创建表时指定的。比如邮政编码‘510623’,是6位的字符。 如果向一个6位的定长字符串类型的字段,只插入2位字符,则数据库默认会在2个字符末尾补4个空格,以补足6位。 不定长字符串: 长度不固定的字符串类型,创建表时指定一个最大长度,或不指定长度。比如姓名,有2位、3位、4位甚至更长的。 比如:‘冯巩’、‘周杰伦’、‘仓央嘉措’、‘库尔班-热合曼’。 定长字符串优缺点: 优点:处理性能高,产生较少的存储碎片 缺点:占用存储多 不定长字符串优缺点: 优点:占用存储少 缺点:处理性能低,产生较多存储碎片 CHAR(10

MySQL进阶

吃可爱长大的小学妹 提交于 2019-11-28 19:27:46
回顾基础命令语句 修改数据表 添加字段: alter table 表名 add 字段名 列类型 [not null|null][primary key][unique][auto_increment][default value] alter table 表名 add 字段定义 after ar_id; 删除字段: alter table 表名 drop 字段名 修改字段: alter table 表名 modify 字段名 字段新类型 完整修改字段: alter table 表名 change 旧字段名称 新字段定义 修改表名称 alter table 表名 rename 新名字 删除表 drop table [if (not) exists] 表名; 表中行的操作 insert insert [into] 数据表名称 [(字段列表)] values|value (表达式|null|default,...),(表达式|null|default,...) insert [into] 数据表名称 set 字段名称=值,... insert 与insert...set的区别是后者可以带有子查询。 update -- 单表 update 表名 set 字段名称=值,... [where 条件] 如果省略WHERE条件将更新全部记录。 删除记录 -- 单表 delete from

mysql新

风流意气都作罢 提交于 2019-11-28 19:14:36
1、数据库服务器:运行数据库管理软件的计算机 2、数据库管理软件:MySQL,oracle,db2,sqlserver 3、库:文件夹 4、表:文件 5、记录:事物的一系列典型特征:name,age,school,male 6、数据:描述事物特征的符号 SQL语句: 操作文件夹:(库) 增:create database db1 character set utf8; create database db1 charset utf8; 查:show create database db1; show databases; 改:alter database db1 character set gbk; 删:drop database db1; 操作文件(表):字段 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件]); 修改表结构: 1. 修改表名 ALTER TABLE 表名 RENAME 新表名; 2. 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 数据类型 [完整性约束条件…]; ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] FIRST; ALTER TABLE 表名 ADD 字段名

MySQL优化(超完整版)(一)

我的梦境 提交于 2019-11-28 18:05:40
一、 MySQL的优化   前言 :     MySQL数据库的优化模块:       - 数据库的设计—三大范式       - 数据库的索引:唯一索引、主键索引、聚合索引、复合索引、默认索引       - SQL优化       - 分库分表       - 读写分离:提升IO性能       - 存储过程优化       - 对MySQL配置进行优化(my.ini)       - 定时清理碎片 1. 数据库的设计 (1) 什么是三大范式?     为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。三大范式包括:     - 1NF :属性的原子性,要求属性具有原子性,不可分解。     - 2NF :对记录的唯一性,表中记录是唯一的(通常通过主键来实现)。     - 3NF :是对字段冗余性的约束,要求字段没有冗余。 (2) 1NF -- 案例 create table `user`( id int, name varchar(10), address varchar(10) ); insert into `user` values(1,’zs’,’上海市浦东新区’); 此时这里就针对address这个字段,有了可分割性,可将将address分为:-市-区。 此时表的设计就不遵循1NF。 (3) 2NF -- 案例

MySQL表的完整性约束

断了今生、忘了曾经 提交于 2019-11-28 17:18:13
目录 阅读目录 概览 NOT NULL DEFAULT UNIQUE PRIMARY KEY AUTO_INCREMENT FOREIKEY 阅读目录 概览   为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。   约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性 返回顶部 NOT NULL 是否可空,null表示空,非字符串 not null - 不可空 null - 可空 mysql> create table t12 (id int not null); Query OK, 0 rows affected (0.02 sec) mysql> select * from t12; Empty set (0.00 sec) mysql> desc t12; +-------+---------+------+-----+---------+-

MySQL数据库基础操作语句

流过昼夜 提交于 2019-11-28 16:42:13
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,分为3种类型:  1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER  2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT  3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE(取消授权)SQL基础操作语句:   管理员登录:mysql -uroot -p 设置管理员密码:set password=password(密码); 查看数据库所有用户:select * from mysql.user; 查看用户权限:show grants for 用户名@网络地址 [identified by 密码] 普通用户登录:mysql -u用户名 -h网络地址 -p 查看当前用户:select user(); 查看当前数据库:select database(); 当前时间:now() 查看当前数据库是否是严格模式:select @@sql_mode; #----DCL操作 创建用户:create user 用户名@网络地址 identified by 密码; 用户授权:grant all[SELECT INSERT UPDATE DELETE] on 数据库名.表名 to

Django orm的基本使用方法之一

末鹿安然 提交于 2019-11-28 15:49:27
ORM( Object relational mapping 对象关系映射 ) D: 把面向对象中的类和数据库表一一对应起来, 在django项目与数据库之间起着桥梁的 角色 E:通过操作类和对象,对数据库表实现数据的增删改查等操作,而不需要写SQL语句 使用ORM可以通过方便的配置,切换使用不同的数据库 U:① 使用django进行数据库开发步骤: 1. 在models.py中定义模型类(生成表名为应用名_模型类名小写) 2. 生成迁移文件: python manage.D呃py makemigrations 3. 执行迁移生成数据库表(默认使用sqlite3数据库,生成的数据库名为:db.sqlite3): python manage.py migrate 4. 安装sqliteman:sudo apt-get install sqliteman;启动:sqliteman 5. 通过模型类和对象,对数据进行增删改查 通过ORM对数据库增删改: 可以进入交互模式执行代码:python manage.py shell 创建模型类对象:a = 模型类() 增/改:a.save() --------不指定id则默认使用上一次id,第一次为1,如果指定id,id不存 在则添加数据,id存在则修改数据,如id =None,则id=上一次id+1 删除:a.delete() -------

【Django】ORM操作#1

大城市里の小女人 提交于 2019-11-28 15:29:40
目录 一、介绍 概念 由来 优势 劣势 总结 二、Django中的ORM Django项目使用MySQL Model 快速入门 1. AutoField 2. IntegerField 3. CharField 4. ForeignKey 5. DateField 6. DateTimeField 7. dalate() 字段合集 ORM字段与数据库字段对应关系 自定义字段 字段参数 1. null 2. unique 3. db_index 4. default 5. DateField 与 DateTimefield 四、关系字段 一对多 ForeignKey 字段参数 一对一 OneToOneField 字段参数 多对多 ManyToManyField 字段参数 多对多关系的三种方式 元消息 原文: http://blog.gqylpy.com/gqy/260 @ 补充:数据迁移与反迁移 # 迁移: python manage.py makemigrations # 纪录变成 python manage.py migrate # 迁移到数据库 # 反迁移: python manage.py inspectdb > models.py 执行后,会在执行的文件内写入模型类(文件可随意指定) 一、介绍 概念 对象关系映射(Object Relational Mapping

mysql优化数据库方法

半腔热情 提交于 2019-11-28 15:22:31
首先声明此篇博客为转载,转载自最下方链接,为防止本人遗忘,故发布博客 第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引。   2.应尽量避免在 where 子句中使用 !=或<> 操作符,否则将引擎放弃使用索引而进行全表扫描。   3.应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num is null   可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:   select id from t where num=0   4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num=10 or num=20   可以这样查询:   select id from t where num=10   union all   select id from t where num=20   5.下面的查询也将导致全表扫描:   select id from t where name like '%abc%'   对于 like '..%'

Mysql学习笔记三

旧巷老猫 提交于 2019-11-28 12:52:00
Mysql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) values (值1,值2,...), (值1,值2,...)... 不可以为NULL的列必须插入值,可以为NULL的值要想插入NULL值,必须在values里写NULL 也可以在字段列表里不写该字段,当新增时该字段的值就为NULL 列的顺序时可以随便调换的,列数和值的个数必须一致 插入整条数据时可以省去列名 insert into 表名 values (值1,值2...), (值1,值2...)... values里面必须要插入所有字段的值,并且要按照字段的排列顺序排列 可以嵌套子查询: insert into 表名 (值1,值2...) 子查询语句 还有第二种方法可以插入数据,语法如下: insert into 表名 set 字段名1 = 字段值1, 字段名2 = 字段值2, 字段名3 = 字段值3, ...; 两种方法对比: 插入多行 子查询 value √ √ set X X 4.2.修改语句 语法: 修改单表的记录 update 表名 set 列1=值1, 列2=值2, ... where 筛选条件; 修改单表记录 sql92语法: update 表1 别名, 表2 别名 set