命令行进入mysql客户端
cd mysql存储目录bin
cd mysql.exe -u root -p
show databases;//查看mysql中有哪些数据库
create database t1;//创建数据库t1
use t1;//选中数据库t1,后面的操作都是针对t1进行的,不会在操作其他的库了
show tables;//查看t1中有哪些数据表
//创建库、表等都是通过create
create table users(
uname varchar(20) comment '用户名',//comment 备注
pwd char(32) comment '密码',//最多存32个字符
\s查看mysql的综合信息
创建表:
create table if not exists 表名(
........................
)engine myisam default charset="utf8";
engine=[表类型][表字符集]
》》》》
数据库的数据类型有:
数字
字符串
枚举
日期
时间
最常用数据类型:tinyint int char varchar text enum
MySQL数据库中的数据类型:
为了对不同性质的数据进行区分,以提高数据查询和操作的效率,MySQL数据库系统将可存入数据库的数据分为了很多种类型。如姓名、产品名称等得信息为字符串类型;价格、年龄等得为数字型;日期也有专门的日期时间类型。 一个字段一旦设置为某种类型后那么这个字段将只能存储该类型的数据,不能写入非该数据类型的数据。如价格设置为浮点型后将只能存储类似于50.30这样的数据,如果对它写入”ab”这样的数据,那就将无法写入到这个字段中。 |
char是0-255字符,不是字节
varchar是0-65535字节,不是字符
char与varchar区别:
uname char(30)tom//后面的数字说明最多存放30个字符
uname varchar(30) tom
1、存储大小
2、char设定的数值是不可变的,设置多少就分配多少的空间,即使内容填不满分配的内存空间;varchar数值是可变的,根据字符串内容的长度来决定内存占用的大小,多余的部分会回收,也正因为如此,varchar执行的速度也会比char慢一点。一般存密码的时候用char,密码用MD5加密之后,刚好是32位。其他情况一般是varchar。固定长度的内容用char固定死。
text 博客内容可以使用
enum 存性别、状态等需要用到枚举类型
sex enum(男,女)默认值(男)
存时间一般存成int,存放时间戳,便于后期计算,而且运行速度也比较快。
程序的性能瓶颈会出在数据库上,而不是php上面。
engine的解释:
engine myisam //存储引擎,告诉mysql以哪种方式来存储表中的数据
default charset="utf8";//设置默认存数数据类型是utf8
最常用的存储引擎是:InnoDB MyISAM
MyISAM:读数据的速度很快,如果表里面数据量很大,而且基本上是从这张表里读取数据,很少修改表信息的情况,要选择这种引擎
InnoDB:使用于经常要修改表信息的情况
如果有两个人同时操作一张表的时候,比如都要修改表的某一行,这种情况下,InnoDB是锁定表的某一行的,一个人在操作的时候,其他人不能操作这一行,但是可以修改表的其他行;而MyISAM是锁定表的,一个人在修改表的内容的时候,其他人是不能修改这张表的。
注意:》》版本较低的php很可能会不支持InnoDB
删除表 drop table 表名;
删除数据库 drop database 数据库名;
字段属性
无符号,使用于数值型,在not null之前添加unsigned
前导0,适用于数值型,在not null之前添加zerofill
auto_increment
default //设置默认值
not null //不允许为空
comment //注释
自动增长列的取值范围是从1开始,不可以取零。
int设置的默认值是11位,后面加不加数字都是一样的。自动增长列不要设置前导0;
设置自动增长列,要设置为主键。
自动增长列的增长规律类似于数组的下标的增长规律,不同的是自动增长列是从1开始。
--------------》
create table t5 ( uname char(10) default '张三' comment '用户名' not null)//为字段添加默认值
所有的字段都要添加not null,如果不加not null的话,会产生麻烦。
空字符串和null是不同的,空字符串可以查询,null是无法查询到的
create table t6(uname varchar(20) default '' comment '用户名',pwd char(32) not null);
这个语句uname不给值的话,空值是可以的,而pwd没有设置可以允许空值,如果给空值的话,会报错。
Navicat premium也是一款图形化数据库界面。
id int zerofill not null auto_increment primary key comment '工号',
宠物免费领养小程序,欢迎来踩