表的管理
表的基本操作
- 创建表(别忘了选择库,指定字符集(默认和库一样))
create table [if not exists] 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
….
字段名n 数据类型
)[character set utf8];
[可选项] - 查看创建表的语句(字符集,存储引擎)
show create table 表名; - 查看表结构(多少字段,各字段的详细属性信息等)
desc 表名; - 删除表
drop table 表名1, 表名2,…;
表的复制
- 复制选择的内容 语法:
create table 表名 select …from 表名 where 条件; - 仅仅复制表结构:
create table 表名 select … from 表名 where false;
# 相当于只复制抬头 采用 desc 查看是否成功
表字段的操作
- 语法: alter table 表名 ….;
- 添加字段(add):
alter table 表名 add 字段名 数据类型;
(默认添加在最后字段)
alter table 表名 add 字段名 数据类型 first;
(添加在第一字段)
alter table 表名 add 字段名 数据类型 after 字段名2;
(添加在字段名2的后边) - 删除字段(drop):
alter table 表名 drop 字段名; - 修改字段数据类型(modify):
alter table 表名 modify 字段名 新数据类型;
修改会受到原有数据限制,如果原有数据不能满足新的数据类型,修改不会成功,会报错,超出范围
out of range - 修改表的名字(rename):
alter table 表名 rename 新表名; - 修改字段名(change):
alter table 表名 change 原字段名 新字段名 新数据类型;
表记录的操作 增删改查
- 插入(insert)
- insert into 表名 values(值1), (值2),(.)..
值1 是 一整条记录,多个字段值,按顺序,按个数写好 - insert into 表名 (字段名1, 字段名2,…) values(值1),(值2)…; 剩余字段自动插入默认值
- insert into 表名 values(值1), (值2),(.)..
- 查询(select)
- select * from 表名 [where 条件];
查询记录(满足条件的)所有记录 - select 字段1,字段2… from 表名 [where 条件];
查询(满足条件的)字段记录
- select * from 表名 [where 条件];
- 删除表记录(delete)
- delete from 表名 where 条件;
注意: 删除条件, 一定要加删除条件,否则会全部删除
- delete from 表名 where 条件;
- 更新表记录(update)
- update 表名 set 字段名=值1, 字段2=值2 where 条件;
注意: 条件, 一定要加条件,否则会全部更改
- update 表名 set 字段名=值1, 字段2=值2 where 条件;
数据导入(导入表记录)
- 作用: 将文件系统中的内容导入到数据库中
- 语法格式:
load data infile “路径+文件名”
into table 表名
fields terminated by “分隔符” # 每一个单元格与字段用分隔符分隔
lines terminated by “\n”; # 遇到换行符开始下一条记录
示例:将×××.csv导入到数据库中
- 先在数据库中创建对应的表
create table score(
字段名 数据类型,
…
)character set utf8; - 执行数据导入
- 查看 将文件放入mysql用户的 搜索路径中
show variables like “secure_file_priv”;
# /var/lib/mysql-files/ - 将文件拷贝到搜索路径中(采用tab判断路径正确性)
sudo cp ~/×××.csv /var/lib/mysql-files/
sudo ls /var/lib/mysql-files/ 查看一下有没有复制成功 - 执行数据导入语句
load data infile “/var/lib/mysql-files/×××.csv”
into table score
fields terminated by “,”
lines terminated by “\n”;
数据导出(导出表记录)
- 把数据库表的记录导出到系统文件里
- 导出语法:
select …from 表名 where 条件
into outfile “路径+文件名”
fields terminated by ‘分隔符’
lines terminated by ‘\n’; - 步骤:
- 查看搜索路径:
show variables like “%secure%”
# /var/lib/mysql-files/ - 执行数据导出语句:
select 字段1, 字段2, 字段3 from 库名.库内的表名
into outfile “/var/lib/mysql-files/×××.csv”
fields terminated by ‘,’
lines terminated by ‘\n’;
# 空值 变为 \N
# 空字符串 变为 空
- 查看搜索路径:
查看及更改文件的权限
- ls -l 文件名 # 查看文件详细信息,可以查看文件权限
- rw- r– r– 1 root root 142 8月 31 16:28 ×××.csv
符号:权限:计数
r: 可读 4
w: 可写 2
x: 可执行 1
例:chmod 555 文件名 更改此文件均为读和执行权限 三组权限分别所属
u: 用户/所有者
g: 所属组,同组其他用户
o: 其他组其他人a: 所有人
- 添加权限: +r +w +x +rw …
删除权限: -r -w -x -rw …
chmod u +w ×××.txt 给文件的所有者 添加写权限