mysql库、表、记录的基本操作
库的操作 ---> 类似于文件夹
- 增:
创建数据库: create database db1;
创建带字符集的数据库: create database db2 charset=utf8;
- 查
查看所有库: show databases;
查看库中的信息: show create database db1;
- 改
修改数据库编码: alter database db1 charset="utf8";
- 删
删除库:drop database db1;
表的操作 ---> 类似于文件
- 操作表前,需要先切换到指定库
语法: use 库名;
- use db1;
-
查看当前所在的库: select database()
- 增
# 约束条件可有可无
# 宽度: 限制某些数据类型的存储大小
添加表:create table 表名(字段名 字段类型(宽度)) 约束条件;
- create table user_info(name varchar(20), age int);
表中添加字段:alter table user_info add salary int;
- 查
查看当前库中所有的表: show tables;
查看表结构: desc user_info;
- 改
修改job值:alter table user_info modify name varchar(28); 注意这里是内容(类型+约束格式)的全部替换
修改表编码 alter table user_info charset gbk
修改表名:rename table user_info to user_info2;
列name修改为username:alter table user_info change column name username varchar(100); column可以省略
- 删
删除表:drop table user_info;
删除sex列:alter table user_info drop sex;
注意:
1.创建表的字段名不能重复;
2.最后一个字段不能在末尾加 , 号
3.字段名必须要有字段类型与宽度
记录 的操作 ---> 类似于文件中的一行行数据
- 增:
语法: insert into 表名 values('字段类型的数据1', 字段类型的数据1);
# 插入一条
- insert into user_info values('tank', 17);
# 插入多条
- insert into user_info values('jason', 71), ('sean', 78);
- 查:
*: 指的是所有
语法: select * from 表名; # 查看表中所有的数据
select * from 表名 where 条件; # 条件成立则查看成功!
-
# 查看 name 字段为 tank 的记录
- select * from user_info where name="tank";
# 查看 name 字段为 tank 的age字段
- select age from user_info where name="tank";
# 查看所有的name:
- select name from user_info;
- 改
语法: update 表名 set 字段名=字段值 where 条件判断; # 若条件成立,则修改成功!
# 修改age为17的记录中name属性为 handsome
- update user_info set name='handsome' where age=17;
# 修改age>16的记录 中name属性为 d_sb
- update user_info set name='d_sb' where age>16;
- 删
语法:alter table user_info drop age
语法:delete from user_info where name='tank' #删除表中名称为“tank”的记录
语法: delete from 表名; # 清空表记录,不提交,可恢复。
语法: truncate table 表名; # 删除,不可恢复
了解:修改表的操作
注意: mysql 关键字不区分大小写
语法:
-
修改表名
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 旧字段名 新字段名 新数据类型 [完整性约束条件…]; # 修改字段名与字段类型
复制表:
复制表结构+记录 (key不会复制: 主键、外键和索引)
create table new_service select * from service;
只复制表结构
create table new1_service select * from service where 1=2; //条件为假,查不到任何记录
1、首先创建一个数据表table_test: # create table table_test( # `id` varchar(100) NOT NULL, # `name` varchar(100) NOT NULL, # PRIMARY KEY (`name`) # ); # 2、如果发现主键设置错了,应该是id是主键,但如今表里已经有好多数据了,不能删除表再重建了,仅仅能在这基础上改动表结构。 # 先删除主键 # alter table table_test drop primary key; 或者 alter table table_test drop constraint 主键约束名 # 然后再增加主键 # alter table table_test add primary key(id); alter table table_test add constraint pk_table_test primary key(id); # 注:在增加主键之前,必须先把反复的id删除掉。