一. 库操作
1. 创建数据库
语法: create databas 数据库名 charset utf8;
数据库命名规则:
可以由数字,字母,下划线组成,@,#,$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
#基本上跟Python的命名规则一样
2. 数据库相关操作
1 查看数据库 show databases; show create database db1; select database(); 2 选择数据库 use 数据库名 3 删库跑路 drop database 数据库名; 4 修改数据库 alter database db1 charset utf8;
二. 表操作
1. 存储引擎
2. 表介绍
表相当于文件,表中的一条记录就相当于文件的一行内容,表中的一条记录对应的标题,称为表的字段
3. 创建表
create table 表名(
字段名1 类型 约束,
字段名2 类型 约束
);
create database db1 charset utf8; use db1; create table t1( id int, name varchar(50), sex enum('male', 'female' ), age int(3) ); show tables; #查看db1库下所有表名 desc t1;#查看表结构 select id,name,sex,age from t1; select * from t1; select id,name from t1; 插入数据 insert into t1 values (1,'a',18,'male'); insert into t1(id) values (3), (4); select * from t1;
4. 查看表结构
describe t1; #简写 desc
show create table t1\G; #查看表详细结构
5. MySQL的基础数据类型
6. 表的完整性约束
7. 修改表 alter table
1 语法: 2 1. 修改表名 3 ALTER TABLE 表名 4 RENAME 新表名; 5 6 2. 增加字段 7 ALTER TABLE 表名 8 ADD 字段名 数据类型 [完整性约束条件…], #注意这里可以通过逗号来分割,一下添加多个约束条件 9 ADD 字段名 数据类型 [完整性约束条件…]; 10 ALTER TABLE 表名 11 ADD 字段名 数据类型 [完整性约束条件…] FIRST; #添加这个字段的时候,把它放到第一个字段位置去。 12 ALTER TABLE 表名 13 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;#after是放到后的这个字段的后面去了,我们通过一个first和一个after就可以将新添加的字段放到表的任意字段位置了。 14 15 3. 删除字段 16 ALTER TABLE 表名 17 DROP 字段名; 18 19 4. 修改字段 20 ALTER TABLE 表名 21 MODIFY 字段名 数据类型 [完整性约束条件…]; 22 ALTER TABLE 表名 23 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…]; #change比modify还多了个改名字的功能,这一句是只改了一个字段名 24 ALTER TABLE 表名 25 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];#这一句除了改了字段名,还改了数据类型、完整性约束等等的内容 26 27 语法
1 示例: 2 1. 修改存储引擎 3 mysql> alter table service 4 -> engine=innodb; 5 6 2. 添加字段 7 mysql> alter table student10 8 -> add name varchar(20) not null, 9 -> add age int(3) not null default 22; 10 11 mysql> alter table student10 12 -> add stu_num varchar(10) not null after name; //添加name字段之后 13 14 mysql> alter table student10 15 -> add sex enum('male','female') default 'male' first; //添加到最前面 16 17 3. 删除字段 18 mysql> alter table student10 19 -> drop sex; 20 21 mysql> alter table service 22 -> drop mac; 23 24 4. 修改字段类型modify 25 mysql> alter table student10 26 -> modify age int(3); 27 mysql> alter table student10 28 -> modify id int(11) not null primary key auto_increment; //修改为主键 29 30 5. 增加约束(针对已有的主键增加auto_increment) 31 mysql> alter table student10 modify id int(11) not null primary key auto_increment; 32 ERROR 1068 (42000): Multiple primary key defined 33 34 mysql> alter table student10 modify id int(11) not null auto_increment; 35 Query OK, 0 rows affected (0.01 sec) 36 Records: 0 Duplicates: 0 Warnings: 0 37 38 6. 对已经存在的表增加复合主键 39 mysql> alter table service2 40 -> add primary key(host_ip,port); 41 42 7. 增加主键 43 mysql> alter table student1 44 -> modify name varchar(10) not null primary key; 45 46 8. 增加主键和自动增长 47 mysql> alter table student1 48 -> modify id int not null primary key auto_increment; 49 50 9. 删除主键 51 a. 删除自增约束 52 mysql> alter table student10 modify id int(11) not null; 53 54 b. 删除主键 55 mysql> alter table student10 56 -> drop primary key; 57 58 简单示例
8. 复制表