数据库和数据库表的基本操作

时间:2022-09-12 21:13:38


数据库操作:
 创建数据库---->create database [if not exists] db_name [character set xxx];
 删除数据库---->drop database db_name;
 修改数据库---->alter database db_name [character set xxx]
 查看所有数据库---->show databases;查看所有数据库
      ---->show create database db_name;查看数据库的创建形式
 使用数据库---->use db_name;--注意:进入到数据库后没办法再退回之前状态,但可以通过use进行切换,
 查看当前的数据库---->select database();
 
------------------------------------------------------------------------------------------------

数据表操作:
 增:
  创建表(类似于一个excel表)
   create table tab_name(
    field1 type[完整性约束条件],
    field2 type,
    ...
    fieldn type
   )[character sex xxx]
 
  --创建一个员工表employee
   create table employee(
    id int primary key auto_increment, --auto_increment意思是主键自动自增,每增加一条记录,id都会自动加1.
    name varchar(20),
    gender bit default 1,--字段gender设置为默认值1
    birthday date,
    entry_date date,
    job varchar(20),
    salary double(4,2) unsigned,
    resume text --注意,这里作为最后一个字段不加逗号
   );
  
  约束:
  primary key (非空且唯一):能够唯一区分出当前记录的字段成为主键!
  unique
  not null
  auto_increment 主键字段必须是数字类型
  外键约束 foreigh key

  删除唯一约束:alter table tab_name drop index name;
  
  增加列(字段)
  alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
  alter table user add addr varchar(20) not null unique first/after username;
  #添加多个字段
  alter table users2
            add addr varchar(20),
            add age  int first,
            add birth varchar(20) after name;

 删:
  删除一列---->alter table tab_name drop [column] 列名;
  alter table users2
     add salary float(6,2) unsigned not null after name,
     drop addr;
  删除表---->drop table tab_name;
  添加主键,删除主键:
   alter table tab_name add primary key(字段名称,...);
   alter table tab_name drop primary key;
  eg:
  mysql> create table test5(num int auto_increment);
  ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
  create table test(num int primary key auto_increment);
  如何删除主键?
   create table test(num int primary key auto_increment);
   
   alter table test modify id int;--auto_increment没了,但这样写主键仍然存在,所以还要加上下面这句
   alter table test drop primary key;--仅仅用这句也无法直接删除主键
  唯一索引:
   alter table tab_name add unique [index|key] [索引名称] (字段名称,...)
   alter table users add unique(name);
   alter table users add unique key user_name(name);
   
  添加联合索引:
   alter table users add unique index name_age(name,age);
  删除唯一索引:
  alter table tab_name drop {index|key} index_name;

  
 改:
  修改一列的类型:
   alter table tab_name modify 列名 类型 [完整性约束条件] [first|after 字段名];
   alter table tab_name modify age tinyint default 20;
   alter table tab_name modify age int after id;
  
  修改列名:
   alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件] [first|after 字段名]
   alter table users2 change age Age int default 28 first;
   
  修改表名:
   rename table tab_name to new_table_name;
  修改表所用的字符集
   alter table student character set utf8;
 
 查:查看表信息
  desc tab_name 查看表结构
  show column from tab_name 查看表结构
  show tables 查看数据库中所有的表
  show create table tab_name 查看当前数据库表建表语句