数据库服务器 mysql->库->表->行与列
1、先建立数据库服务器
2、建立一个库
3、再建表
一、连接数据库
mysql 作为数据库服务器运行 常用的客户端 mysql_front,navcat,基于web的phpMyAdmin
还有mysql自带的命令行客户端
mysql 不是内部或外部命令...... 没有配置环境变量
1、配置环境变量 指定 mysql\bin 目录
2、每次进入到 mysql\bin 目录再运行 mysql
如何连接服务器
mysql -h(地址) localhost -u(用户) root -p(密码) 1111
information_schema 基本信息 performance_schema 性能优化
show databases 显示数据库
create databases php 创建数据库
use php 选中数据库
drop database php
不能修改数据库名字 (字符集,整理集)
show tables 查看表
create table class 创建表
rename table score(旧表名) to newscore(新表名) 修改表名
drop table class 删表
description class 查看表的结构
truncate class 清空表
二、增删改查简介
增:insert into msg (id, title, name, content) values (1, '初来乍到', '张三', '刚来能不能当老大');
删:delete from msg where id = 2;/where name = '李四';
改:update msg set id = 2, content = '偏要当老大' where name = '李四';
查:select *from msg; select id,title from msg;
三、解决字符集问题
默认建表一般用 utf8,而我们在windows下窗口是GBK的,因此需要声明字符集
set names gbk;
四、整型列的字节与存储范围
所谓建表,就是声明列的过程,数据以文件的形式存放在硬盘(也有存放在内存里)
不同的列类型占的空间不一样 选列的原则:够用不浪费
mysql 三大列类型
1、整型 tinyint 微小的列类型 1字节 tinyint(M指宽度) unsigned zerofill(零填充) 默认有符号
类型 字节 位 无符号 有符号
Tinyint 1 8 0-2的8次方-1 -2的7次方-2的7次方-1 -128-127
Smallint 2 16 0-2的16次方-1 -2的15次方-2的15次方-1 -328768-32767
Mediumint 3 24 0-2的24次方-1 -2的23次方-2的23次方-1 8百多万
Int 4 32 0-2的32次方-1 -2的31次方-2的31次方-1 21亿多
alter table class add age2 tinyint unsigned; 增加列
整型列的可选属性
unsigned 无符号类型 影响存储范围
M 代表宽度 在 zerofill 时才有意义
zerofill 零填充 00001 00005 如果某列 zerofill,默认是unsigned
列可以声明默认值,而且推荐使用默认值
alter table class add age5 tinyint not null default 0;
2、小数型 浮点型与定点型
Float(M,D) decimal(M,D) 更精确
M:精度(总位数不包含点)
create table goods(
name varchar(10) not null default '',
price float(6, 2)not null default 0.00
)charset utf8;
D:标度(小数位)
3、字符串类型
char 定长 char(M) M代表宽度 即可容纳字节数 M<=255
Varchar varchar(M) M代表宽度 即可容纳字节数 M<=65535
区别:
M存储范围大小不同
实占空间不一样 char 实占M个字符 Varchar 有1-2个字节来标记真实的长度
末尾空格处理不一样 char 不够M个,右侧补空格,取出时,除去右侧空格
速度上定长快一些
create table stu (
name char(8) not null default '',
waihao varchar(10) not null default ''
)charset utf8;
char 与 varchar 型的选择原则
1、空间利用效率,四字成语表,char(4)
个人简介微博 140字 varchar(140)
2、速度
用户名 char
text 文本串 大段文本 Text 不用加默认值,加了也没用
4、日期时间列类型
年---year 1个字节 1901-2155 如果输入两位 '00-69'