MySQL 三种数据类型(数值,字符串,日期)
数值格式有哪
字符串格式有哪些
日期型
MySQL常用增删改查命令
创建数据库和表
创建数据库
mysql> show databases; #查看所有数据库
mysql> create database tomdb charset utf8; #创建数据库tomdb,使用utf-8做字符编码
mysql> use tomdb #选择使用tomdb数据库
mysql> drop database tomdb; # 删除数据库
mysql> show create database tomdb; # 查看创建数据库的语法
创建表结构
mysql> show tables # 查看所有表
mysql> desc student; # 查看表字段
mysql> drop table student; # 清空表数据
创建表结构
create table student(
id int auto_increment,
name char(32) not null,
age int not null,
register_data date not null,
primary key (id));
mysql> create table student( #在tomdb数据库中创建表:student
-> id int auto_increment, #在表中创建第一个字段:“id”
-> name char(32) not null, #在表中创建第二个字段:“name”
-> age int not null, #在表中创建第三个字段:“age”
-> register_data date not null, #在表中创建第四个字段:日期
-> primary key (id)); #将表的主键设置为字段:“id
Query OK, 0 rows affected (0.10 sec) #这里是创建成功的提示
插入数据
mysql> desc student; # 查看student表所有字段
mysql> insert into student(name,age,register_data) values("zhangsan",100,"2016-06-20");
mysql> select * from student; #查看student表有哪些数据
常用查询语句
最基本查询语句
mysql> select * from student limit 2; #仅查看student表中前两行数据
mysql> select * from student limit 5 offset 3; #从第三行开始查询,并且只显示5行数据
where; like; order by;使用
mysql> select * from student where id >3 and age >103;
mysql> select * from student where register_data like "2016-06%"; #查询所有在2016-06这一条新建的条目
mysql> select * from student order by id desc; #按主键降续
mysql> select * from student order by id asc; #按主键升续排序(默认升续)
mysql> select * from student where name like binary "%si" order by id desc; #查找名字以“si”结尾的所有条目,并且按照id降续排列
GROUP BY 语句:指定以什么分组(比如可以统计出有多少同名数据)
mysql> select name,count(*) from student group by name;
mysql> select coalesce(name,"Total age"),sum(age) from student group by name with rollup;
修改(update)
mysql> update student set name="lisi",age=22 where id=1; #将表中id=1的条目改成name=lisi,age=22
mysql> update student set name="lisi",age=22 where id>4; #上面仅仅修改一条,这里修改id>4的所有
删除(delete)
mysql> delete from student where name="zhangsan"; #删除student表中所有name=“zhangsan”
删除,添加或修改表字段
添加一个字段(add)
mysql> alter table student add sex enum("M","F"); #添加一个字段sex,只能用M,或者F
mysql> insert into student(name,age,register_data,sex) values("zhangsan",100,"2016-06-20","M");
mysql> ALTER TABLE user MODIFY COLUMN NAME VARCHAR(50) default null; # 修改字段属性
mysql> ALTER TABLE user CHANGE name new_name char(32); # 修改字段名称
删除一个字段(drop)
mysql> alter table student drop age; #删除student表的age字段
仅能修改一个字段的属性(modify)
mysql> alter table student modify sex enum("F","M") not null; #修改刚创建的student表属性不能为空
把字段的名字也能改掉(change)
mysql> alter table student change sex gender char(32) not null default "x"; #将sex字段名由sex改成gender,设置不能为空,默认值为“x”
修改表名
mysql> alter table student rename to student_table; #将表名从student修改成student_table
删除有依赖关系的表
导入sql文件前,取消外键检查:set foreign_key_checks=0;
导入sql文件后,加入外键检查:set foreign_key_checks=1;
django中,在已有表添加新字段和新外键关系手动解决migrate失败问题
1. 添加普通字段
#1、将notify_notifybytagrelation表添加一个新字段max_times,为int类型,不为空,默认值为0
alter table notify_notifybytagrelation add column max_times int not null default 0;
创建外键关联的表
create table notify_tagnotifygroup(
id int auto_increment,
name char(255) not null,
notify_interval int not null default 0,
max_times int not null default 0,
primary key (id));