9月23日我的学习心得与个人理解

mysqld --initialize  重新初始化数据库

电脑重启可以解决95%以上的问题

表关系判断之一对一

表中有很多字段只用了一部分数据,还有一部分不经常使用,针对这种情况可以将表拆分成两张表

以QQ用户表为例将用户信息表分为用户表和用户详情表

站在用户表考虑

  一个用户可不可以有多个用户详情  不可以

站在用户详情表考虑

  一个用户详情表可不可以有有多个用户  不可以

一对一表外键字段通常建在查询频率较高的表里

创建表author,authorDetail,代码如下

create table author2(
id int primary key auto_increment,
name varchar(32),
age int,
author2_detail_id int unique,
foreign key(author2_detail_id) references author2Detail(id)
on update cascade
on delete cascade
);
create table author2Detail(
id int primary key auto_increment,
phone bigint,
addr varchar(255)
);

 

 对于表操作的sql语句的补充

alter table t1 rename t2;            修改表名t1为表名t2

alter table t2 add password int;           给表t2增加名为password类型int的列

alter table t2 add info varchar(32) first;       给表t2在第一列增加名为info类型varchar的列

alter table t2 add hobby varchar(32) after info;   给表t2在info列后增加名为hobby类型varchar的列

alter table t2 drop info;              删除表t2的info列          

alter table t2 change password pwd int;      修改表t2password列的字符类型为int

表主键的特点

主键会自动增加,不会自动回排序,即使用delete删除表也不会影响自增

truncate t2删除所有数据并且重置id

create table t3 select * from t2;  拷贝t2的数据给t3,不包括key

create table t5 like t2;      拷贝t2的表结构给t5

单表操作

在sql语句后面加入\G可以使数据表单列纵向展示

查询关键字

select * form user where id = 3;

执行顺序依次为form,where,select

关键字where

多用于对表固定位置查询,如select * from t1 where id = 1;查询表t1id=1行的所有数据

 

posted @ 2020-09-24 12:02  ACE2020  阅读(97)  评论(0)    收藏  举报