mysql03

2024-03-25 16:12
文章标签 mysql03

本文主要是介绍mysql03,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.库(database)管理

  1. 建库

    //创建数据库
    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)
    
  2. 删库

    drop database db;
  3. 改库

    mysql中无法直接修改数据库的名称
  4. 查库

    //查看当前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.表头基本约束

  1. NOT NULL :非空,用于保证该字段的值不能为空。
  2. DEFAULT:默认值,用于保证该字段有默认值。
  3. UNIQUE:唯一索引,用于保证该字段的值具有唯一性,可以为空。
  4. PRIMARY KEY:主键,用于保证该字段的值具有唯一性并且非空。
  5. 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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845537

相关文章

数据库开发-Mysql03

目录 1. 多表查询 1.1 概述 1.1.1 数据准备 1.1.2 介绍 1.1.3 分类 1.2 内连接 1.3 外连接 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 1.5 案例 2. 事务 2.1 介绍 2.2 操作 2.3 四大特性 3. 索引 3.1 介绍 3.2 结

Mysql03增删改查

Sql – DML、DQL DML 数据操作语言  insert - 插入数据  update - 修改数据  delete - 删除数据 DQL 数据查询语言  select insert - 插入数据  insert into tb2 values(值1, 值2, 值3)  insert into tb2(字段3,字段2) values(值3,值2)  insert into

mysql03-内外连接

1.内连接\inner 等值连接查询 //人员表内有部门编号,部门表有部门编号和部门名//以下查询通过dep_id将人员表和部门表连接起来select name, dept_name from emp inner join dep on emp.dept_id=dep.dept_id;//查询所有人员的姓名,部门名 非等值连接查询 //grade表存储A~E等级的工资范围//通过

DW学习--MySQL03(复杂查询)

目录 1 视图1.1 什么是视图1.2 创建使用视图1.3 修改视图 2 子查询3 习题14 函数4.1 算术函数4.2 字符串函数4.3 日期函数4.4 转换函数 5 谓词6 CASE表达式7 习题2 1 视图 1.1 什么是视图 什么是视图:视图是一个虚拟的表,不同于直接操作数据表,视图是依据SELECT语句来创建的。所以操作视图时会根据创建视图的SELECT语句生成