数据库操作

链接数据库

  • mysql -u用户名 -p密码

退出数据库

  • exit/quit/ctrl+d

显示数据库版本

1
select version();

显示时间

1
selecct now();

查看所有数据库

1
show databases;

创建数据库

  • create database 数据库名 (charset=utf-8);
    1
    2
    create database mydatabase;
    create database mydatabase charset=utf-8;

查看创建数据库的语句

  • show create database 数据库名
    1
    show create database mydatabase;

查看当前使用的数据库

1
select database();

使用数据库

  • use 数据库名
    1
    use mydatabase

删除数据库

  • drop database 数据库名
    1
    drop database mydatabase;

数据表的操作

查看当前数据库中所有表

1
show tables;

创建表

  • create table 数据表名字([字段,类型,约束],…)
    1
    2
    3
    create table students(id int primary key auto_increment,
    name varchar(30) not null,
    age int);

查看表结构

  • desc 表名;
    1
    desc students;

查看表的创建语句

  • show create table 表名字;
    1
    show create table students;

修改表-添加字段

  • alter table 表名 add 列名 类型;
    1
    alter table students add birthday datetime;

修改表-修改字段:不重命名版

  • alter table 表名 modify 列名 类型及约束
    1
    alter table students modify birthday date;

修改表-修改字段:重命名版

  • alter table 表名 change 原名 新名 类型及约束;
    1
    alter table students change birthday birth date dafault "2001-01-01"

修改表-删除字段

  • alter table 表名 drop 列名;
    1
    alter table students drop age;

删除表

  • drop table 表名
    1
    drop table students;

数据库增删改查(curd)

增加

全列插入

  • insert into 表名 values(…);
    1
    insert into students values(0,"小王","1991-02-14");

部分插入

  • insert into 表名 (列1,…) values(列1值,…);
    1
    insert into students (name,birth) values("小张","1993-12-22");

多行插入

  • insert into 表名 (列1,…) values(列1值,…),(列1值,…)…;
  • insert into 表名 values(列1值,…),(列1值,…)…;
    1
    2
    insert into students (name) values("小红"),("小李");
    insert into students values(default,"大张",default),(default,"大王",default);

修改

  • update 表名 set 列1=值1,列2=值2…where 条件;
    1
    update students set name="蜘蛛侠",birth="2018-11-04" where id=3;

查询基本使用

查询所有列

  • select * from 表名
    1
    select * from students;

按条件查询

  • select * from 表名 where 条件;
    1
    select * from students where name="蜘蛛侠";

查询指定列

  • select 列1,列2,… from 表名;
    1
    select id,name from students;

查询定别名

  • select 字段 as 别名,字段 as 别名… from 表名;
    1
    select name as 姓名, birth as 生日 from students;

删除

物理删除

  • delete from 表名 where 条件;
    1
    2
    delete from students;
    delete from students where name="蜘蛛侠";

逻辑删除

  • 使用一个字段来表示这条信息已经不能使用了,查询时候加上已经删除的不查询
    1
    2
    alter table students add is_delete bit default 0;
    update students set is_delete=1 where id=6;