MySQL
简单命令
–链接数据库(终端)
mysql -u root -p mysql
– 退出数据库
exit
– 查看创建数据库
show databases ; # 必须要有s
– 查看当前正在使用的数据库
select database(); #null指的是空
– 使用某个数据库
use jingdong;
注意:sql语句最后需要有分号;结尾
– 显示数据库版本
select version();
– 显示时间
select now
– 创建数据库
create database demo;
– 指定字符集(默认不是utf-8)
create database demo charset = utf-8;
– 查看数据库的创建语句
show create database demo;
– 删除数据库
drop database demo;
数据表的操作
创建表
– 查看当前数据库中的所有表
show tables;
– 创建表
- **unsigned 没有符号, 没有负数 **
- auto_increment表示自动增长
- age不要用int,int是43亿,tinyint是-129–127
- 创建一个学生的数据表(id、name、age、high、gender、cls_id)
- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
- 多个约束 不分先后顺序
- enum 表示枚举
- 最后一个字段不要添加逗号
- 默认从1开始, 枚举值(1,2,3)和原始值(‘男’,‘女’,)在使用上是等价的
create table students (字段名 字段类型 字段约束);
create table students (
id int unsigned primary key auto_increment,
name varchar(15) not null,
age tinyint unsigned default 0,
high decimal(5,2) default 0.0,
gender enum('男','女','中性','保密') default '保密',
cls_id int unsigned not null
);
– 查看表的创建语句
show create table students;
– 查看表结构
desc students
– 查看表内容
select * from classes;
– 修改表结构 alter add/modify()/change(修改字段名字和类型)
– 修改表-添加字段
– alter table 表名 add 列名 类型/约束;
– 生日信息
alter table students add birthday datetime default "2011-11-11 11:11:11";
– 修改表-修改字段:不重命名版
– alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date default "2011-11-11";
– 修改表-修改字段:重命名版
– alter table 表名 change 原列名 新列名 类型及约束;
alter table students change birthday birth date default "2011-11-11";
– 修改表,删除字段
drop table students
数据增删改查(curd)
1、增加insert 的三种方式
1.1 全列插入,值和表的字段顺序一一对应
insert [into] 表名 values (值1,值2,...)
我认为进行插入之前最好看一下目前表的内容和表结构
– 查看表内容
select * from students
– 查看表结构
desc students
全列插入在实际中用的不多 ,一旦表结构发生变化,全列插入就会报错。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBA9q8pj-1574822750680)(C:\Users\liulu\Desktop\临时截图\批注 2019-11-13 222449.png)]
# 小括号有且只能有六个值,id是自动递增的,可以不用管它,但是不管并不是说空着不写,可以使用占位符,只有主键字段才有占位符的概念 0,default, NULL
insert into students values (0, '小乔', 18, 188.00, '女', 2);
insert into students values (0,'小乔', 18, 180.00, '女'); # 错误
insert into students values (default,'大乔', 19, 180.00, '女',2);
1.2 指定列插入,值和列一一对应
insert into 表名 (列1,...) values(值1,...)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iKEZNcFK-1574822750681)(C:\Users\liulu\Desktop\临时截图\批注 2019-11-13 222449.png)]
insert into students (name, high, gender) values(“张飞”, 190, "保密")
# 报错了 Field 'cls_id' doesn't have a default value
# cls_id不能为空,而且我们没有给他加上默认值
insert into students (name, high, gender, cls_id) values(“张飞”, 190, "保密", 1)