启动mysql服务器:
1.计算机管理—服务—启动MySQL
2.命令行中运行net start MySQL
##语句打错时用\c跳出执行,再重新输入。
##乱码。数据库存放的是utf8编码,而命令提示符使用的是GBK编码。解决乱码:set names gbk。
## mysql语句可以换行打,一般遇到‘;’时结束。
## 1064错误是语句错误。Query ok说明语句执行成功。
## tee文件名将sql的语句和执行结果保存到文件中
##自增长:auto_increment
一、基本语句
1.连接服务器
mysql -uusername -ppassword
eg: mysql -uroot -p123456
注:可mysql -uroot -p 换行,再输入密码,这样密码就不会明文显示在命令行中
2.选择数据库
use数据库名;
3.查看数据库
show databases;
4.查看数据库中的所有表
show tables;
5.创建数据库
create database数据库名charset utf8;
6.删除数据库
drop database数据库名;
7.mysql中 表,列能改名,数据库不能改名
rename table表名to新表名;
8.创建表
create table tablename(
id int primary key auto_increment,
name varchar(10) not null default ‘ ’,
year varchar(4) not null default ‘ ’
)engine myisam charset utf8;
9.删除表
drop table表名;
10.清空表数据
truncate表名;
11.truncate和delete的区别
truncate相当于删除表再重建一张同样结构的表,操作后得到一张全新表。而delete是从删除所有的层面来操作的。
12.查看表结构:desc表名
13.修改表数据
修改列的数据类型:alter table表名modify column列名新的数据类型;
增加列:alter table表名add列名数据类型;
二、增删改查
1.增加
insert into表名 [(列名)] values (值); 列与值必须按顺序一一对应
2.修改
update表名set列名=列值where表达式
eg: update stuinfo set score=99 where name="张三"
3.删除
delete from表名where表达式
4.查询
select列名from表名where表达式
三、列类型
Mysql三大列类型:
数值型:
整型
tinyint 占1个字节 8个位 存储范围:0~255,-128~127
smallint 占2个字节 16个位 存储范围:0~65535,-32768~32767
mediumint 占3个字节
int 占4个字节
bigint 占8个字节
##int不加特殊说明时,默认是有符号的。
##在列类型int后加unsigned,表示其是无符号类型,可以影响存储的范围。
...int
unsigned not null default 0
##zerofill代表0填充
tinyint(M) M表示补0的宽度,和zerofill配合使用才有意义。Zerofill同时必是unsigned类型。
…tinyint(5) zerofill not null default 0
浮点型
Float(M,D),
float能存10^-38~10^38,如果M<=24,占4个字节,否则占8个字节。
M:精度,代表小数的总位数;D:标度,代表小数位(小数点右边的位数)。
Decimal(M,D)定点型,整数部分和小数部分是分开存储的,比float精确。如果像账户这样的敏感字段,建议用decimal。
字符串
Char \ varchar \
text \ blob
Char(N)定长字符串,不论够不够指定长度,实际都占据N个长度,如果不够N个长度,用空格在末尾补至N个长度,取出时再把右侧空格删掉,如果字符串本身末尾处是空格,取出时会丢失。
查找行记录时如果都是定长,完全可以通过数与行的长度计算出来文件指针的偏移量。
Varchar(N)变长字符串,可存储0-N个长度。1-2个字节长度的前缀码+字符串,前缀码存储的是字符串的长度
注意:char(N)和varchar(N)限制的是字符,不是字节数。
Text文本类型,一般用来存储文章内容,新闻内容等。声明text列时,不必给默认值。
Blob是二进制类型,用来存储图像、音频等二进制信息。意义:在于防止因为字符集的问题,导致信息丢失。
ERROR 1366 (HY000): Incorrect string
value: '\xBA\xFA\xB8\xE8\xBA\xCD...' for co
lumn 'name' at row 1
这个错误是由于客户端没有声明字符集。使用set
names gbk声明。
时间日期类型
date/time/datetime/year
date类型,存储年-月-日,存储范围:1000-01-01到9999-12-31
time类型,存储时:分:秒,
datetime类型,存储年-月-日时:分:秒
year类型,存储年xxxx存储范围:1901-2155,还可以存0000年
timestamp类型,存储方式与datetime类似,2015-11-22 15:16:18。可提取当前系统时间。