1, 修改mysql登录密码:mysqladmin -u用户名 -p旧密码 password新密码;
2, 显示所有数据库命令:show databases;
3, 使用数据库命令: use 数据库名;
4, 显当当前连接的数据库:select database();
5, 显示当前服务器版本:select version();
6, 显示当前日期时间:select now();
7, 显示当前用户:select user();
8, 创建数据库命令:create database 数据库名称;
9, 如果不存在则创建数据库:create database if not exists 数据库名称;
10, 创建数据库并指定字符集:create database 数据库名称 character set utf8;
11, 修改数据库字符集:alter database 数据库名称 character set 字符集名称;
12, 删除数据库:drop database 数据库名;
创建表的完整语法
create table stu_info(
id int not null comment '编号',
name char(6) not null comment '姓名',
age int not null comment '年龄',
phone char(10) not null comment '电话'
)engine = innodb charset = utf8 comment '学生信息表';
//创建表的完整语法,约束条件null,或者not null,
//comment,注释
//engine指定存储引擎,存储引擎默认是innodb
//charset = utf8 指定字符集
INSERT INTO stu_info
(name,id,age,phone)
values ('张三',3,18,'133111'),
('张',3,18,'133111'),
('张2',3,18,'133111'),
('张3',3,18,'133111');
//向表中批量插入数据
desc stu_info;
//查看表结构,字段名,字段类型,约束条件,默认值,是否key
show create table stu_info \G;
//查看创建表的完成语法
CREATE TABLE stu_info1 (id int unsigned, name char(4), result float(3,1))engine = innodb charset = utf8 comment '成绩表';
//创建一张表resut 的数据类型为小数,小数点前可以3位,小数点后以为
//id字段的约束条件为不能存负数,只能0-254
数据类型
float如果存储的小数数据超出了定义的长度会四舍五入来存储。比如
create table t1(result float(3,1) comment ‘成绩') ;//整数的存储长度为3小数存储长度为1
insert into into(resert)values(90.55);
存储在数据库里的数据就是90.6
字符类型 char()默认字符长度1,char查询速度快但是不节省内存空间
varchar()必须定义字符长度。查询速度慢。节省空间。常用
时间类型
date—yyyy-MM-DD
time———HH-MM-SS。
datetime——-yyyy-MM-DD-HH-MM-SS。
timestamp———yyyyMMDDHHmmss。存储范围不一样1970年到2038年
localtime()当前日期函数
Select localtime()查询当前日期
Create table t2(
name char(6),
data_time datetime);
Insert into t2 (name,data_time) values (‘张三’, localtime());
枚举类型和集合类型
枚举类型适用于性别,只能单选,不能写枚举类型中没有列出来的数据
集合类型适用于爱好,可以多选,不能写集合类型中没有列出来的数据
create table t5
(name char(10) comment '姓名' not null,
sex enum('male','femle','unkown') comment '性别' not null ,
hobby set('sing','jump','rap','basketball') comment '爱好' not null);
Insert into t3 (name,sex,hobby)values('cxk','male','sing,rap,jump,basketball');
//,’sing,jump.rap,basketball’不能写空格,不然会报错
CREATE TABLE t6(
id int unsigned not null COMMENT '编号',
name varchar(10) not null COMMENT '姓名',
age int UNSIGNED not null COMMENT '年龄',
phone char(11) null COMMENT '电话',
result FLOAT(3,1) not null COMMENT '成绩',
creat_time datetime not null COMMENT '时间',
gender enum('man','woman') not null COMMENT '性别',
hobby set('sing','rap') not null COMMENT '爱好'
)engine=INNODB CHARSET=utf8 COMMENT '学生信息表';
//创建一张完整的学生信息表字段有编号姓名年龄电话成绩时间性别爱好,编号不能为负数,电话可以为空
INSERT into t8(id,name,age,phone,result,creat_time,gender,hobby)VALUES
(
1,'lili',18,null,90.5,'1999-12-31 11:30:29','woman','sing,rap'
),(
2,'honghong',21,'13348727840',80.5,localtime(),'man','sing'
);
//使用insert语句向表中插入数据
约束条件
Default 为字段指定一个默认值,使用方法:
create table t1(
id int UNSIGNED not null comment '编号',
CREATE_time datetime not null DEFAULT(LOCALTIME())
);
//default不能使用简略插入语句,(如果默认值为空会报错),建议使用指定插入字段语句
Unique 唯一,插入数据不可重复的约束条件(key),比如学生编号,是key的一种
使用方式:
单列唯一unique
create table t2 (id int UNSIGNED not null UNIQUE COMMENT '编号',name varchar(10));
//插入数据时id如果重复了就会插入失败,报错
联合唯一
create table t3(id int UNSIGNED COMMENT '编号', name varchar(10), UNIQUE(id,name));
//id重复时不会报错,name重复时也不会报错,id和name都重复会插入失败(报错)
Primary key 主键唯一
是key的一种,主键唯一
效果等同于not null + unique 即非空且唯一
主键除了能够对字段进行约束之外,还是innodb存储引擎组织数据的依据
一张表中有且只有一个主键
如果没有设置主键,则按照创建表时的字段顺序第一个非空且唯一的字段自动升级为主键唯一约束
//create table t4(id int not null unique,name varchar(10) not null UNIQUE);
//在表中id就是主键
一般,表中的主键应该设置为id字段,id字段一般在表中是必须指定的,并且是主键唯一字段
主键可以是唯一字段,也可以是联合主键(多个字段联合前来作为表的主键,本质还是一个主键)
//create table t5(id int,name varchar(10), PRIMARY key (id,name));
//在表中主键唯一则是id和name(不常用)
auto_increment自增约束条件
自增的约束条件,通常是主键字段使用,普通字段不使用该约束条件,
同一张表中只能有一个字段使用约束条件
主键的初始值是1,每向表中插入一条数据,组件自动+1
向表中写入数据时,可以省略主键,因为主键时非空唯一且自增的,
//create table t7(id int PRIMARY key auto_increment, name char(10));