Mysql---库的操作与数据类型
二,SQL
C(create)R(read)U(update)D(delete)
2.1 库的操作
建库:
createdatabase 库名;
判断数据库是否存在,不存在才创建:
createdatabase ifnotexists 库名;
查看已有的数据库:
show databases;
删库:
dropdatabase 库名;
判断数据库是否存在,存在才删除:
dropdatabase if exists 库名;
创建数据库的同时指定编码格式:
createdatabase 库名 characterset编码格式;
修改数据库的编码格式:
alterdatabase 库名 characterset编码格式;
查询数据库的创建语句及编码格式:
showcreatedatabase 库名;
指定要使用的数据库:
use 库名;
2.2 表的操作
查看数据库中的表:
show tables;
建表:
createtable表名(字段名 字段类型 [约束], 字段名 字段类型 [约束], ...);
判断表是否已存在,不存在才创建:
createtableifnotexists 表名(字段名 字段类型 [约束], 字段名 字段类型 [约束], ...);
删表:
droptable表名;
判断表是否已存在,存在才删除:
droptableif exists 表名;
复制表结构:
createtable新表名like被复制的表名;
修改表名:
altertable旧表名 rename to 新表名;
查看表结构:
desc表名;
修改表结构:
添加新字段
altertable表名 add 新字段 字段类型 [约束];
删除字段
altertable表名drop字段;
修改字段类型
altertable表名 modify 字段 类型;
修改字段名
altertable表名 change 旧字段名 新字段名 类型;
2.3 记录、字段的操作
查询表中所有记录:
select*from表名;
*表示所有字段(列)
添加记录:
向所有字段添加数据
insertinto表名values(值1, 值2, 值3, ...);
向指定字段添加数据
insertinto表名 (字段1,字段2,...)values(值1,值2,...);
批量添加(所有字段)
insertinto表名values(值1, 值2, 值3, ...),(值1, 值2, 值3, ...),...;
批量添加(指定字段)
insertinto表名 (字段1,字段2,...)values(值1,值2,...),(值1,值2,...),...;
删除记录:
删除表中所有记录
deletefrom表名;
删除表中所有记录
truncatetable表名;
根据条件删除指定记录
deletefrom表名where条件;
修改记录:
根据条件修改指定记录
update表名set字段名1 = 字段值1,字段名2 = 字段值2,...where条件;
修改所有记录
update表名set字段名1 = 字段值1,字段名2 = 字段值2,...;
注:
添加记录时,值的列数必须与字段列数必须一致
添加记录时,值的类型必须与字段类型一致
除了数值类型,其他类型的值必须使用单/双引号括起来
"delete from 表名" 该语句在删除时是将表中数据逐行删除,指的是表中有多少条记录,就会执行所少次delete动作;"truncate table 表名" 该语句在删除时是先将整个表删除,再构建一个结构一样的空表。
2.4 数据类型
2.4.1 数值类型
int:整数类型
double:小数类型
例如:salary double(n,m)
n:表示该字段值整数部分小数部分最多有n位
m:表示该字段小数部分最多保留m位
salary double(6 , 2):此时该salary的最大值是9999.99
2.4.2 日期和时间类型
datetime:包含年月日时分秒 格式:YYYY-MM-DD HH:MM:SS
timestamp:时间戳类型 包含年月日时分秒 格式:YYYY-MM-DD HH:MM:SS
注:
如果某字段的类型是timestamp,而我们不给它赋值或者给它赋值为null,那么系统会给它一个默认值(当前时间)
timestamp不能为空
设置时分秒前必须先设置年月日
时间值需要根据指定格式进行设置
2.4.3 字符串类型
varchar:
例如:name varchar(20):表示姓名字段的值最大20个字符
注:数字、字母、汉字都占1个字符