MySQL_study

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

全列插入在实际中用的不多 ,一旦表结构发生变化,全列插入就会报错。

[图片上传失败...(image-3b392d-1574822954324)]

# 小括号有且只能有六个值,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,...)

[图片上传失败...(image-7c5aba-1574822954324)]

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)

你可能感兴趣的:(MySQL_study)