数据库的操作

  • 创建数据库
  • create database db1;
    create database db1 default charset gbk;
    create database if not exists db1 default character  set utf8;
    View Code
  • 删除数据库                                 drop database name;
  • 显示创建信息                             show database name
  • 修改数据库默认的字符格式  alter database databasename default character set gbk;

单表的操作

  • 创建
mysql> create table student1(
    -> id int,
    -> name varchar(50),                 
    -> sex enum('m','f'),
    -> age int
    -> );
View Code

表创建的一般应用【*】

primary key 字段的值是不允许重复,且不允许不NULL(UNIQUE + NOT NULL)
单列做主键
mysql> create table student6(
    -> id int primary key not null auto_increment,
    -> name varchar(50) not null,
    -> sex enum('male','female') not null default 'male',
    -> age int not null default 18);


复合主键
mysql> create table service(
    -> host_ip varchar(15) not null,
    -> service_name varchar(10) not null,
    -> port varchar(5) not null,
    -> allow enum('Y','N') default 'N',
    -> primary key(host_ip,port)
    -> );


自动添加
CREATE TABLE department3 (
    dept_id INT PRIMARY KEY AUTO_INCREMENT,
    dept_name VARCHAR(30),
    );

外键约束
mysql> create table employees(
    -> name varchar(50) not null,
    -> mail varchar(20),
    -> primary key(name)) engine=innodb;
View Code

 

  • 查看
一般查看
show tables;
查看字段的相关消息
describe tables_name; 
查看表内的数据
select * from tables_name;
select age,name from tables_name;
View Code
  • 插入数据
mysql> insert into student2 values(2,'jack',1982,20140415162545);
mysql> insert into student2(id,name) values(2,'jack');
View Code
  • 删除表 drop table name;
  • 修改
 修改表名
ALTER TABLE 表名 RENAME 新表名;
 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名  数据类型 [完整性约束条件…];

ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] FIRST;

ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名
 删除字段
ALTER TABLE 表名 DROP 字段名;
修改字段
ALTER TABLE 表名 MODIFY  字段名 数据类型 [完整性约束条件…];
                          
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
                          
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
View Code
  • 复制表
复制表结构+记录 (key不会复制: 主键、外键和索引)
mysql> create table new_service select * from service;
 只复制表结构
mysql> create table new1_service select * from service where 1=2;  //条件为假,查不到任何记录
 复制表结构,包括Key
mysql> create table t4 like employees;
View Code

 

多表的操作

多表的处理:首先要处理各表之间的关系。

多对一或者一对多的处理:

  1.先建被关联的表,保证被关联表的字段必须唯一。也可以理解为创建一本输的目录

  2.在创建关联表,关联字段一定保证是要有重复的。也可以理解为创建树的章节内容

一对一的处理:

  1.先创建被关联表,然后创建管理的表。比如:a班的同学对应一本语文书

多对多的处理:

 

posted on 2020-03-14 15:26  topass123  阅读(62)  评论(0编辑  收藏  举报