修改配置文件 在my.in配置文件 找到client 指的是mysql客户端 port3306 default -charachter-set=utf-8 default -charachter-set=utf8 basedir 和datadir 存储路劲 下面有有个服务器的字符编码 修改为utf8不是utf-8 default -charachter-set=utf8 数据类型: 整形: tinyint 1个字节 有符号和无法存储范围 分别为 -128~128 ,0~255 smallint 2个字节 mediumint 3个字节 int 4个字节 bigint 8个字节 浮点型: float double 时间存储: year: time: date: datetime: timestamp: 定长类型: 1个字节8位 最大 8个11111111 =255 , char(5): abc三个字符,后面会补充两个空格 vchar(5) abc 值存三个字符 0~65535 tinytext text 1~2(16) mediumtext 1~2(24) lingtext 1~2(32) enum set 最多存储64个字符 数据表的操作 float (8,2)表示总格有8位,小数点后有两位,小数点前有6位 create table tb_name(username varchar(20), age tinyint unsgined, salary float(8,2)); 查询数据表是否存在 show tables; show tables from mysql; 查看mysql中所有列表 查询表结构: show columns from username; 写入记录: insert intousername(username) values(‘zhangsan’); 查找记录是否存在: select * from username; 空值与非空: 数据唯一性: auto_increment 自动编号必须是主键 create tb_user(sid smallint not null auto_crement primary key, username vchar(20)); 前面介绍了 主键约束,还有一种 默认约束: create tb_username(sid smallint not null auto_increment primary key,name vchar(20),age enum(‘20‘,‘30‘) default ‘30‘); 约束: 保证数据的完整性和一致性: 约束有分为表约束,列约束 约束类型 非空 主键 唯一 默认 外键约束 mysql创建外键约束 : 条件 父表和子类 必须有相同引擎 InnoDB 不能用临时表 字符必须相同,长度可以不同 外键列和参照列必须创建索引 ,如果外键没有不存在,mysql会自动创建索引 编辑数据表的默认存储引擎 mysql、配置文件 default-storage-engine=INNODB 创建表 字表 pid smallint, foreign key(pid) reference ‘父表‘ (id) 外键越苏的参照操作: cascade: 附表删除或者更新且自动删除或者更新的时候 ,子表也跟着改变 set null: 父表更改,子表设置为空 restrict:拒绝对父表的删除或者更新操作 no action:标准sql的关键字,在mysql与restrict相同 例子演示子表的设置权限: create user2(sid smallint not null primary key auto_increment,username vchar(20), pid smallint unsgined, foreign key (pid) preference db_username(id) on delete cascade); 查看数据表命令: show create table user1; 表级约束列约束 添加单列 alter table user1 add age tinyint unsigned not null default 10; alter table user1 add age2 tinyint unsigned not null default 10 after age; 新添加的列在age列之后,first之前插入 添加多列 单列的不需要添加括号 查看表的结构: show columns from user1; 删除字段: alter table user1 drop ags; 删除多个字段 alter table user1 drop age1,drop age1; 也可以新增一列 add就添加一列 修改表添加主键约束 alter table user1 add constraint PK_user1_id primary key (id); alter table user1 add constraint PK_user1_id primary key (id); 添加唯一约束: alter table user1 add unique (id); show create table user1; 查看表 添加外键约束: alter table user1 add foreign key (id) reference db_username(id); 修改字段 alter table user1 age set defalue 15; 删除约束: alter table user1 drop primary key; 删除唯一约束: 查看表结构: show indexes from user1\g 删除外键约束; 插入默认值 insert into user1 values(‘zhangsan‘,default); 插入多条数据: insert into user1 values(‘zhangsan‘,default) ,(‘null‘,29); 插入数据set演示 insert user1 set username=‘ben‘, password =‘123‘; 插入数据select的演示 更新数据 有单表和多表 update user1 set age=5 uodate user1 set age=age-sid,sex=0 更行所有偶数的行数据 uodate user1 set age=age-sid,sex=0 where sid%2=0; 查询语句: group by 分组 select * from group by 1 1代表着字段的位置 一般直接指定名称 having 一部分做分组 相当于where , 需要保证分组的条件是聚合函数 max min avg count 或者hvaing的条件字段必须在select 字段中 例子: 错误演示: select sname from tb_user group by 1 having age >3; age 不咋select 查询字段中,所以是错误 正确演示: select sname,age from tb_user group by 1 having age >3; 这个时候后是包含了age 所以正确 或者使用函数 select sname from tb_user group by 1 having count(id)>=2; 这个也是正确的 排序查询: select * from user order by id desc; select * from user order by id,age desc; limit 的使用 select * from user order by id desc limit 2,2; 第一个2代表着第三条数据开始查询(0,1,2), 第二个2代表 着显示两条数据 插入数据从另一张表中获取信息 insert user2(username) select username from user1 where age>=30; 设置客户端的编码 set name gbk; show columns use1\g; 查询所有字段详情信息网格 子查询 distinct group by order by limit 函数等 都可以在子查询出现 子查询的外查询可以是增删该查 avg 和round select round(avg(good_price),2) from user1; select sname, sage from user1 where good_price>=(select round(avg(good_price),2) from user1); 子查询 any some all修饰 all 需要符合两个 any 和some 值需要符合一个 比较运算符子查询 not in 子查询 any =in !=all 例子: 创建表create table if not exists tb_user (cate_id smallint unsigned not null primary key auto_increment, cage_name varchar(20) not null); select catefrom user1 group by cate; 查询分类 将查询到分类插入到新表数据上去 desc tb_user;查询表的结构 多表更新: update tb_1 inner join tb_2 on tb_1name =tb_2name set tb_1name=tb_2sid; 修改多个字段的名称和字符类型 使用change alter table tb_1 change sname sname_id smallint not null, classname classname_id smallint not null; 外链接有 区分为左右链接
原文:http://www.cnblogs.com/codemouserman/p/4280703.html