网站流程图制作软件,有关网页设计与网站建设的文章,烟台高端网站建设公司,网站开发都用什么浏览器表结构 | MySQL键值 表管理1. 库的操作2. 表的操作表的创建与删除表的修改复制表 3. 管理表记录 数据类型数值类型字符类型#xff08;汉字或者英文字母#xff09;日期时间类型 表头存储与日期时间格式的数据枚举类型 数据批量处理 表管理
客户端把数据存储到数据库服务器上… 表结构 | MySQL键值 表管理1. 库的操作2. 表的操作表的创建与删除表的修改复制表 3. 管理表记录 数据类型数值类型字符类型汉字或者英文字母日期时间类型 表头存储与日期时间格式的数据枚举类型 数据批量处理 表管理
客户端把数据存储到数据库服务器上的过程
第一步连接数据库第二步创建存储数据的库存放表的目录第三步创建存储数据的表表就是存储数据的文件第四步插入表记录向文件里添加行第五步断开连接
1. 库的操作
建库的基本命令 create database 库名必须唯一性
[roothost50 ~]# mysql -uroot -pxxxx //数据库管理员登陆
mysql select user(); # 查看登陆的用户
----------------
| user() |
----------------
| rootlocalhost | 用户客户端地址 在本机管理员登录
----------------
1 row in set (0.00 sec)mysql show databases; # 查看已有的库
--------------------
| Database |
--------------------
| information_schema |
| mysql |
| performance_schema |
| sys |
| tarena |
--------------------
5 rows in set (0.00 sec)mysql select database(); # 查看当前所在的库
------------
| database() |
------------
| NULL | 表示没有在任何一个库此时所在的位置是/var/lib/mysql 目录
------------
1 row in set (0.00 sec)mysql create database db1 # 创建新库
Query OK, 1 row affected (0.00 sec)mysql show databases; 此时查看已有库
--------------------
| Database |
--------------------
| information_schema |
| db1 | 刚创建的db1库 在数据库目录/var/lib/myql 下会有对应名称的db1目录
| mysql |
| performance_schema |
| sys |
| tarena |
--------------------
6 rows in set (0.00 sec)mysql system ls -ld /var/lib/mysql/db1; # 使用system 命令 在登录状态下执行系统命令
drwxr-x--- 2 mysql mysql 20 9月 7 13:52 /var/lib/mysql/db1mysql create database if not exists DB1; 加if not exists语句避免重名报错
Query OK, 1 row affected, 1 warning (0.01 sec)// 删除库 如果库里有表会一并被删除
mysql drop database db1 ; 删除没有的库会报错
mysql drop database if exists db1; 加if exists 语句 避免报错2. 表的操作
建表命令格式 create table 库名.表名( 表头名 数据结构 [约束条件], 表头名 数据结构 [约束条件] );
表的创建与删除
使用建表范式衡量表创建的是否合理
1NF 表头下的数据不能再拆分2NF 一张表里只存储一种数据信息不能用一张存储多种数据信息3NF 表中表头的数据 不能依赖其他表头的数据
mysql create table DB1.t1(姓名 char(10),班级 char(7)); # 在DB1库里创建t1表mysql desc DB1.t1; 查看表头信息
---------------------------------------------
| Field | Type | Null | Key | Default | Extra |
---------------------------------------------
| 姓名 | char(10) | YES | | NULL | |
| 班级 | char(7) | YES | | NULL | |
---------------------------------------------
2 rows in set (0.00 sec)mysql drop table DB1.t1; 删除创建的表
Query OK, 0 rows affected (0.11 sec)为了便于操作通常使用英文定义表头名和表名
mysql create table DB1.t1 ( name char(15) , class char(10));
Query OK, 0 rows affected (0.25 sec)
mysql desc DB1.t1; 查看表头
--------------------------------------------
| Field | Type | Null | Key | Default | Extra |
--------------------------------------------
| name | char(15) | YES | | NULL | |
| class | char(10) | YES | | NULL | |
--------------------------------------------
2 rows in set (0.00 sec)表的修改
发现表建的不合理 可以修改表
添加新表头 add删除表头 drop修改表头存储数据的数据类型 modify修改表头名 change修改表名 rename alter table 库名.表名 操作命令
mysql alter table DB1.t1 add school char(20) ; 添加1个新字段school
mysql desc DB1.t1; 默认新添加的字段追加在已有列的末尾
---------------------------------------------
| Field | Type | Null | Key | Default | Extra |
---------------------------------------------
| name | char(15) | YES | | NULL | |
| class | char(10) | YES | | NULL | |
| school | char(20) | YES | | NULL | |
---------------------------------------------
3 rows in set (0.00 sec)一起添加2个字段 分别是 mail 和 address
mysql alter table DB1.t1 add mail char(50) , add address char(80) ;
Query OK, 0 rows affected (0.37 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql desc DB1.t1; 查看新添加的表头都在追加在末尾
----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
----------------------------------------------
| name | char(15) | YES | | NULL | |
| class | char(10) | YES | | NULL | |
| school | char(20) | YES | | NULL | |
| mail | char(50) | YES | | NULL | |
| address | char(80) | YES | | NULL | |
----------------------------------------------
5 rows in set (0.00 sec)添加新表头number 在第1列的位置
mysql alter table DB1.t1 add number int first ;
Query OK, 0 rows affected (0.32 sec)
Records: 0 Duplicates: 0 Warnings: 0
添加新表头在city 放在name的后边
mysql alter table DB1.t1 add city char(10) after name;
Query OK, 0 rows affected (0.42 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql desc DB1.t1;
----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
----------------------------------------------
| number | int(11) | YES | | NULL | |
| name | char(15) | YES | | NULL | |
| city | char(10) | YES | | NULL | |
| class | char(10) | YES | | NULL | |
| school | char(20) | YES | | NULL | |
| mail | char(50) | YES | | NULL | |
| address | char(80) | YES | | NULL | |
----------------------------------------------
7 rows in set (0.00 sec)mysql alter table DB1.t1 drop city; 一次删除一个表头
Query OK, 0 rows affected (0.31 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql alter table DB1.t1 drop class , drop school; 一起删除多个表头
Query OK, 0 rows affected (0.32 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql desc DB1.t1; 查看表头
----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
----------------------------------------------
| number | int(11) | YES | | NULL | |
| name | char(15) | YES | | NULL | |
| mail | char(50) | YES | | NULL | |
| address | char(80) | YES | | NULL | |
----------------------------------------------
4 rows in set (0.00 sec)// 修改表头信息
mysql alter table DB1.t1 modify number tinyint after name; 修改类型和位置
mysql desc DB1.t1; 查看修改把类型修改为tinyint 并移动name表头的后边
------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
------------------------------------------------
| name | char(15) | YES | | NULL | |
| number | tinyint(4) | YES | | NULL | |
| mail | char(50) | YES | | NULL | |
| address | char(80) | YES | | NULL | |
------------------------------------------------
4 rows in set (0.00 sec)mysql alter table DB1.t1 change address homedir char(80); 只修改表头名类型原样抄下来
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql desc DB1.t1;查看修改address 修改为了 homedir
------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
------------------------------------------------
| name | char(15) | YES | | NULL | |
| number | tinyint(4) | YES | | NULL | |
| mail | char(50) | YES | | NULL | |
| homedir | char(80) | YES | | NULL | |
------------------------------------------------
4 rows in set (0.00 sec)mysql alter table DB1.t1 change email vachar(60); 表头名和类型一起修改
Query OK, 0 rows affected (0.44 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql desc DB1.t1;查看修改表头名类型都变了
-------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-------------------------------------------------
| name | char(15) | YES | | NULL | |
| number | tinyint(4) | YES | | NULL | |
| email | varchar(60) | YES | | NULL | |
| homedir | char(80) | YES | | NULL | |
-------------------------------------------------
4 rows in set (0.00 sec)mysql alter table DB1.t1 rename stuinfo; 修改表名为 stuinfo
mysql show tables; 查看表名 已经改变
---------------
| Tables_in_DB1 |
---------------
| stuinfo |
---------------复制表
仅复制表结构
mysql create table DB1.t2 select * from tarena.user where 12 ; 复制表结构及数据复制表结构和数据
mysql create table DB1.t3 select * from tarena.user 仅复制表结构
create table 库.表名 like 库.表名
# 原来的key也会复制给新表 复制不了数据3. 管理表记录
对表中存储的行做管理 操作 包括
查询 查看表中的行 select插入 向表中添新的行 insert into
添加1行给所有表头赋值
mysql insert into DB1.stuinfo values (yaya,1,yayatedu.cn,beijing);
Query OK, 1 row affected (0.03 sec)添加1行 给指定的表头赋值
mysql insert into DB1.stuinfo (name,homedir)values(nb,nbtedu.cn);
Query OK, 1 row affected (0.04 sec)没有赋值的表头number和email 没有数据 值是 null 空
mysql select * from DB1.stuinfo;
-----------------------------------------
| name | number | email | homedir |
-----------------------------------------
| yaya | 1 | yayatedu.cn | beijing |
| plj | 8 | plj163.com | shanghai |
| jing | 9 | jing163.com | beijing |
| nb | NULL | NULL | nbtedu.cn |
| nb2 | NULL | NULL | nb2tedu.cn |
| nb3 | NULL | NULL | nb3tedu.cn |
-----------------------------------------
6 rows in set (0.00 sec)使用set语句插入记录
mysql insert into DB1.stuinfo set nameplj , number10;更新 修改行中列的数据 update
mysql update DB1.stuniof set emailstu163.com where email is null;不加条件批量修改
mysql update DB1.stuinfo set homedirbeijing;删除 删除表中的行 delete
// 只删除与条件符合的行
delete from DB1.stuinfo where name regexp ^nb;//删除表里的所有行
delete from 库.表也可用truncate table 库.表;
自增长列 truncate后从1开始 delete继续变好
truncate不能回滚 delete可以
效率略高于delete 数据类型
包括 数值类型、字符类型、日期时间类型、枚举类型
数值类型
整数类型 浮点类型
字符类型汉字或者英文字母
char 定长 固定长度 1-255字节varchar 变长 长度不固定 1-65535 默认不允许给表头存储中文 要存储中文 要指定使用的字符集
mysql show create table db1.t3 # 查看字符集
ENGINEInnoDB # 定义存储引擎
DEFAULT CHARSET latin1 # 定义字符集# 建表的时候指定使用的字符集
create table db1.t4(姓名 char(3),地址 varchar(10)) DEFAULT CHARSET utf8;日期时间类型 表头存储与日期时间格式的数据 mysql create table db1.t6(
姓名 char(4),
生日 date,
上课时间 time
家庭聚会 datetime
聚会地点 varchar(10)
) DEFAULT CHARSET utf8;mysql alter table db1.t6 add 出生年份 year after 姓名;datetime 与 datestamp的区别
第一个存储范围不一样datetime存储范围大 timestamp范围小存储数据的方式不一样 当未给timestamp字段值 自动以当前系统时间赋值而datetime值为NULL
枚举类型
给表头赋值时值必须在类型规定的范围内选择
单选 enum 值1值2值3…多选 set 值1值2值3…
create table db1.t8(姓名 char(10) , 性别 enum(男,女,保密) ,
爱好 set(帅哥,金钱。)
;数据批量处理
一次性向表里存储很多数据 或 一次性把表里的数据都取出来 注意数据导入或导出 存放数据的文件必须在mysql服务要求的目录下 叫检索目录 要知道数据库默认的检索目录 会修改数据库默认的检索目录 查看默认的检索目录 mysql show variables like secure_file_priv修改默认的检索目录 vim /etc/my.cnf
[mysql]
secure_file_priv/myload # 手动添加
mkdir /myload
chown mysql /myload/ # 给权限数据导入文件的内容一定要有规律 将/etc/passwd文件导入db1库的t3表里文件导入格式mysql load data infile “/检索目录/文件名” into table 库名.表名 fileds terminated by 文件中列的间隔符号 lines terminated by “/n”数据导入的操作步骤 创建存储数据的库 根据导入文件的内容 建表 把系统文件拷贝到检索目录 数据库管理执行导入数据的命令 查看数据 数据导出 导出的不包括表头名 只有表里的行 导出的文件名 不需要事先创建 且具有唯一性 select 字段名列表 from 库.表 where 条件 into outfile “/检索目录名/文件名” select 字段名列表 from 库.表 where 条件 into outfile “/检索目录名/文件名” fields terminated by “符号” fields terminated by 指定导出的列在文件中的间隔符号。不止定 默认时一个tab的宽度 select 字段名列表 from 库.表 where 条件 into outfile “/检索目录名/文件名” fields terminated by “符号” lines terminated by “符号” lines terminated by 指定导出的行在文件中的间隔符号。不止定 默认一条记录就是一行