本文主要是介绍mysql03,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.库(database)管理
-
建库
//创建数据库 create database db; //如果不存在db库,则跳过创库步骤,温和操作! create database if not exists db; //在db库存在的前提下重新创db库,举例效果如下: mysql> create database db; ERROR 1007 (HY000): Can't create database 'db'; database exists mysql> create database if not exists db; Query OK, 1 row affected, 1 warning (0.03 sec)
-
删库
drop database db;
-
改库
mysql中无法直接修改数据库的名称
-
查库
//查看当前user下所有数据库 show databases;
2.表(table)管理
建表
create table t11(name char(12),age int,telphone int(11));
删表
drop table t11;
改表名
//修改表名
alter table t11 rename t21;
删表头
//删除表头
alter table t12 drop age;
修改表头
//默认在末尾处添加表头
alter table t21 add mail char(20);
//首位添加表头
alter table t21 add date datetime first;
//在指定的表头名下添加新表头
alter table t21 add class varchar(15) after mail;
_________________________________________________//修改表头数据类型
alter table t21 modify mail varchar(50);
//修改表头位置
alter table t21 modify class char(4) after mail;
//修改表头名称
alter table t21 change class 班级 char(9);
//删除多个表头
alter table t21 drop 班级,drop mail;
备注:
add 表头需要标明数据类型
modify后面的表头需要标注数据类型
change 的后第二个参数需要标注类型
drop 表头 以,号分隔,需要挨个都加drop
复制表
//复制表(复制全部,但是主键...等等不会复制过去,是否非空,default等可复制过去)
create table db.t31 select * from tarena.salary;//仅仅复制表头
create table db.t41 like tarena.salary;
查表头
desc 表名;
3.数据类型批量处理
数据类型
字符类型
- char(n)
- varchar(n)
数值类型
- int
- tinyint unsigned 无符号整形
- double 双精度
- float 单精度
枚举类型
//表头 char(20),enum,set
values ("小包总","男","美女,睡,金钱")
- set //多选多
- enum //多选一
日期时间类型
关于日期时间插入实列:
values ("翠花",20211120,1990,20220101183000,"天坛校区",090000)
- date
- year
- datetime
- time
查看表的字符集
mysql> show create table tarena.salary \G
*************************** 1. row ***************************Table: salary
Create Table: CREATE TABLE `salary` (`id` int NOT NULL AUTO_INCREMENT,`date` date DEFAULT NULL,`employee_id` int DEFAULT NULL,`basic` int DEFAULT NULL,`bonus` int DEFAULT NULL,PRIMARY KEY (`id`),KEY `emp_id_fk` (`employee_id`),CONSTRAINT `emp_id_fk` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`employee_id`)
) ENGINE=InnoDB AUTO_INCREMENT=9577 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci //utf8mb4是字符集,_900是mysql8.0版本引进的新字符集实现,提供了更多的改进和扩展功能. ai其a表示大小写不敏感,i既忽略重音符号;_ci表示大小写不敏感.
1 row in set (0.00 sec//ENGINE=InnoDB 定义存储引擎
//DEFAULT CHARSET=定义表使用的字符
数据批量处理
mysql 中查看文件相关的配置项
mysql> show variables like "%file%";
在MySQL中,
SHOW VARIABLES LIKE '%file%'
是一个用于查询所有系统变量名中包含 "file" 字符串的变量及其当前值的命令。这将显示与文件相关的MySQL配置参数,例如数据文件、日志文件、临时文件的路径以及其他可能与文件系统交互的配置设置。示例输出可能包括但不限于以下系统变量:
basedir
:MySQL的安装根目录。datadir
:MySQL数据库的数据文件存放目录。tmpdir
:MySQL临时文件的存放目录。secure_file_priv
:限制LOAD DATA INFILE, SELECT ... INTO OUTFILE和LOAD_FILE()语句可以读取和写入文件的目录。pid_file
:MySQL服务器进程ID文件的路径。
执行该命令后,MySQL将返回一个结果集,其中包括每个匹配变量的名称(Variable_name)及其当前设置的值(Value)。
修改配置文件并重启mysqld
[root@mysql50 ~]# vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
secure_file_priv=/myload 添加此行
:wq[root@mysql50 ~]# mkdir /myload
[root@mysql50 ~]# chown mysql /myload[root@mysql50 ~]# systemctl restart mysqld
mysql中导入数据
mysql> create database db1;
//建表( 根据导入的文件内容 创建表头)
mysql> create table db1.user3(name varchar(30),password char(1),uid int , gid int , comment varchar(200),homedir varchar(50),shell varchar(30));mysql> system cp /etc/passwd /myload/ //复制passwd到myload下//passwd导入到数据库,其中fields terminated by ""表示字段分隔,lines terminated by "" 行分隔
mysql> load data infile "/myload/passwd" into table db1.user3 fields terminated by ":" lines terminated by "\n";
导出数据
mysql> select * from db1.user3 into outfile "/myload/user.txt" ;
4.表头基本约束
- NOT NULL :非空,用于保证该字段的值不能为空。
- DEFAULT:默认值,用于保证该字段有默认值。
- UNIQUE:唯一索引,用于保证该字段的值具有唯一性,可以为空。
- PRIMARY KEY:主键,用于保证该字段的值具有唯一性并且非空。
- FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中某些的值。
//对护照加入唯一索引 create table db1.t43 (姓名 char(10),护照 char(18) unique); //非空和默认 mysql> create table db1.t31(-> name char(10) not null , -> class char(7) default "nsd",-> likes set("money","game","film","music") not null default "film,music" );
这篇关于mysql03的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!