在Windows下以管理员身份运行cmd
进入MySQL: mysql -uroot -p密码
退出:quit
mysql.exe 客户端
mysqld.exe 服务端
登陆——>查看库——>进入库——>查看表——>用表/建表 要设置字符集(set names gbk;)
查看库:show databases;
连接库:use 库名;
查看表:show tables;
创建库:create database 库名 [ charset utf8];
删除库:grop database 库名;
数据库改名:表和列可以改名,database不能改名;
创建一个表: create table 表名(列名1 列类型 值是否可以为空 默认值,列名2 列类型 值是否可以为空 默认值,列名2 列类型 值是否可以为空 默认值。。。)engine myisam charset utf8;
engine 存储引擎,是mysql存储数据的不同方式,常用myisam;
e.g. create table class(id int primary key auto_increment,
sname varchar(10) not null default '',
gender char(1) not null default '',
salary decimal(6,2) not null default 0.00)engine myisam charset utf8;
删除一个表:drop table 表名;
给表改名:rename table 原名 to 新名;
向表中插入一行数据:insert into 表名 (列1,列2,列3.。。。) values(列1值,列2值,列3值,。。);
向所有列中插入数据时,可以省略列名,但是要给每一列都指定值(主键的值也要指定,不要以为是自增或自减就不指定):
insert into 表名 values(列1值,列2值,列3值,。。);
向表中插入多行数据:insert into 表名 (列1,列2,列3.。。。) values (列1值,列2值,列3值,。。),(列1值,列2值,列3值,。。),(列1值,列2值,列3值,。。)。。。; 代表一行
将表2的数据插入表1:insert into 库1.表1 select (列1,列2,列3.。。。)from 库2.表2;-----创建一个表的子表
查看表中所有数据:select * from 表名;
查看指定列的数据: select (列1,列2,列3.。。。)from 表名 where 表达式;
清空表数据:truncate 表名
truncate是删除旧表,再创建一张相同结构的新表;
delete是从行的层面删除数据;
删除数据:delete from 表名 where 表达式;
修改数据:update 表名 set 列1名=新值1,列2名=新值2,列3名=新值3 where 表达式;
表达式为真,才修改;where 1会对所有行进行修改
增加列:
新列加在最后: alter table 表名 add (列名称 列类型 列参数); ----同创建表
新列加在指定列后:alter table 表名 add (列名称 列类型 列参数) after 列名;
新列加在第一列:alter table 表名 add (列名称 列类型 列参数) first; ------没有before
删除列:alter table 表名 drop 列名;
修改列类型:alter table 表名 modify (列名称 列类型 列参数); -----列名不能改
修改列名和列类型:alter table 表名 change 旧列名 新列名 列声明;
MySQL三大数据类型:
数值型(整型、小数型),字符型,日期时间类型
整型: 字节 有符号范围 无符号范围
Tinyint 1 -128~127 0~255
smallint 2 -32768~32767 0~65535
mediumint 3
int 4
bigint 8
三个参数:(M)宽度,
unsigned 无符号,默认是有符号
zerofill 用0填充,必须是unsigned类型
小数型:float(D,M) 浮点
decimal(D,M) 定点,小数部分和整数部分分开存储,比float精确
字符型:char(M) M 表示宽度,是字符,不是字节数;如果不够M个字符,内部会用空格补齐,取出时再把右侧空格删掉。
所以如果右边本身有空格会丢失
varchar(M) 变长,每个有一个专用位用来记录数据的长度
text: 文本类型,可以存比较大的文本段,不用加默认值
blob: 是二进制类型,用来存储图像等信息,是为了防止因为字符集的问题,导致信息丢失
日期时间类型:要用单引号‘’
year还可以存0000年
类型 | 字节 | 说明 | 标准格式 | 范围 |
date | 3 | 日期 | YYYY-MM-DD | 1000-01-01到9999-12-31 |
time | 3 | 时间 | HH:MM::SS | -838:59:59和838:59:59 |
datetime | 8 | 日期时间 |
YYYY-MM-DD HH:MM::SS |
1000-01-01 00:00:00到 9999-12-31 23:59:59 |
year | 1 | 年份 | YYYY和YY(不推荐) | 1901-2155 |
timestamp | 4 | 时间戳 |
YYYY-MM-DD HH:MM::SS |