在数据库里面操作表:
①:首先要打开数据库:
操作如下:
use db_name;
②:其次要写表信息:
操作模版如下:
mysql> create table tb_name
-> (
-> 列信息
-> )[表选项];
操作实例如下:
mysql>create table score
->(
->stu int,
->name varchar(20),
->ke varchar(10),
->fen int
->);
记住:
①:内容被圆括号包含,而不是花括号
②:每个内容以逗号,结尾
③:最后的一个元素没有,逗号
④:表名不能以数字开头;
修改表名:(数据库名是不能改的)
rename table old_tb_name to new_tb_name;
查看表:(查看表的个数)
show tables;
描述表:(查看表的结构)
desc tb_name; (desc 表示describe)
示例: desc newscore;
删除表:
drop table tb_name;
退出:
\c
用法:清空当前陈述,发现自己打错了的时候用。
数据库的增删改查:
增:
增以行为单位,可以增加某一列的信息,也可以增加一整行的信息。
模板:
insert into tb_name
(表头1,表头2,表头3,表头4,表头5) ----如果此处什么都不写,表示每个变量都要给值!!
values
(内容1,内容2,内容3,内容4,内容5);
例如:
insert into massage
(id,name,title,content,date)
values
(1,'余亮','第二天学mysql','我一定要挺过来','2015/8/16');
插入列:
alter table tb_name add 列名 varchar(10);
小技巧:
可以一次增加多行;
查:
select * from tb_name where 表达式;
可以加条件查看表;查看部分列部分行
注: name,content表示查看的列,
id>2表示查看的行;
改:
模版:
update tb_name
set
表头=值, (要改的行的 内容)
表头=值 (要改的行的 内容)
where
表达式; (通过原值定位行)
示例:
update massage
set
id=2,
content=’今天没迟到’
where
id=1;
注意:
where 前面的值后没有,逗号。
删:
delete from massage where 表头=’内容’;
delete from massage where content=’今天没迟到’;
列的默认值:
设置格式:
not null default 值;
示例:
在插入一个列的时候,可以声明猎德默认值:
如:
alter table feature add homenum tinyint unsigned not null default 0;
解释图中圈红地方的意思:
Null:
下面的YES表示该列的值可以为NULL,表示未设默认值
下面的NO表示该列的值不可以为NULL,表示已设默认值
Default:
下面的NULL表示默认值为NULL,表示未设默认值。
如果下面的值为非NULL,则表示已设置默认值。
详解列类型:
引子:建表就是声明列的过程,声明列直接影响数据库占用硬盘的大小,所以列类型很重要。
①:数值型:
1:整型:
分五类 :
tinyint
smallint
mediumint
int
highint
以数学的角度讨论以上五种整型;
1.占据空间
2.存储范围
整型默认为有符号位
整型列的可选属性:
1.tinyint(M)
M代表宽度,只有在zerofill下才有意义;
2.unsigned
作用:声明整型为无符号位,影响存储范围。
用法:放在int 关键字后面;
示例:int unsigned;
3.zerofill
零填充(如果某列为zerofill,默认就是无符号);
2.1浮点型/小数型:
定义格式:
float(M,D),
double(M,D)
M:精度(总位数,不含小数点)
D:标度(小数位数)
float (4,2)的范围是 -99.99~+99.99
提示:float double对小数部分非常不准确,所以记账不能用浮点数;
2.2定点数:
decimal(M,D)
或者numbric也是一样的。
它是以字符串的形式存放,很精确;
记账一般使用decimal;
关于定点数和浮点数的区别,下面的两个链接继续说明:
http://m.blog.csdn.net/blog/moqiang02/40616467#
http://www.educity.cn/wenda/399662.html
3:字符型
分三种:
char(M)
定长字符串,M代表宽度,即可容纳的字符数,始终占M个字符
细节:
当实际存的字符串N<M,那么尾部则以空格填充
当取出该字符串时,将空格去掉。
弊端:1.当存放的数据尾部有空格时会被去掉
2.容易造成浪费;
好处:1,存放的字符没有限制。
2.利用率可能是100%
3.速度快。
Varchar(M)
变长字符串,M代表宽度,即可容纳的字符数,设N<M,宽度为N,占N个字符;
细节:
存放的是数据加长度,即i个字符+(1~2个字节);
这里的字节是指字符的个数;
utf-8: 一个字符占1个字节。 一个汉字占3个字节。
0<M<65535 , 在utf-8中 大约能存22000个左右汉字;
缺点:存放的字符只能是22000左右。
占用率小宇100%。
速度慢。
区别总结:
1.存储的数据大小有区别
2.空间利用率有区别
3.对空格的处理有区别
char与varchar的选择:
1.空间利用效率,四字成语表,char(4),
个人简介,微博140字,varchar(140).
2速度
用户: 用char(浪费不了多少空间)
test:
文本串:
特点:可以存放较大的内容,但是速度稍慢;
备注:不能给test类型的变量加上默认值
提示:内容不大时用char , varchar
4:日期型:
year:
表示年份
一个字节,表示1901~2155;.
如果输入两位,“00~69”表示2000~2069
“70~99”表示1970~1999
date:
表示日期
典型格式:
1992-08-01
日期类型:‘10000-1-1 到 9999-12-31’
time:
表示时间:
hh:mm:ss
1.表示时间
2.表示时间间隔
范围: ‘-838’59’’59’’’~838’59’’59’’’’
datetime:
表示日期和时间:
典型格式:
‘1984-03-21 11:35:33’
总结:
在实际php开发中,可以用时间戳表示,意思是从1970-01-01 00:00:00到当前的秒数;
函数是 time()
将时间戳转化为日期
date(‘Y-m-d’,time());
5.enum
enum是个类型
典型格式:
sex enum{‘男’,‘女’};
缺点:不是元信息,里面有内在关联:enum的值可以新建一个表,不符合关系型数据库的设计理念。
**************************以上为第二天内容***********************************