数据库的操作
- 创建数据库
-
create database db1; create database db1 default charset gbk; create database if not exists db1 default character set utf8;
- 删除数据库 drop database name;
- 显示创建信息 show database name
- 修改数据库默认的字符格式 alter database databasename default character set gbk;
单表的操作
- 创建
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mysql> create table student1( -> id int, -> name varchar(50), -> sex enum('m','f'), -> age int -> );
表创建的一般应用【*】
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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;
- 查看
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
一般查看 show tables; 查看字段的相关消息 describe tables_name; 查看表内的数据 select * from tables_name; select age,name from tables_name;
- 插入数据
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mysql> insert into student2 values(2,'jack',1982,20140415162545); mysql> insert into student2(id,name) values(2,'jack');
- 删除表 drop table name;
- 修改
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
修改表名
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 旧字段名 新字段名 新数据类型 [完整性约束条件…];
- 复制表
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
复制表结构+记录 (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;
多表的操作
多表的处理:首先要处理各表之间的关系。
多对一或者一对多的处理:
1.先建被关联的表,保证被关联表的字段必须唯一。也可以理解为创建一本输的目录
2.在创建关联表,关联字段一定保证是要有重复的。也可以理解为创建树的章节内容
一对一的处理:
1.先创建被关联表,然后创建管理的表。比如:a班的同学对应一本语文书
多对多的处理:
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/articles/12492371.html