开启 停止SQL
启动:net start mysql
停止:net stop mysql
登录SQL
mysql -hlocalhost -uroot -p
mysql -h服务器地址 -u登录名 【-P端口号】 -p
创建数据库
create database db1 charset utf8;
create database [数据库名字] charset utf8[编码];
删除数据库
drop database if exists db;
drop database 【if exists 】 数据库名;
#显示一个数据库的创建语句
>```
show create database db
数据库备份与恢复
mysqldump -hlocalhost -uroot -p db>c:/db.sql;
mysqldump -h服务器地址 -u登录名 -p 数据库名 > 文件名
恢复语法
mysql -h服务器地址 -u登录名 -p 数据库名 < 文件名
- 这两个命令,都是在“没有登录mysql”的时候使用
- 这两个命令,都是在“没有登录mysql”的时候使用
- 通常,恢复,就是指恢复原来数据库中的所有表数据信息及其他信息,而数据库名可以是原来的名字或新的名字。
查看所有数据库
show databases; // 查看所有数据库
# 进入某一个数据库
> ```
use db; // 进入指定数据库
查看数据库中所有表
show tables;
# 字段类型
> mysql中,数据类型主要分3大类:数字型,字符型,时间型;
- 数字型
- 整数
- #int
- #tinyint
- smallint
- mediumint
- bigint
- 小数
- #float // 浮点
- Double // 浮点
- #decimal //定点
- 字符串
- #set
- #enum
- blob
- #text
- #varchar
- #char
- 时间型
- year
- #timestamp
- time
- #date
- #datatime
# 整数类型
> - 主要有
- int, tinyint, smallint, mediumint,bigint
- 整数类型所占空间(字节):
- int:占4个字节,即32位;
- tinyint:占1个字节,即8位; 最多能存储256个数字,默认范围是-128~127
- bigint:占8个字节,即64位;
- 整数类型字段的设定形式
类型名【(M)】【unsigned】 【zerofill】
- 1, M表示设定该整数的“显示长度” 即select输出的时候,123可能显示为000123(假设M为6)
- unsigned用于设定该整数为“无符号数”,其实就是没有负数。
- zerofill用于设定是否填充“0”到一个数字的左边,此时,需与设定的长度M配合使用。
- 如果设置了zerofill,则自动也就表示同时具备了unsigned修饰
create table tab_int(
f1 int unsigned,
f2 tinyint zerofill,
f3 bigint(10) zerofill
);
insert into tab_int ( f1,f2,f3)
values (12,12,12);
select * from tab_int;
#小数类型
>有3中:float, double,decimal
- float:单精度浮点型,使用4个字节存储数据,其精度大约只有6-7个有效数字数位;
-double:双精度浮点型,使用8个字节存储数据,其精度大约只有15个有效数字数位;
- decimal:定点小数类型,整数部分最长可以有65位,小数部分最长可以有30位。一般设置格式为:decimal(总位数,小数部分位数)
create table tab_xiaoshu(
f1 float,
f2 double,
f3 decimal(10,3) //表示总是位10位,小数位数为3位
);
insert into tab_xiaoshu ( f1,f2, f3)
values (123.456789,123.456789,123.456789)
// 字符类型
insert into tab_char_varchar( postcode,name)
values ('123456123456','abc')
select * from tab_char_varchar;
//enum set类型
create table tab_enum_set(
id int auto_increment primary key,
sex enum('男','女'),
fav set('篮球','排球',,'足球','中国足球')
);
insert into tab_enum_set( id,sex,fav)
values (null,'男','篮球');
insert into tab_enum_set( id,sex,fav)
values (null,1,1);
//date 时间类型
create table tab_time(
dt datetime,
d2 date,
t2 time,
y year,
ts timestamp/* 这个字段通常不用插入数据库*/
);
insert into tab_enum_set( dt ,d2,t2,y )
values (
'2015-7-8 10:9:10',
'2015-7-8',
'10:9:10',
'2015');
insert into tab_enum_set( dt ,d2,t2,y )
values (
now(),
now(),
now(),
'2015');
//字段设定形式
create table tab_shuxing(
id int aotu_increment primary key,
user_name varchar(20) not null unique key,
password varchar(48) not null,
age tinyint default 18,
email varchar(50) comment '电子邮箱'
);
insert into tab_shuxing(
id,
user_name,
password,
age,
email )
values (
1,
'aaaa',
'123',
18,
'abc@qq.com');
insert into tab_shuxing(
user_name,
password,
email )
values (
'aaaa',
'123',
'abc@qq.com');
// 索引创建
create table tab_suoyin(
id int aotu_increment ,
user_name varchar(20) ,
age int, /没有索引/
email varchar(50) comment '电子邮箱',
key(email), /普通索引/
primary key(id),/主键索引/
unique key(user_name),/唯一索引/
);
// 外键索引
外键表
create table tab_banji(
id int aotu_increment primary key ,
banjihao varchar(20) unique key comment '班级号',
banzhuren varchar(20) comment '班主任', /没有索引/
open_data data comment '开学日期',
);
主键表
create table tab_xuesheng(
stu_id int aotu_increment primary key ,
name varchar(20) comment '学生姓名',
age tinyint comment '年龄',
banji_id int comment '班级ID',
foreign key (banji_id) references tab_banji(id), /* 主键关联外键 foreign key [主键ID] references[外键表名][外键关联ID] */
open_data data comment '开学日期',
);